mshtml: Added GetClassInfo implementation for HTMLElement objects.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2017-04-21 13:50:49 +02:00 committed by Alexandre Julliard
parent 939eafcce0
commit 97c71b25fe
28 changed files with 35 additions and 2 deletions

View File

@ -779,6 +779,7 @@ static void HTMLAnchorElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLAnchorElementImplVtbl = { static const NodeImplVtbl HTMLAnchorElementImplVtbl = {
&CLSID_HTMLAnchorElement,
HTMLAnchorElement_QI, HTMLAnchorElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -435,6 +435,7 @@ fallback:
} }
static const NodeImplVtbl HTMLAreaElementImplVtbl = { static const NodeImplVtbl HTMLAreaElementImplVtbl = {
&CLSID_HTMLAreaElement,
HTMLAreaElement_QI, HTMLAreaElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -857,6 +857,7 @@ static const cpc_entry_t HTMLBodyElement_cpc[] = {
}; };
static const NodeImplVtbl HTMLBodyElementImplVtbl = { static const NodeImplVtbl HTMLBodyElementImplVtbl = {
&CLSID_HTMLBody,
HTMLBodyElement_QI, HTMLBodyElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLBodyElement_cpc, HTMLBodyElement_cpc,

View File

@ -184,6 +184,7 @@ static HRESULT HTMLCommentElement_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode,
} }
static const NodeImplVtbl HTMLCommentElementImplVtbl = { static const NodeImplVtbl HTMLCommentElementImplVtbl = {
&CLSID_HTMLCommentElement,
HTMLCommentElement_QI, HTMLCommentElement_QI,
HTMLCommentElement_destructor, HTMLCommentElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -4743,6 +4743,7 @@ static void HTMLDocumentNode_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLDocumentNodeImplVtbl = { static const NodeImplVtbl HTMLDocumentNodeImplVtbl = {
&CLSID_HTMLDocument,
HTMLDocumentNode_QI, HTMLDocumentNode_QI,
HTMLDocumentNode_destructor, HTMLDocumentNode_destructor,
HTMLDocument_cpc, HTMLDocument_cpc,
@ -4839,6 +4840,7 @@ static const dispex_static_data_vtbl_t HTMLDocumentNode_dispex_vtbl = {
}; };
static const NodeImplVtbl HTMLDocumentFragmentImplVtbl = { static const NodeImplVtbl HTMLDocumentFragmentImplVtbl = {
&CLSID_HTMLDocument,
HTMLDocumentNode_QI, HTMLDocumentNode_QI,
HTMLDocumentNode_destructor, HTMLDocumentNode_destructor,
HTMLDocument_cpc, HTMLDocument_cpc,

View File

@ -4859,8 +4859,8 @@ static ULONG WINAPI ProvideClassInfo_Release(IProvideMultipleClassInfo *iface)
static HRESULT WINAPI ProvideClassInfo_GetClassInfo(IProvideMultipleClassInfo *iface, ITypeInfo **ppTI) static HRESULT WINAPI ProvideClassInfo_GetClassInfo(IProvideMultipleClassInfo *iface, ITypeInfo **ppTI)
{ {
HTMLElement *This = impl_from_IProvideMultipleClassInfo(iface); HTMLElement *This = impl_from_IProvideMultipleClassInfo(iface);
FIXME("(%p)->(%p)\n", This, ppTI); TRACE("(%p)->(%p)\n", This, ppTI);
return E_NOTIMPL; return get_class_typeinfo(This->node.vtbl->clsid, ppTI);
} }
static HRESULT WINAPI ProvideClassInfo2_GetGUID(IProvideMultipleClassInfo *iface, DWORD dwGuidKind, GUID *pGUID) static HRESULT WINAPI ProvideClassInfo2_GetGUID(IProvideMultipleClassInfo *iface, DWORD dwGuidKind, GUID *pGUID)
@ -5028,6 +5028,7 @@ const cpc_entry_t HTMLElement_cpc[] = {
}; };
static const NodeImplVtbl HTMLElementImplVtbl = { static const NodeImplVtbl HTMLElementImplVtbl = {
&CLSID_HTMLUnknownElement,
HTMLElement_QI, HTMLElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -251,6 +251,7 @@ static void HTMLEmbedElement_destructor(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLEmbedElementImplVtbl = { static const NodeImplVtbl HTMLEmbedElementImplVtbl = {
&CLSID_HTMLEmbed,
HTMLEmbedElement_QI, HTMLEmbedElement_QI,
HTMLEmbedElement_destructor, HTMLEmbedElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -766,6 +766,7 @@ static void HTMLFormElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLFormElementImplVtbl = { static const NodeImplVtbl HTMLFormElementImplVtbl = {
&CLSID_HTMLFormElement,
HTMLFormElement_QI, HTMLFormElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -287,6 +287,7 @@ static void HTMLFrameElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLFrameElementImplVtbl = { static const NodeImplVtbl HTMLFrameElementImplVtbl = {
&CLSID_HTMLFrameElement,
HTMLFrameElement_QI, HTMLFrameElement_QI,
HTMLFrameElement_destructor, HTMLFrameElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -152,6 +152,7 @@ static void HTMLGenericElement_destructor(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLGenericElementImplVtbl = { static const NodeImplVtbl HTMLGenericElementImplVtbl = {
&CLSID_HTMLGenericElement,
HTMLGenericElement_QI, HTMLGenericElement_QI,
HTMLGenericElement_destructor, HTMLGenericElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -154,6 +154,7 @@ static void HTMLTitleElement_destructor(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLTitleElementImplVtbl = { static const NodeImplVtbl HTMLTitleElementImplVtbl = {
&CLSID_HTMLTitleElement,
HTMLTitleElement_QI, HTMLTitleElement_QI,
HTMLTitleElement_destructor, HTMLTitleElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,
@ -324,6 +325,7 @@ static BOOL HTMLHtmlElement_is_settable(HTMLDOMNode *iface, DISPID dispid)
} }
static const NodeImplVtbl HTMLHtmlElementImplVtbl = { static const NodeImplVtbl HTMLHtmlElementImplVtbl = {
&CLSID_HTMLHtmlElement,
HTMLHtmlElement_QI, HTMLHtmlElement_QI,
HTMLHtmlElement_destructor, HTMLHtmlElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,
@ -497,6 +499,7 @@ static void HTMLHeadElement_destructor(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLHeadElementImplVtbl = { static const NodeImplVtbl HTMLHeadElementImplVtbl = {
&CLSID_HTMLHeadElement,
HTMLHeadElement_QI, HTMLHeadElement_QI,
HTMLHeadElement_destructor, HTMLHeadElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -560,6 +560,7 @@ static void HTMLIFrame_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLIFrameImplVtbl = { static const NodeImplVtbl HTMLIFrameImplVtbl = {
&CLSID_HTMLIFrame,
HTMLIFrame_QI, HTMLIFrame_QI,
HTMLIFrame_destructor, HTMLIFrame_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -707,6 +707,7 @@ static void HTMLImgElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLImgElementImplVtbl = { static const NodeImplVtbl HTMLImgElementImplVtbl = {
&CLSID_HTMLImg,
HTMLImgElement_QI, HTMLImgElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -1317,6 +1317,7 @@ static void HTMLInputElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLInputElementImplVtbl = { static const NodeImplVtbl HTMLInputElementImplVtbl = {
&CLSID_HTMLInputElement,
HTMLInputElement_QI, HTMLInputElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,
@ -1522,6 +1523,7 @@ static HRESULT HTMLLabelElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
} }
static const NodeImplVtbl HTMLLabelElementImplVtbl = { static const NodeImplVtbl HTMLLabelElementImplVtbl = {
&CLSID_HTMLLabelElement,
HTMLLabelElement_QI, HTMLLabelElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,
@ -1861,6 +1863,7 @@ static void HTMLButtonElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLButtonElementImplVtbl = { static const NodeImplVtbl HTMLButtonElementImplVtbl = {
&CLSID_HTMLButtonElement,
HTMLButtonElement_QI, HTMLButtonElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -422,6 +422,7 @@ static void HTMLLinkElement_unlink(HTMLDOMNode *iface)
} }
} }
static const NodeImplVtbl HTMLLinkElementImplVtbl = { static const NodeImplVtbl HTMLLinkElementImplVtbl = {
&CLSID_HTMLLinkElement,
HTMLLinkElement_QI, HTMLLinkElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -233,6 +233,7 @@ static void HTMLMetaElement_destructor(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLMetaElementImplVtbl = { static const NodeImplVtbl HTMLMetaElementImplVtbl = {
&CLSID_HTMLMetaElement,
HTMLMetaElement_QI, HTMLMetaElement_QI,
HTMLMetaElement_destructor, HTMLMetaElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -1200,6 +1200,7 @@ static HRESULT HTMLDOMNode_clone(HTMLDOMNode *This, nsIDOMNode *nsnode, HTMLDOMN
static const cpc_entry_t HTMLDOMNode_cpc[] = {{NULL}}; static const cpc_entry_t HTMLDOMNode_cpc[] = {{NULL}};
static const NodeImplVtbl HTMLDOMNodeImplVtbl = { static const NodeImplVtbl HTMLDOMNodeImplVtbl = {
NULL,
HTMLDOMNode_QI, HTMLDOMNode_QI,
HTMLDOMNode_destructor, HTMLDOMNode_destructor,
HTMLDOMNode_cpc, HTMLDOMNode_cpc,

View File

@ -745,6 +745,7 @@ static void HTMLObjectElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLObjectElementImplVtbl = { static const NodeImplVtbl HTMLObjectElementImplVtbl = {
&CLSID_HTMLObjectElement,
HTMLObjectElement_QI, HTMLObjectElement_QI,
HTMLObjectElement_destructor, HTMLObjectElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -417,6 +417,7 @@ static void HTMLOptionElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLOptionElementImplVtbl = { static const NodeImplVtbl HTMLOptionElementImplVtbl = {
&CLSID_HTMLOptionElement,
HTMLOptionElement_QI, HTMLOptionElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -430,6 +430,7 @@ static void HTMLScriptElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLScriptElementImplVtbl = { static const NodeImplVtbl HTMLScriptElementImplVtbl = {
&CLSID_HTMLScriptElement,
HTMLScriptElement_QI, HTMLScriptElement_QI,
HTMLScriptElement_destructor, HTMLScriptElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -689,6 +689,7 @@ static void HTMLSelectElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLSelectElementImplVtbl = { static const NodeImplVtbl HTMLSelectElementImplVtbl = {
&CLSID_HTMLSelectElement,
HTMLSelectElement_QI, HTMLSelectElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -340,6 +340,7 @@ static void HTMLStyleElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLStyleElementImplVtbl = { static const NodeImplVtbl HTMLStyleElementImplVtbl = {
&CLSID_HTMLStyleElement,
HTMLStyleElement_QI, HTMLStyleElement_QI,
HTMLStyleElement_destructor, HTMLStyleElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -1042,6 +1042,7 @@ static const cpc_entry_t HTMLTable_cpc[] = {
}; };
static const NodeImplVtbl HTMLTableImplVtbl = { static const NodeImplVtbl HTMLTableImplVtbl = {
&CLSID_HTMLTable,
HTMLTable_QI, HTMLTable_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLTable_cpc, HTMLTable_cpc,

View File

@ -461,6 +461,7 @@ static void HTMLTableCell_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLTableCellImplVtbl = { static const NodeImplVtbl HTMLTableCellImplVtbl = {
&CLSID_HTMLTableCell,
HTMLTableCell_QI, HTMLTableCell_QI,
HTMLTableCell_destructor, HTMLTableCell_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -423,6 +423,7 @@ static void HTMLTableRow_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLTableRowImplVtbl = { static const NodeImplVtbl HTMLTableRowImplVtbl = {
&CLSID_HTMLTableRow,
HTMLTableRow_QI, HTMLTableRow_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -476,6 +476,7 @@ static void HTMLTextAreaElement_unlink(HTMLDOMNode *iface)
} }
static const NodeImplVtbl HTMLTextAreaElementImplVtbl = { static const NodeImplVtbl HTMLTextAreaElementImplVtbl = {
&CLSID_HTMLTextAreaElement,
HTMLTextAreaElement_QI, HTMLTextAreaElement_QI,
HTMLElement_destructor, HTMLElement_destructor,
HTMLElement_cpc, HTMLElement_cpc,

View File

@ -344,6 +344,7 @@ static HRESULT HTMLDOMTextNode_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTM
static const cpc_entry_t HTMLDOMTextNode_cpc[] = {{NULL}}; static const cpc_entry_t HTMLDOMTextNode_cpc[] = {{NULL}};
static const NodeImplVtbl HTMLDOMTextNodeImplVtbl = { static const NodeImplVtbl HTMLDOMTextNodeImplVtbl = {
NULL,
HTMLDOMTextNode_QI, HTMLDOMTextNode_QI,
HTMLDOMNode_destructor, HTMLDOMNode_destructor,
HTMLDOMTextNode_cpc, HTMLDOMTextNode_cpc,

View File

@ -690,6 +690,7 @@ struct NSContainer {
}; };
typedef struct { typedef struct {
const CLSID *clsid;
HRESULT (*qi)(HTMLDOMNode*,REFIID,void**); HRESULT (*qi)(HTMLDOMNode*,REFIID,void**);
void (*destructor)(HTMLDOMNode*); void (*destructor)(HTMLDOMNode*);
const cpc_entry_t *cpc_entries; const cpc_entry_t *cpc_entries;