ReactOS 0.4.16-dev-297-gc569aee
olepropframe.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "ole2.h"
#include "olectl.h"
#include "oledlg.h"
#include "wine/debug.h"
Include dependency graph for olepropframe.c:

Go to the source code of this file.

Classes

struct  PropertyPageSite
 

Macros

#define COBJMACROS
 
#define NONAMELESSUNION
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (ole)
 
static PropertyPageSiteimpl_from_IPropertyPageSite (IPropertyPageSite *iface)
 
static INT_PTR CALLBACK property_sheet_proc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
 
static HRESULT WINAPI PropertyPageSite_QueryInterface (IPropertyPageSite *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI PropertyPageSite_AddRef (IPropertyPageSite *iface)
 
static ULONG WINAPI PropertyPageSite_Release (IPropertyPageSite *iface)
 
static HRESULT WINAPI PropertyPageSite_OnStatusChange (IPropertyPageSite *iface, DWORD dwFlags)
 
static HRESULT WINAPI PropertyPageSite_GetLocaleID (IPropertyPageSite *iface, LCID *pLocaleID)
 
static HRESULT WINAPI PropertyPageSite_GetPageContainer (IPropertyPageSite *iface, IUnknown **ppUnk)
 
static HRESULT WINAPI PropertyPageSite_TranslateAccelerator (IPropertyPageSite *iface, MSG *pMsg)
 
HRESULT WINAPI OleCreatePropertyFrameIndirect (LPOCPFIPARAMS lpParams)
 
HRESULT WINAPI OleCreatePropertyFrame (HWND hwndOwner, UINT x, UINT y, LPCOLESTR lpszCaption, ULONG cObjects, LPUNKNOWN *ppUnk, ULONG cPages, LPCLSID pPageClsID, LCID lcid, DWORD dwReserved, LPVOID pvReserved)
 

Variables

static IPropertyPageSiteVtbl PropertyPageSiteVtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 24 of file olepropframe.c.

◆ NONAMELESSUNION

#define NONAMELESSUNION

Definition at line 25 of file olepropframe.c.

Function Documentation

◆ impl_from_IPropertyPageSite()

static PropertyPageSite * impl_from_IPropertyPageSite ( IPropertyPageSite iface)
inlinestatic

Definition at line 43 of file olepropframe.c.

44{
45 return CONTAINING_RECORD(iface, PropertyPageSite, IPropertyPageSite_iface);
46}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by PropertyPageSite_AddRef(), PropertyPageSite_GetLocaleID(), and PropertyPageSite_Release().

◆ OleCreatePropertyFrame()

HRESULT WINAPI OleCreatePropertyFrame ( HWND  hwndOwner,
UINT  x,
UINT  y,
LPCOLESTR  lpszCaption,
ULONG  cObjects,
LPUNKNOWN ppUnk,
ULONG  cPages,
LPCLSID  pPageClsID,
LCID  lcid,
DWORD  dwReserved,
LPVOID  pvReserved 
)

Definition at line 324 of file olepropframe.c.

328{
329 OCPFIPARAMS ocpf;
330
331 ocpf.cbStructSize = sizeof(OCPFIPARAMS);
332 ocpf.hWndOwner = hwndOwner;
333 ocpf.x = x;
334 ocpf.y = y;
335 ocpf.lpszCaption = lpszCaption;
336 ocpf.cObjects = cObjects;
337 ocpf.lplpUnk = ppUnk;
338 ocpf.cPages = cPages;
339 ocpf.lpPages = pPageClsID;
340 ocpf.lcid = lcid;
341 ocpf.dispidInitialProperty = 0;
342
343 return OleCreatePropertyFrameIndirect(&ocpf);
344}
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
struct tagOCPFIPARAMS OCPFIPARAMS
HRESULT WINAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams)
Definition: olepropframe.c:155
DISPID dispidInitialProperty
Definition: olectl.h:112
CLSID * lpPages
Definition: olectl.h:110
HWND hWndOwner
Definition: olectl.h:103
ULONG cbStructSize
Definition: olectl.h:102
LPCOLESTR lpszCaption
Definition: olectl.h:106
LPUNKNOWN * lplpUnk
Definition: olectl.h:108
ULONG cPages
Definition: olectl.h:109
ULONG cObjects
Definition: olectl.h:107

◆ OleCreatePropertyFrameIndirect()

HRESULT WINAPI OleCreatePropertyFrameIndirect ( LPOCPFIPARAMS  lpParams)

Definition at line 155 of file olepropframe.c.

156{
157 static const WCHAR comctlW[] = { 'c','o','m','c','t','l','3','2','.','d','l','l',0 };
158
159 PROPSHEETHEADERW property_sheet;
160 PROPSHEETPAGEW property_sheet_page;
161 struct {
162 DLGTEMPLATE template;
163 WORD menu;
164 WORD class;
165 WORD title;
166 } *dialogs;
167 IPropertyPage **property_page;
168 PropertyPageSite *property_page_site;
169 HRESULT res;
170 ULONG i;
171 HMODULE hcomctl;
172 HRSRC property_sheet_dialog_find = NULL;
173 HGLOBAL property_sheet_dialog_load = NULL;
174 WCHAR *property_sheet_dialog_data = NULL;
175 HDC hdc;
176 LOGFONTW font_desc;
177 HFONT hfont;
178 LONG font_width = 4, font_height = 8;
179
180 if(!lpParams)
181 return E_POINTER;
182
183 TRACE("(%d %p %d %d %s %d %p %d %p %d %d)\n", lpParams->cbStructSize,
184 lpParams->hWndOwner, lpParams->x, lpParams->y,
185 debugstr_w(lpParams->lpszCaption), lpParams->cObjects,
186 lpParams->lplpUnk, lpParams->cPages, lpParams->lpPages,
187 lpParams->lcid, lpParams->dispidInitialProperty);
188
189 if(!lpParams->lpPages)
190 return E_POINTER;
191
192 if(lpParams->cbStructSize != sizeof(OCPFIPARAMS)) {
193 WARN("incorrect structure size\n");
194 return E_INVALIDARG;
195 }
196
197 if(lpParams->dispidInitialProperty)
198 FIXME("dispidInitialProperty not yet implemented\n");
199
200 hdc = GetDC(NULL);
201 hcomctl = LoadLibraryW(comctlW);
202 if(hcomctl)
203 property_sheet_dialog_find = FindResourceW(hcomctl,
204 MAKEINTRESOURCEW(1006 /*IDD_PROPSHEET*/), (LPWSTR)RT_DIALOG);
205 if(property_sheet_dialog_find)
206 property_sheet_dialog_load = LoadResource(hcomctl, property_sheet_dialog_find);
207 if(property_sheet_dialog_load)
208 property_sheet_dialog_data = LockResource(property_sheet_dialog_load);
209
210 if(property_sheet_dialog_data) {
211 if(property_sheet_dialog_data[1] == 0xffff) {
212 ERR("Expected DLGTEMPLATE structure\n");
213 FreeLibrary(hcomctl);
214 return E_OUTOFMEMORY;
215 }
216
217 property_sheet_dialog_data += sizeof(DLGTEMPLATE)/sizeof(WCHAR);
218 /* Skip menu, class and title */
219 property_sheet_dialog_data += lstrlenW(property_sheet_dialog_data)+1;
220 property_sheet_dialog_data += lstrlenW(property_sheet_dialog_data)+1;
221 property_sheet_dialog_data += lstrlenW(property_sheet_dialog_data)+1;
222
223 memset(&font_desc, 0, sizeof(LOGFONTW));
224 /* Calculate logical height */
225 font_desc.lfHeight = -MulDiv(property_sheet_dialog_data[0],
227 font_desc.lfCharSet = DEFAULT_CHARSET;
228 memcpy(font_desc.lfFaceName, property_sheet_dialog_data+1,
229 sizeof(WCHAR)*(lstrlenW(property_sheet_dialog_data+1)+1));
230 hfont = CreateFontIndirectW(&font_desc);
231
232 if(hfont) {
234 font_width = GdiGetCharDimensions(hdc, NULL, &font_height);
236 }
237 }
238 if(hcomctl)
239 FreeLibrary(hcomctl);
241
242 memset(&property_sheet, 0, sizeof(property_sheet));
243 property_sheet.dwSize = sizeof(property_sheet);
244 if(lpParams->lpszCaption) {
245 property_sheet.dwFlags = PSH_PROPTITLE;
246 property_sheet.pszCaption = lpParams->lpszCaption;
247 }
248
249 property_sheet.u3.phpage = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
250 lpParams->cPages*sizeof(HPROPSHEETPAGE));
251 property_page = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
252 lpParams->cPages*sizeof(IPropertyPage*));
254 lpParams->cPages*sizeof(*dialogs));
255 if(!property_sheet.u3.phpage || !property_page || !dialogs) {
256 HeapFree(GetProcessHeap(), 0, property_sheet.u3.phpage);
257 HeapFree(GetProcessHeap(), 0, property_page);
258 HeapFree(GetProcessHeap(), 0, dialogs);
259 return E_OUTOFMEMORY;
260 }
261
262 memset(&property_sheet_page, 0, sizeof(PROPSHEETPAGEW));
263 property_sheet_page.dwSize = sizeof(PROPSHEETPAGEW);
264 property_sheet_page.dwFlags = PSP_DLGINDIRECT|PSP_USETITLE;
265 property_sheet_page.pfnDlgProc = property_sheet_proc;
266
267 for(i=0; i<lpParams->cPages; i++) {
268 PROPPAGEINFO page_info;
269
270 res = CoCreateInstance(&lpParams->lpPages[i], NULL, CLSCTX_INPROC_SERVER,
271 &IID_IPropertyPage, (void**)&property_page[i]);
272 if(FAILED(res))
273 continue;
274
275 property_page_site = HeapAlloc(GetProcessHeap(), 0, sizeof(PropertyPageSite));
276 if(!property_page_site)
277 continue;
278 property_page_site->IPropertyPageSite_iface.lpVtbl = &PropertyPageSiteVtbl;
279 property_page_site->ref = 1;
280 property_page_site->lcid = lpParams->lcid;
281
282 res = IPropertyPage_SetPageSite(property_page[i],
283 &property_page_site->IPropertyPageSite_iface);
284 IPropertyPageSite_Release(&property_page_site->IPropertyPageSite_iface);
285 if(FAILED(res))
286 continue;
287
288 res = IPropertyPage_SetObjects(property_page[i],
289 lpParams->cObjects, lpParams->lplpUnk);
290 if(FAILED(res))
291 WARN("SetObjects() failed, hr %#x.\n", res);
292
293 res = IPropertyPage_GetPageInfo(property_page[i], &page_info);
294 if(FAILED(res))
295 continue;
296
297 dialogs[i].template.cx = MulDiv(page_info.size.cx, 4, font_width);
298 dialogs[i].template.cy = MulDiv(page_info.size.cy, 8, font_height);
299
300 property_sheet_page.u.pResource = &dialogs[i].template;
301 property_sheet_page.lParam = (LPARAM)property_page[i];
302 property_sheet_page.pszTitle = page_info.pszTitle;
303
304 property_sheet.u3.phpage[property_sheet.nPages++] =
305 CreatePropertySheetPageW(&property_sheet_page);
306 }
307
308 PropertySheetW(&property_sheet);
309
310 for(i=0; i<lpParams->cPages; i++) {
311 if(property_page[i])
312 IPropertyPage_Release(property_page[i]);
313 }
314
315 HeapFree(GetProcessHeap(), 0, dialogs);
316 HeapFree(GetProcessHeap(), 0, property_page);
317 HeapFree(GetProcessHeap(), 0, property_sheet.u3.phpage);
318 return S_OK;
319}
static HFONT hfont
#define FIXME(fmt,...)
Definition: precomp.h:53
#define WARN(fmt,...)
Definition: precomp.h:61
#define ERR(fmt,...)
Definition: precomp.h:57
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
#define NULL
Definition: types.h:112
HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW lpPropSheetPage)
Definition: propsheet.c:3086
INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
Definition: propsheet.c:2916
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define FreeLibrary(x)
Definition: compat.h:748
#define HeapFree(x, y, z)
Definition: compat.h:735
#define LoadLibraryW(x)
Definition: compat.h:747
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
#define lstrlenW
Definition: compat.h:750
HRSRC WINAPI FindResourceW(HINSTANCE hModule, LPCWSTR name, LPCWSTR type)
Definition: res.c:176
LPVOID WINAPI LockResource(HGLOBAL handle)
Definition: res.c:550
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
Definition: res.c:532
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3325
unsigned short WORD
Definition: ntddk_ex.h:93
GLuint res
Definition: glext.h:9613
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
#define debugstr_w
Definition: kernel32.h:32
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:88
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static int font_height(HFONT hFont)
Definition: combo.c:46
struct _PSP * HPROPSHEETPAGE
Definition: mstask.idl:90
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
Definition: muldiv.c:25
const GUID IID_IPropertyPage
static INT_PTR CALLBACK property_sheet_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
Definition: olepropframe.c:48
static IPropertyPageSiteVtbl PropertyPageSiteVtbl
Definition: olepropframe.c:142
#define RT_DIALOG
Definition: pedump.c:367
long LONG
Definition: pedump.c:60
#define PSH_PROPTITLE
Definition: prsht.h:40
#define PSP_USETITLE
Definition: prsht.h:26
struct _PROPSHEETPAGEW PROPSHEETPAGEW
#define PSP_DLGINDIRECT
Definition: prsht.h:23
static char title[]
Definition: ps.c:92
#define memset(x, y, z)
Definition: compat.h:39
#define TRACE(s)
Definition: solgame.cpp:4
LONG lfHeight
Definition: dimm.idl:59
WCHAR lfFaceName[LF_FACESIZE]
Definition: dimm.idl:72
BYTE lfCharSet
Definition: dimm.idl:67
IPropertyPageSite IPropertyPageSite_iface
Definition: olepropframe.c:38
DWORD dwSize
Definition: prsht.h:293
DWORD dwFlags
Definition: prsht.h:294
HPROPSHEETPAGE * phpage
Definition: prsht.h:309
LPCWSTR pszCaption
Definition: prsht.h:301
DLGPROC pfnDlgProc
Definition: prsht.h:226
DWORD dwSize
Definition: prsht.h:214
DWORD dwFlags
Definition: prsht.h:215
LPARAM lParam
Definition: prsht.h:227
LPCDLGTEMPLATE pResource
Definition: prsht.h:219
LPCWSTR pszTitle
Definition: prsht.h:225
uint32_t ULONG
Definition: typedefs.h:59
LONG_PTR LPARAM
Definition: windef.h:208
#define E_POINTER
Definition: winerror.h:2365
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *)
Definition: font.c:2145
#define LOGPIXELSY
Definition: wingdi.h:719
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1546
#define DEFAULT_CHARSET
Definition: wingdi.h:384
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC WINAPI GetDC(_In_opt_ HWND)
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by OleCreatePropertyFrame().

◆ property_sheet_proc()

static INT_PTR CALLBACK property_sheet_proc ( HWND  hwnd,
UINT  msg,
WPARAM  wparam,
LPARAM  lparam 
)
static

Definition at line 48 of file olepropframe.c.

49{
51
52 switch(msg) {
53 case WM_INITDIALOG: {
54 RECT rect;
55
56 property_page = (IPropertyPage*)((LPPROPSHEETPAGEW)lparam)->lParam;
57
59 IPropertyPage_Activate(property_page, hwnd, &rect, TRUE);
60 IPropertyPage_Show(property_page, SW_SHOW);
61
62 SetWindowLongPtrW(hwnd, DWLP_USER, (LONG_PTR)property_page);
63 return FALSE;
64 }
65 case WM_DESTROY:
66 IPropertyPage_Show(property_page, SW_HIDE);
67 IPropertyPage_Deactivate(property_page);
68 return FALSE;
69 default:
70 return FALSE;
71 }
72}
@ lparam
Definition: SystemMenu.c:31
#define msg(x)
Definition: auth_time.c:54
LPARAM lParam
Definition: combotst.c:139
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
& rect
Definition: startmenu.cpp:1413
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define SW_HIDE
Definition: winuser.h:771
#define DWLP_USER
Definition: winuser.h:875
#define GetWindowLongPtrW
Definition: winuser.h:4832
#define WM_INITDIALOG
Definition: winuser.h:1742
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define SW_SHOW
Definition: winuser.h:778
#define WM_DESTROY
Definition: winuser.h:1612
#define SetWindowLongPtrW
Definition: winuser.h:5358

Referenced by OleCreatePropertyFrameIndirect().

◆ PropertyPageSite_AddRef()

static ULONG WINAPI PropertyPageSite_AddRef ( IPropertyPageSite iface)
static

Definition at line 91 of file olepropframe.c.

92{
94 LONG ref = InterlockedIncrement(&this->ref);
95
96 TRACE("(%p) ref=%d\n", this, ref);
97 return ref;
98}
#define InterlockedIncrement
Definition: armddk.h:53
static PropertyPageSite * impl_from_IPropertyPageSite(IPropertyPageSite *iface)
Definition: olepropframe.c:43
Definition: send.c:48

◆ PropertyPageSite_GetLocaleID()

static HRESULT WINAPI PropertyPageSite_GetLocaleID ( IPropertyPageSite iface,
LCID pLocaleID 
)
static

Definition at line 118 of file olepropframe.c.

120{
122
123 TRACE("(%p, %p)\n", iface, pLocaleID);
124 *pLocaleID = this->lcid;
125 return S_OK;
126}

◆ PropertyPageSite_GetPageContainer()

static HRESULT WINAPI PropertyPageSite_GetPageContainer ( IPropertyPageSite iface,
IUnknown **  ppUnk 
)
static

Definition at line 128 of file olepropframe.c.

130{
131 FIXME("(%p, %p)\n", iface, ppUnk);
132 return E_NOTIMPL;
133}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ PropertyPageSite_OnStatusChange()

static HRESULT WINAPI PropertyPageSite_OnStatusChange ( IPropertyPageSite iface,
DWORD  dwFlags 
)
static

Definition at line 111 of file olepropframe.c.

113{
114 TRACE("(%p, %x)\n", iface, dwFlags);
115 return S_OK;
116}
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176

◆ PropertyPageSite_QueryInterface()

static HRESULT WINAPI PropertyPageSite_QueryInterface ( IPropertyPageSite iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 74 of file olepropframe.c.

76{
77 TRACE("(%p riid: %s)\n",iface, debugstr_guid(riid));
78
81 *ppv = iface;
82 else {
83 *ppv = NULL;
84 return E_NOINTERFACE;
85 }
86
87 IUnknown_AddRef((IUnknown*)*ppv);
88 return S_OK;
89}
const GUID IID_IUnknown
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
const GUID IID_IPropertyPageSite
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ PropertyPageSite_Release()

static ULONG WINAPI PropertyPageSite_Release ( IPropertyPageSite iface)
static

Definition at line 100 of file olepropframe.c.

101{
103 LONG ref = InterlockedDecrement(&this->ref);
104
105 TRACE("(%p) ref=%d\n", this, ref);
106 if(!ref)
107 HeapFree(GetProcessHeap(), 0, this);
108 return ref;
109}
#define InterlockedDecrement
Definition: armddk.h:52

◆ PropertyPageSite_TranslateAccelerator()

static HRESULT WINAPI PropertyPageSite_TranslateAccelerator ( IPropertyPageSite iface,
MSG pMsg 
)
static

Definition at line 135 of file olepropframe.c.

137{
138 FIXME("(%p, %p)\n", iface, pMsg);
139 return E_NOTIMPL;
140}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( ole  )

Variable Documentation

◆ PropertyPageSiteVtbl

IPropertyPageSiteVtbl PropertyPageSiteVtbl
static
Initial value:
= {
}
static HRESULT WINAPI PropertyPageSite_TranslateAccelerator(IPropertyPageSite *iface, MSG *pMsg)
Definition: olepropframe.c:135
static HRESULT WINAPI PropertyPageSite_QueryInterface(IPropertyPageSite *iface, REFIID riid, void **ppv)
Definition: olepropframe.c:74
static HRESULT WINAPI PropertyPageSite_GetPageContainer(IPropertyPageSite *iface, IUnknown **ppUnk)
Definition: olepropframe.c:128
static ULONG WINAPI PropertyPageSite_AddRef(IPropertyPageSite *iface)
Definition: olepropframe.c:91
static HRESULT WINAPI PropertyPageSite_OnStatusChange(IPropertyPageSite *iface, DWORD dwFlags)
Definition: olepropframe.c:111
static ULONG WINAPI PropertyPageSite_Release(IPropertyPageSite *iface)
Definition: olepropframe.c:100
static HRESULT WINAPI PropertyPageSite_GetLocaleID(IPropertyPageSite *iface, LCID *pLocaleID)
Definition: olepropframe.c:118

Definition at line 142 of file olepropframe.c.

Referenced by OleCreatePropertyFrameIndirect().