mshtml: COM cleanup for the IHTMLOptionElement* ifaces.

This commit is contained in:
Michael Stefaniuc 2011-01-03 01:04:25 +01:00 committed by Alexandre Julliard
parent 7f9f169712
commit 118379d642
3 changed files with 46 additions and 47 deletions

View File

@ -34,47 +34,48 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
struct HTMLOptionElement { struct HTMLOptionElement {
HTMLElement element; HTMLElement element;
const IHTMLOptionElementVtbl *lpHTMLOptionElementVtbl; IHTMLOptionElement IHTMLOptionElement_iface;
nsIDOMHTMLOptionElement *nsoption; nsIDOMHTMLOptionElement *nsoption;
}; };
#define HTMLOPTION(x) (&(x)->lpHTMLOptionElementVtbl) static inline HTMLOptionElement *impl_from_IHTMLOptionElement(IHTMLOptionElement *iface)
{
#define HTMLOPTION_THIS(iface) DEFINE_THIS(HTMLOptionElement, HTMLOptionElement, iface) return CONTAINING_RECORD(iface, HTMLOptionElement, IHTMLOptionElement_iface);
}
static HRESULT WINAPI HTMLOptionElement_QueryInterface(IHTMLOptionElement *iface, static HRESULT WINAPI HTMLOptionElement_QueryInterface(IHTMLOptionElement *iface,
REFIID riid, void **ppv) REFIID riid, void **ppv)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv); return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
} }
static ULONG WINAPI HTMLOptionElement_AddRef(IHTMLOptionElement *iface) static ULONG WINAPI HTMLOptionElement_AddRef(IHTMLOptionElement *iface)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface); return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
} }
static ULONG WINAPI HTMLOptionElement_Release(IHTMLOptionElement *iface) static ULONG WINAPI HTMLOptionElement_Release(IHTMLOptionElement *iface)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface); return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
} }
static HRESULT WINAPI HTMLOptionElement_GetTypeInfoCount(IHTMLOptionElement *iface, UINT *pctinfo) static HRESULT WINAPI HTMLOptionElement_GetTypeInfoCount(IHTMLOptionElement *iface, UINT *pctinfo)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
return IDispatchEx_GetTypeInfoCount(&This->element.node.dispex.IDispatchEx_iface, pctinfo); return IDispatchEx_GetTypeInfoCount(&This->element.node.dispex.IDispatchEx_iface, pctinfo);
} }
static HRESULT WINAPI HTMLOptionElement_GetTypeInfo(IHTMLOptionElement *iface, UINT iTInfo, static HRESULT WINAPI HTMLOptionElement_GetTypeInfo(IHTMLOptionElement *iface, UINT iTInfo,
LCID lcid, ITypeInfo **ppTInfo) LCID lcid, ITypeInfo **ppTInfo)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
return IDispatchEx_GetTypeInfo(&This->element.node.dispex.IDispatchEx_iface, iTInfo, lcid, return IDispatchEx_GetTypeInfo(&This->element.node.dispex.IDispatchEx_iface, iTInfo, lcid,
ppTInfo); ppTInfo);
} }
@ -83,7 +84,7 @@ static HRESULT WINAPI HTMLOptionElement_GetIDsOfNames(IHTMLOptionElement *iface,
LPOLESTR *rgszNames, UINT cNames, LPOLESTR *rgszNames, UINT cNames,
LCID lcid, DISPID *rgDispId) LCID lcid, DISPID *rgDispId)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
return IDispatchEx_GetIDsOfNames(&This->element.node.dispex.IDispatchEx_iface, riid, rgszNames, return IDispatchEx_GetIDsOfNames(&This->element.node.dispex.IDispatchEx_iface, riid, rgszNames,
cNames, lcid, rgDispId); cNames, lcid, rgDispId);
} }
@ -92,14 +93,14 @@ static HRESULT WINAPI HTMLOptionElement_Invoke(IHTMLOptionElement *iface, DISPID
REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
return IDispatchEx_Invoke(&This->element.node.dispex.IDispatchEx_iface, dispIdMember, riid, return IDispatchEx_Invoke(&This->element.node.dispex.IDispatchEx_iface, dispIdMember, riid,
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
} }
static HRESULT WINAPI HTMLOptionElement_put_selected(IHTMLOptionElement *iface, VARIANT_BOOL v) static HRESULT WINAPI HTMLOptionElement_put_selected(IHTMLOptionElement *iface, VARIANT_BOOL v)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
nsresult nsres; nsresult nsres;
TRACE("(%p)->(%x)\n", This, v); TRACE("(%p)->(%x)\n", This, v);
@ -115,7 +116,7 @@ static HRESULT WINAPI HTMLOptionElement_put_selected(IHTMLOptionElement *iface,
static HRESULT WINAPI HTMLOptionElement_get_selected(IHTMLOptionElement *iface, VARIANT_BOOL *p) static HRESULT WINAPI HTMLOptionElement_get_selected(IHTMLOptionElement *iface, VARIANT_BOOL *p)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
PRBool selected; PRBool selected;
nsresult nsres; nsresult nsres;
@ -133,7 +134,7 @@ static HRESULT WINAPI HTMLOptionElement_get_selected(IHTMLOptionElement *iface,
static HRESULT WINAPI HTMLOptionElement_put_value(IHTMLOptionElement *iface, BSTR v) static HRESULT WINAPI HTMLOptionElement_put_value(IHTMLOptionElement *iface, BSTR v)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
nsAString value_str; nsAString value_str;
nsresult nsres; nsresult nsres;
@ -150,7 +151,7 @@ static HRESULT WINAPI HTMLOptionElement_put_value(IHTMLOptionElement *iface, BST
static HRESULT WINAPI HTMLOptionElement_get_value(IHTMLOptionElement *iface, BSTR *p) static HRESULT WINAPI HTMLOptionElement_get_value(IHTMLOptionElement *iface, BSTR *p)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
nsAString value_str; nsAString value_str;
const PRUnichar *value; const PRUnichar *value;
nsresult nsres; nsresult nsres;
@ -173,35 +174,35 @@ static HRESULT WINAPI HTMLOptionElement_get_value(IHTMLOptionElement *iface, BST
static HRESULT WINAPI HTMLOptionElement_put_defaultSelected(IHTMLOptionElement *iface, VARIANT_BOOL v) static HRESULT WINAPI HTMLOptionElement_put_defaultSelected(IHTMLOptionElement *iface, VARIANT_BOOL v)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
FIXME("(%p)->(%x)\n", This, v); FIXME("(%p)->(%x)\n", This, v);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLOptionElement_get_defaultSelected(IHTMLOptionElement *iface, VARIANT_BOOL *p) static HRESULT WINAPI HTMLOptionElement_get_defaultSelected(IHTMLOptionElement *iface, VARIANT_BOOL *p)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
FIXME("(%p)->(%p)\n", This, p); FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLOptionElement_put_index(IHTMLOptionElement *iface, LONG v) static HRESULT WINAPI HTMLOptionElement_put_index(IHTMLOptionElement *iface, LONG v)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
FIXME("(%p)->(%d)\n", This, v); FIXME("(%p)->(%d)\n", This, v);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLOptionElement_get_index(IHTMLOptionElement *iface, LONG *p) static HRESULT WINAPI HTMLOptionElement_get_index(IHTMLOptionElement *iface, LONG *p)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
FIXME("(%p)->(%p)\n", This, p); FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI HTMLOptionElement_put_text(IHTMLOptionElement *iface, BSTR v) static HRESULT WINAPI HTMLOptionElement_put_text(IHTMLOptionElement *iface, BSTR v)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
nsIDOMText *text_node; nsIDOMText *text_node;
nsAString text_str; nsAString text_str;
nsIDOMNode *tmp; nsIDOMNode *tmp;
@ -250,7 +251,7 @@ static HRESULT WINAPI HTMLOptionElement_put_text(IHTMLOptionElement *iface, BSTR
static HRESULT WINAPI HTMLOptionElement_get_text(IHTMLOptionElement *iface, BSTR *p) static HRESULT WINAPI HTMLOptionElement_get_text(IHTMLOptionElement *iface, BSTR *p)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
nsAString text_str; nsAString text_str;
const PRUnichar *text; const PRUnichar *text;
nsresult nsres; nsresult nsres;
@ -273,13 +274,11 @@ static HRESULT WINAPI HTMLOptionElement_get_text(IHTMLOptionElement *iface, BSTR
static HRESULT WINAPI HTMLOptionElement_get_form(IHTMLOptionElement *iface, IHTMLFormElement **p) static HRESULT WINAPI HTMLOptionElement_get_form(IHTMLOptionElement *iface, IHTMLFormElement **p)
{ {
HTMLOptionElement *This = HTMLOPTION_THIS(iface); HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface);
FIXME("(%p)->(%p)\n", This, p); FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL; return E_NOTIMPL;
} }
#undef HTMLOPTION_THIS
static const IHTMLOptionElementVtbl HTMLOptionElementVtbl = { static const IHTMLOptionElementVtbl HTMLOptionElementVtbl = {
HTMLOptionElement_QueryInterface, HTMLOptionElement_QueryInterface,
HTMLOptionElement_AddRef, HTMLOptionElement_AddRef,
@ -314,13 +313,13 @@ static HRESULT HTMLOptionElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
if(IsEqualGUID(&IID_IUnknown, riid)) { if(IsEqualGUID(&IID_IUnknown, riid)) {
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = HTMLOPTION(This); *ppv = &This->IHTMLOptionElement_iface;
}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 = HTMLOPTION(This); *ppv = &This->IHTMLOptionElement_iface;
}else if(IsEqualGUID(&IID_IHTMLOptionElement, riid)) { }else if(IsEqualGUID(&IID_IHTMLOptionElement, riid)) {
TRACE("(%p)->(IID_IHTMLOptionElement %p)\n", This, ppv); TRACE("(%p)->(IID_IHTMLOptionElement %p)\n", This, ppv);
*ppv = HTMLOPTION(This); *ppv = &This->IHTMLOptionElement_iface;
} }
if(*ppv) { if(*ppv) {
@ -368,7 +367,7 @@ HRESULT HTMLOptionElement_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nsele
if(!ret) if(!ret)
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
ret->lpHTMLOptionElementVtbl = &HTMLOptionElementVtbl; ret->IHTMLOptionElement_iface.lpVtbl = &HTMLOptionElementVtbl;
ret->element.node.vtbl = &HTMLOptionElementImplVtbl; ret->element.node.vtbl = &HTMLOptionElementImplVtbl;
nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLOptionElement, (void**)&ret->nsoption); nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLOptionElement, (void**)&ret->nsoption);
@ -384,24 +383,27 @@ HRESULT HTMLOptionElement_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nsele
return S_OK; return S_OK;
} }
#define HTMLOPTFACTORY_THIS(iface) DEFINE_THIS(HTMLOptionElementFactory, HTMLOptionElementFactory, iface) static inline HTMLOptionElementFactory *impl_from_IHTMLOptionElementFactory(IHTMLOptionElementFactory *iface)
{
return CONTAINING_RECORD(iface, HTMLOptionElementFactory, IHTMLOptionElementFactory_iface);
}
static HRESULT WINAPI HTMLOptionElementFactory_QueryInterface(IHTMLOptionElementFactory *iface, static HRESULT WINAPI HTMLOptionElementFactory_QueryInterface(IHTMLOptionElementFactory *iface,
REFIID riid, void **ppv) REFIID riid, void **ppv)
{ {
HTMLOptionElementFactory *This = HTMLOPTFACTORY_THIS(iface); HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
*ppv = NULL; *ppv = NULL;
if(IsEqualGUID(&IID_IUnknown, riid)) { if(IsEqualGUID(&IID_IUnknown, riid)) {
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = HTMLOPTFACTORY(This); *ppv = &This->IHTMLOptionElementFactory_iface;
}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 = HTMLOPTFACTORY(This); *ppv = &This->IHTMLOptionElementFactory_iface;
}else if(IsEqualGUID(&IID_IHTMLOptionElementFactory, riid)) { }else if(IsEqualGUID(&IID_IHTMLOptionElementFactory, riid)) {
TRACE("(%p)->(IID_IHTMLOptionElementFactory %p)\n", This, ppv); TRACE("(%p)->(IID_IHTMLOptionElementFactory %p)\n", This, ppv);
*ppv = HTMLOPTFACTORY(This); *ppv = &This->IHTMLOptionElementFactory_iface;
} }
if(*ppv) { if(*ppv) {
@ -415,7 +417,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_QueryInterface(IHTMLOptionElement
static ULONG WINAPI HTMLOptionElementFactory_AddRef(IHTMLOptionElementFactory *iface) static ULONG WINAPI HTMLOptionElementFactory_AddRef(IHTMLOptionElementFactory *iface)
{ {
HTMLOptionElementFactory *This = HTMLOPTFACTORY_THIS(iface); HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
LONG ref = InterlockedIncrement(&This->ref); LONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref); TRACE("(%p) ref=%d\n", This, ref);
@ -425,7 +427,7 @@ static ULONG WINAPI HTMLOptionElementFactory_AddRef(IHTMLOptionElementFactory *i
static ULONG WINAPI HTMLOptionElementFactory_Release(IHTMLOptionElementFactory *iface) static ULONG WINAPI HTMLOptionElementFactory_Release(IHTMLOptionElementFactory *iface)
{ {
HTMLOptionElementFactory *This = HTMLOPTFACTORY_THIS(iface); HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
LONG ref = InterlockedDecrement(&This->ref); LONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref); TRACE("(%p) ref=%d\n", This, ref);
@ -438,7 +440,7 @@ static ULONG WINAPI HTMLOptionElementFactory_Release(IHTMLOptionElementFactory *
static HRESULT WINAPI HTMLOptionElementFactory_GetTypeInfoCount(IHTMLOptionElementFactory *iface, UINT *pctinfo) static HRESULT WINAPI HTMLOptionElementFactory_GetTypeInfoCount(IHTMLOptionElementFactory *iface, UINT *pctinfo)
{ {
HTMLOptionElementFactory *This = HTMLOPTFACTORY_THIS(iface); HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
FIXME("(%p)->(%p)\n", This, pctinfo); FIXME("(%p)->(%p)\n", This, pctinfo);
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -446,7 +448,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_GetTypeInfoCount(IHTMLOptionEleme
static HRESULT WINAPI HTMLOptionElementFactory_GetTypeInfo(IHTMLOptionElementFactory *iface, UINT iTInfo, static HRESULT WINAPI HTMLOptionElementFactory_GetTypeInfo(IHTMLOptionElementFactory *iface, UINT iTInfo,
LCID lcid, ITypeInfo **ppTInfo) LCID lcid, ITypeInfo **ppTInfo)
{ {
HTMLOptionElementFactory *This = HTMLOPTFACTORY_THIS(iface); HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -455,7 +457,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_GetIDsOfNames(IHTMLOptionElementF
LPOLESTR *rgszNames, UINT cNames, LPOLESTR *rgszNames, UINT cNames,
LCID lcid, DISPID *rgDispId) LCID lcid, DISPID *rgDispId)
{ {
HTMLOptionElementFactory *This = HTMLOPTFACTORY_THIS(iface); HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
lcid, rgDispId); lcid, rgDispId);
return E_NOTIMPL; return E_NOTIMPL;
@ -465,7 +467,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_Invoke(IHTMLOptionElementFactory
REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{ {
HTMLOptionElementFactory *This = HTMLOPTFACTORY_THIS(iface); HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
return E_NOTIMPL; return E_NOTIMPL;
@ -475,7 +477,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_create(IHTMLOptionElementFactory
VARIANT text, VARIANT value, VARIANT defaultselected, VARIANT selected, VARIANT text, VARIANT value, VARIANT defaultselected, VARIANT selected,
IHTMLOptionElement **optelem) IHTMLOptionElement **optelem)
{ {
HTMLOptionElementFactory *This = HTMLOPTFACTORY_THIS(iface); HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
nsIDOMHTMLElement *nselem; nsIDOMHTMLElement *nselem;
HTMLDOMNode *node; HTMLDOMNode *node;
HRESULT hres; HRESULT hres;
@ -522,8 +524,6 @@ static HRESULT WINAPI HTMLOptionElementFactory_create(IHTMLOptionElementFactory
return S_OK; return S_OK;
} }
#undef HTMLOPTFACTORY_THIS
static const IHTMLOptionElementFactoryVtbl HTMLOptionElementFactoryVtbl = { static const IHTMLOptionElementFactoryVtbl HTMLOptionElementFactoryVtbl = {
HTMLOptionElementFactory_QueryInterface, HTMLOptionElementFactory_QueryInterface,
HTMLOptionElementFactory_AddRef, HTMLOptionElementFactory_AddRef,
@ -541,7 +541,7 @@ HTMLOptionElementFactory *HTMLOptionElementFactory_Create(HTMLWindow *window)
ret = heap_alloc(sizeof(HTMLOptionElementFactory)); ret = heap_alloc(sizeof(HTMLOptionElementFactory));
ret->lpHTMLOptionElementFactoryVtbl = &HTMLOptionElementFactoryVtbl; ret->IHTMLOptionElementFactory_iface.lpVtbl = &HTMLOptionElementFactoryVtbl;
ret->ref = 1; ret->ref = 1;
ret->window = window; ret->window = window;

View File

@ -239,7 +239,7 @@ static ULONG WINAPI HTMLWindow2_Release(IHTMLWindow2 *iface)
if(This->option_factory) { if(This->option_factory) {
This->option_factory->window = NULL; This->option_factory->window = NULL;
IHTMLOptionElementFactory_Release(HTMLOPTFACTORY(This->option_factory)); IHTMLOptionElementFactory_Release(&This->option_factory->IHTMLOptionElementFactory_iface);
} }
if(This->image_factory) { if(This->image_factory) {
@ -1065,7 +1065,7 @@ static HRESULT WINAPI HTMLWindow2_get_Option(IHTMLWindow2 *iface, IHTMLOptionEle
if(!This->option_factory) if(!This->option_factory)
This->option_factory = HTMLOptionElementFactory_Create(This); This->option_factory = HTMLOptionElementFactory_Create(This);
*p = HTMLOPTFACTORY(This->option_factory); *p = &This->option_factory->IHTMLOptionElementFactory_iface;
IHTMLOptionElementFactory_AddRef(*p); IHTMLOptionElementFactory_AddRef(*p);
return S_OK; return S_OK;

View File

@ -228,7 +228,7 @@ typedef struct {
} global_prop_t; } global_prop_t;
typedef struct { typedef struct {
const IHTMLOptionElementFactoryVtbl *lpHTMLOptionElementFactoryVtbl; IHTMLOptionElementFactory IHTMLOptionElementFactory_iface;
LONG ref; LONG ref;
@ -634,7 +634,6 @@ struct HTMLDocumentNode {
#define HTMLTEXTCONT(x) ((IHTMLTextContainer*) &(x)->lpHTMLTextContainerVtbl) #define HTMLTEXTCONT(x) ((IHTMLTextContainer*) &(x)->lpHTMLTextContainerVtbl)
#define HTMLOPTFACTORY(x) ((IHTMLOptionElementFactory*) &(x)->lpHTMLOptionElementFactoryVtbl)
#define HTMLIMGFACTORY(x) ((IHTMLImageElementFactory*) &(x)->lpHTMLImageElementFactoryVtbl) #define HTMLIMGFACTORY(x) ((IHTMLImageElementFactory*) &(x)->lpHTMLImageElementFactoryVtbl)
#define HTMLLOCATION(x) ((IHTMLLocation*) &(x)->lpHTMLLocationVtbl) #define HTMLLOCATION(x) ((IHTMLLocation*) &(x)->lpHTMLLocationVtbl)