Module: wine Branch: master Commit: 269f5bbe8110e52fb86163c409109e948f0bdfc9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=269f5bbe8110e52fb86163c409...
Author: Michael Stefaniuc mstefani@redhat.de Date: Thu Mar 24 13:41:22 2011 +0100
oleaut32: COM cleanup for the IPropertyPageSite iface.
---
dlls/oleaut32/olepropframe.c | 26 ++++++++++++++++---------- 1 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/dlls/oleaut32/olepropframe.c b/dlls/oleaut32/olepropframe.c index 61655f9..8111e6b 100644 --- a/dlls/oleaut32/olepropframe.c +++ b/dlls/oleaut32/olepropframe.c @@ -36,11 +36,16 @@ WINE_DEFAULT_DEBUG_CHANNEL(ole);
typedef struct { - const IPropertyPageSiteVtbl *lpVtbl; + IPropertyPageSite IPropertyPageSite_iface; LCID lcid; LONG ref; } PropertyPageSite;
+static inline PropertyPageSite *impl_from_IPropertyPageSite(IPropertyPageSite *iface) +{ + return CONTAINING_RECORD(iface, PropertyPageSite, IPropertyPageSite_iface); +} + static INT_PTR CALLBACK property_sheet_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { IPropertyPage *property_page = (IPropertyPage*)GetWindowLongPtrW(hwnd, DWLP_USER); @@ -86,7 +91,7 @@ static HRESULT WINAPI PropertyPageSite_QueryInterface(IPropertyPageSite* iface,
static ULONG WINAPI PropertyPageSite_AddRef(IPropertyPageSite* iface) { - PropertyPageSite *this = (PropertyPageSite*)iface; + PropertyPageSite *this = impl_from_IPropertyPageSite(iface); LONG ref = InterlockedIncrement(&this->ref);
TRACE("(%p) ref=%d\n", this, ref); @@ -95,7 +100,7 @@ static ULONG WINAPI PropertyPageSite_AddRef(IPropertyPageSite* iface)
static ULONG WINAPI PropertyPageSite_Release(IPropertyPageSite* iface) { - PropertyPageSite *this = (PropertyPageSite *)iface; + PropertyPageSite *this = impl_from_IPropertyPageSite(iface); LONG ref = InterlockedDecrement(&this->ref);
TRACE("(%p) ref=%d\n", this, ref); @@ -114,7 +119,7 @@ static HRESULT WINAPI PropertyPageSite_OnStatusChange( static HRESULT WINAPI PropertyPageSite_GetLocaleID( IPropertyPageSite *iface, LCID *pLocaleID) { - PropertyPageSite *this = (PropertyPageSite *)iface; + PropertyPageSite *this = impl_from_IPropertyPageSite(iface);
TRACE("(%p, %p)\n", iface, pLocaleID); *pLocaleID = this->lcid; @@ -161,7 +166,7 @@ HRESULT WINAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams) WORD title; } *dialogs; IPropertyPage **property_page; - IPropertyPageSite *property_page_site; + PropertyPageSite *property_page_site; HRESULT res; int i; HMODULE hcomctl; @@ -270,12 +275,13 @@ HRESULT WINAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams) property_page_site = HeapAlloc(GetProcessHeap(), 0, sizeof(PropertyPageSite)); if(!property_page_site) continue; - ((PropertyPageSite*)property_page_site)->lpVtbl = &PropertyPageSiteVtbl; - ((PropertyPageSite*)property_page_site)->ref = 1; - ((PropertyPageSite*)property_page_site)->lcid = lpParams->lcid; + property_page_site->IPropertyPageSite_iface.lpVtbl = &PropertyPageSiteVtbl; + property_page_site->ref = 1; + property_page_site->lcid = lpParams->lcid;
- res = IPropertyPage_SetPageSite(property_page[i], property_page_site); - IPropertyPageSite_Release(property_page_site); + res = IPropertyPage_SetPageSite(property_page[i], + &property_page_site->IPropertyPageSite_iface); + IPropertyPageSite_Release(&property_page_site->IPropertyPageSite_iface); if(FAILED(res)) continue;