mshtml: Added IDispatchEx support to HTMLStyle.
This commit is contained in:
parent
cecb265248
commit
9483760b35
@ -58,6 +58,7 @@ static REFIID tid_ids[] = {
|
|||||||
&DIID_DispHTMLElementCollection,
|
&DIID_DispHTMLElementCollection,
|
||||||
&DIID_DispHTMLInputElement,
|
&DIID_DispHTMLInputElement,
|
||||||
&DIID_DispHTMLOptionElement,
|
&DIID_DispHTMLOptionElement,
|
||||||
|
&DIID_DispHTMLStyle,
|
||||||
&DIID_DispHTMLUnknownElement,
|
&DIID_DispHTMLUnknownElement,
|
||||||
&DIID_DispHTMLWindow2,
|
&DIID_DispHTMLWindow2,
|
||||||
&IID_IHTMLCommentElement,
|
&IID_IHTMLCommentElement,
|
||||||
@ -74,6 +75,7 @@ static REFIID tid_ids[] = {
|
|||||||
&IID_IHTMLElementCollection,
|
&IID_IHTMLElementCollection,
|
||||||
&IID_IHTMLInputElement,
|
&IID_IHTMLInputElement,
|
||||||
&IID_IHTMLOptionElement,
|
&IID_IHTMLOptionElement,
|
||||||
|
&IID_IHTMLStyle,
|
||||||
&IID_IHTMLWindow2,
|
&IID_IHTMLWindow2,
|
||||||
&IID_IHTMLWindow3,
|
&IID_IHTMLWindow3,
|
||||||
&IID_IOmNavigator
|
&IID_IOmNavigator
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
|
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
DispatchEx dispex;
|
||||||
const IHTMLStyleVtbl *lpHTMLStyleVtbl;
|
const IHTMLStyleVtbl *lpHTMLStyleVtbl;
|
||||||
|
|
||||||
LONG ref;
|
LONG ref;
|
||||||
@ -40,7 +41,7 @@ typedef struct {
|
|||||||
nsIDOMCSSStyleDeclaration *nsstyle;
|
nsIDOMCSSStyleDeclaration *nsstyle;
|
||||||
} HTMLStyle;
|
} HTMLStyle;
|
||||||
|
|
||||||
#define HTMLSTYLE(x) ((IHTMLStyle*) &(x)->lpHTMLStyleVtbl);
|
#define HTMLSTYLE(x) ((IHTMLStyle*) &(x)->lpHTMLStyleVtbl)
|
||||||
|
|
||||||
static const WCHAR attrBackgroundColor[] =
|
static const WCHAR attrBackgroundColor[] =
|
||||||
{'b','a','c','k','g','r','o','u','n','d','-','c','o','l','o','r',0};
|
{'b','a','c','k','g','r','o','u','n','d','-','c','o','l','o','r',0};
|
||||||
@ -213,6 +214,9 @@ static HRESULT WINAPI HTMLStyle_QueryInterface(IHTMLStyle *iface, REFIID riid, v
|
|||||||
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
|
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
|
||||||
TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
|
TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
|
||||||
*ppv = HTMLSTYLE(This);
|
*ppv = HTMLSTYLE(This);
|
||||||
|
}else if(IsEqualGUID(&IID_IDispatchEx, riid)) {
|
||||||
|
TRACE("(%p)->(IID_IDispatchEx %p)\n", This, ppv);
|
||||||
|
*ppv = DISPATCHEX(&This->dispex);
|
||||||
}else if(IsEqualGUID(&IID_IHTMLStyle, riid)) {
|
}else if(IsEqualGUID(&IID_IHTMLStyle, riid)) {
|
||||||
TRACE("(%p)->(IID_IHTMLStyle %p)\n", This, ppv);
|
TRACE("(%p)->(IID_IHTMLStyle %p)\n", This, ppv);
|
||||||
*ppv = HTMLSTYLE(This);
|
*ppv = HTMLSTYLE(This);
|
||||||
@ -1841,6 +1845,16 @@ static const IHTMLStyleVtbl HTMLStyleVtbl = {
|
|||||||
HTMLStyle_toString
|
HTMLStyle_toString
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static dispex_static_data_t HTMLStyle_dispex = {
|
||||||
|
NULL,
|
||||||
|
DispHTMLStyle_tid,
|
||||||
|
NULL,
|
||||||
|
{
|
||||||
|
IHTMLStyle_tid,
|
||||||
|
0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
IHTMLStyle *HTMLStyle_Create(nsIDOMCSSStyleDeclaration *nsstyle)
|
IHTMLStyle *HTMLStyle_Create(nsIDOMCSSStyleDeclaration *nsstyle)
|
||||||
{
|
{
|
||||||
HTMLStyle *ret = heap_alloc(sizeof(HTMLStyle));
|
HTMLStyle *ret = heap_alloc(sizeof(HTMLStyle));
|
||||||
@ -1851,5 +1865,7 @@ IHTMLStyle *HTMLStyle_Create(nsIDOMCSSStyleDeclaration *nsstyle)
|
|||||||
|
|
||||||
nsIDOMCSSStyleDeclaration_AddRef(nsstyle);
|
nsIDOMCSSStyleDeclaration_AddRef(nsstyle);
|
||||||
|
|
||||||
|
init_dispex(&ret->dispex, (IUnknown*)HTMLSTYLE(ret), &HTMLStyle_dispex);
|
||||||
|
|
||||||
return HTMLSTYLE(ret);
|
return HTMLSTYLE(ret);
|
||||||
}
|
}
|
||||||
|
@ -68,6 +68,7 @@ typedef enum {
|
|||||||
DispHTMLElementCollection_tid,
|
DispHTMLElementCollection_tid,
|
||||||
DispHTMLInputElement_tid,
|
DispHTMLInputElement_tid,
|
||||||
DispHTMLOptionElement_tid,
|
DispHTMLOptionElement_tid,
|
||||||
|
DispHTMLStyle_tid,
|
||||||
DispHTMLUnknownElement_tid,
|
DispHTMLUnknownElement_tid,
|
||||||
DispHTMLWindow2_tid,
|
DispHTMLWindow2_tid,
|
||||||
IHTMLCommentElement_tid,
|
IHTMLCommentElement_tid,
|
||||||
@ -84,6 +85,7 @@ typedef enum {
|
|||||||
IHTMLElementCollection_tid,
|
IHTMLElementCollection_tid,
|
||||||
IHTMLInputElement_tid,
|
IHTMLInputElement_tid,
|
||||||
IHTMLOptionElement_tid,
|
IHTMLOptionElement_tid,
|
||||||
|
IHTMLStyle_tid,
|
||||||
IHTMLWindow2_tid,
|
IHTMLWindow2_tid,
|
||||||
IHTMLWindow3_tid,
|
IHTMLWindow3_tid,
|
||||||
IOmNavigator_tid,
|
IOmNavigator_tid,
|
||||||
|
@ -1290,6 +1290,8 @@ static void test_default_style(IHTMLStyle *style)
|
|||||||
BSTR str;
|
BSTR str;
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
|
||||||
|
test_disp((IUnknown*)style, &DIID_DispHTMLStyle);
|
||||||
|
|
||||||
str = (void*)0xdeadbeef;
|
str = (void*)0xdeadbeef;
|
||||||
hres = IHTMLStyle_get_fontFamily(style, &str);
|
hres = IHTMLStyle_get_fontFamily(style, &str);
|
||||||
ok(hres == S_OK, "get_fontFamily failed: %08x\n", hres);
|
ok(hres == S_OK, "get_fontFamily failed: %08x\n", hres);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user