Made INSTR_EmulateInstruction return the exception code.
[wine.git] / include / wine / obj_property.h
blob8d2de3a62edc03aee053064767d9cd94991de68b
1 /*
2 * Defines the COM interfaces and APIs from ocidl.h related to property
4 * Depends on 'obj_base.h'.
6 * Copyright (C) 1999 Paul Quinn
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 #ifndef __WINE_WINE_OBJ_PROPERTY_H
24 #define __WINE_WINE_OBJ_PROPERTY_H
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* defined(__cplusplus) */
30 /*****************************************************************************
31 * Declare the structures
33 typedef struct tagPROPPAGEINFO
35 ULONG cb;
36 LPOLESTR pszTitle;
37 SIZE size;
38 LPOLESTR pszDocString;
39 LPOLESTR pszHelpFile;
40 DWORD dwHelpContext;
41 } PROPPAGEINFO, *LPPROPPAGEINFO;
43 typedef enum tagPROPPAGESTATUS
45 PROPPAGESTATUS_DIRTY = 0x1,
46 PROPPAGESTATUS_VALIDATE = 0x2,
47 PROPPAGESTATUS_CLEAN = 0x4
48 } PROPPAGESTATUS;
50 typedef struct tagCAUUID
52 ULONG cElems;
53 GUID* pElems;
54 } CAUUID, *LPCAUUID;
56 typedef struct tagCALPOLESTR
58 ULONG cElems;
59 LPOLESTR *pElems;
60 } CALPOLESTR, *LPCALPOLESTR;
62 typedef struct tagCADWORD
64 ULONG cElems;
65 DWORD *pElems;
66 } CADWORD, *LPCADWORD;
69 typedef enum tagPROPBAG2_TYPE
71 PROPBAG2_TYPE_UNDEFINED = 0,
72 PROPBAG2_TYPE_DATA = 1,
73 PROPBAG2_TYPE_URL = 2,
74 PROPBAG2_TYPE_OBJECT = 3,
75 PROPBAG2_TYPE_STREAM = 4,
76 PROPBAG2_TYPE_STORAGE = 5,
77 PROPBAG2_TYPE_MONIKER = 6
78 } PROPBAG2_TYPE;
80 typedef struct tagPROPBAG2
82 DWORD dwType;
83 VARTYPE vt;
84 CLIPFORMAT cfType;
85 DWORD dwHint;
86 LPOLESTR pstrName;
87 CLSID clsid;
88 } PROPBAG2;
90 /*****************************************************************************
91 * Predeclare the interfaces
93 DEFINE_GUID(IID_IPropertyPage, 0xb196b28dL, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
94 typedef struct IPropertyPage IPropertyPage, *LPPROPERTYPAGE;
96 DEFINE_GUID(IID_IPropertyPage2, 0x01e44665L, 0x24ac, 0x101b, 0x84, 0xed, 0x08, 0x00, 0x2b, 0x2e, 0xc7, 0x13);
97 typedef struct IPropertyPage2 IPropertyPage2, *LPPROPERTYPAGE2;
99 DEFINE_GUID(IID_IPropertyPageSite, 0xb196b28cL, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
100 typedef struct IPropertyPageSite IPropertyPageSite, *LPPROPERTYPAGESITE;
102 DEFINE_GUID(IID_IPropertyNotifySink, 0x9bfbbc02L, 0xeff1, 0x101a, 0x84, 0xed, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
103 typedef struct IPropertyNotifySink IPropertyNotifySink, *LPPROPERTYNOTIFYSINK;
105 DEFINE_GUID(IID_ISimpleFrameSite, 0x742b0e01L, 0x14e6, 0x101b, 0x91, 0x4e, 0x00, 0xaa, 0x00, 0x30, 0x0c, 0xab);
106 typedef struct ISimpleFrameSite ISimpleFrameSite, *LPSIMPLEFRAMESITE;
108 DEFINE_GUID(IID_IPersistStreamInit, 0x7fd52380L, 0x4e07, 0x101b, 0xae, 0x2d, 0x08, 0x00, 0x2b, 0x2e, 0xc7, 0x13);
109 typedef struct IPersistStreamInit IPersistStreamInit,*LPPERSISTSTREAMINIT;
111 DEFINE_GUID(IID_IPersistMemory, 0xbd1ae5e0L, 0xa6ae, 0x11ce, 0xbd, 0x37, 0x50, 0x42, 0x00, 0xc1, 0x00, 0x00);
112 typedef struct IPersistMemory IPersistMemory,*LPPERSISTMEMORY;
114 DEFINE_GUID(IID_IPersistPropertyBag, 0x37d84f60, 0x42cb, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51);
115 typedef struct IPersistPropertyBag IPersistPropertyBag,*LPPERSISTPROPERTYBAG;
117 DEFINE_GUID(IID_IPersistPropertyBag2, 0x22f55881, 0x280b, 0x11d0, 0xa8, 0xa9, 0x00, 0xa0, 0xc9, 0x0c, 0x20, 0x04);
118 typedef struct IPersistPropertyBag2 IPersistPropertyBag2,*LPPERSISTPROPERTYBAG2;
120 DEFINE_GUID(IID_IErrorLog, 0x3127ca40L, 0x446e, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51);
121 typedef struct IErrorLog IErrorLog,*LPERRORLOG;
123 DEFINE_GUID(IID_IPropertyBag, 0x55272a00L, 0x42cb, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51);
124 typedef struct IPropertyBag IPropertyBag,*LPPROPERTYBAG;
126 DEFINE_GUID(IID_IPropertyBag2, 0x22f55882, 0x280b, 0x11d0, 0xa8, 0xa9, 0x00, 0xa0, 0xc9, 0x0c, 0x20, 0x04);
127 typedef struct IPropertyBag2 IPropertyBag2,*LPPROPERTYBAG2;
129 DEFINE_GUID(IID_ISpecifyPropertyPages, 0xb196b28b, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
130 typedef struct ISpecifyPropertyPages ISpecifyPropertyPages,*LPSPECIFYPROPERTYPAGES;
132 DEFINE_GUID(IID_IPerPropertyBrowsing, 0xb196b28b, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
133 typedef struct IPerPropertyBrowsing IPerPropertyBrowsing,*LPPERPROPERTYBROWSING;
136 /*****************************************************************************
137 * IPropertPage interface
139 #define INTERFACE IPropertyPage
140 #define IPropertyPage_METHODS \
141 IUnknown_METHODS \
142 STDMETHOD(SetPageSite)(THIS_ IPropertyPageSite *pPageSite) PURE; \
143 STDMETHOD(Activate)(THIS_ HWND hWndParent, LPCRECT pRect, BOOL bModal) PURE; \
144 STDMETHOD(Deactivate)(THIS) PURE; \
145 STDMETHOD(GetPageInfo)(THIS_ PROPPAGEINFO *pPageInfo) PURE; \
146 STDMETHOD(SetObjects)(THIS_ ULONG cObjects, IUnknown **ppUnk) PURE; \
147 STDMETHOD(Show)(THIS_ UINT nCmdShow) PURE; \
148 STDMETHOD(Move)(THIS_ LPCRECT pRect) PURE; \
149 STDMETHOD(IsPageDirty)(THIS) PURE; \
150 STDMETHOD(Apply)(THIS) PURE; \
151 STDMETHOD(Help)(THIS_ LPCOLESTR pszHelpDir) PURE; \
152 STDMETHOD(TranslateAccelerator)(THIS_ MSG *pMsg) PURE;
153 ICOM_DEFINE(IPropertyPage,IUnknown)
154 #undef INTERFACE
156 #ifdef COBJMACROS
157 /*** IUnknown methods ***/
158 #define IPropertyPage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
159 #define IPropertyPage_AddRef(p) (p)->lpVtbl->AddRef(p)
160 #define IPropertyPage_Release(p) (p)->lpVtbl->Release(p)
161 /*** IPropertyPage methods ***/
162 #define IPropertyPage_SetPageSite(p,a) (p)->lpVtbl->SetPageSite(p,a)
163 #define IPropertyPage_Activate(p,a,b,c) (p)->lpVtbl->Activate(p,a,b,c)
164 #define IPropertyPage_Deactivate(p) (p)->lpVtbl->Deactivate(p)
165 #define IPropertyPage_GetPageInfo(p,a) (p)->lpVtbl->GetPageInfo(p,a)
166 #define IPropertyPage_SetObjects(p,a,b) (p)->lpVtbl->SetObjects(p,a,b)
167 #define IPropertyPage_Show(p,a) (p)->lpVtbl->Show(p,a)
168 #define IPropertyPage_Move(p,a) (p)->lpVtbl->Move(p,a)
169 #define IPropertyPage_IsPageDirty(p) (p)->lpVtbl->IsPageDirty(p)
170 #define IPropertyPage_Apply(p) (p)->lpVtbl->Apply(p)
171 #define IPropertyPage_Help(p,a) (p)->lpVtbl->Help(p,a)
172 #define IPropertyPage_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
173 #endif
176 /*****************************************************************************
177 * IPropertPage2 interface
179 #define INTERFACE IPropertyPage2
180 #define IPropertyPage2_METHODS \
181 IPropertyPage_METHODS \
182 STDMETHOD(EditProperty)(THIS_ DISPID dispID) PURE;
183 ICOM_DEFINE(IPropertyPage2,IPropertyPage)
184 #undef INTERFACE
186 #ifdef COBJMACROS
187 /*** IUnknown methods ***/
188 #define IPropertyPage2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
189 #define IPropertyPage2_AddRef(p) (p)->lpVtbl->AddRef(p)
190 #define IPropertyPage2_Release(p) (p)->lpVtbl->Release(p)
191 /*** IPropertyPage methods ***/
192 #define IPropertyPage2_SetPageSite(p,a) (p)->lpVtbl->SetPageSite(p,a)
193 #define IPropertyPage2_Activate(p,a,b,c) (p)->lpVtbl->Activate(p,a,b,c)
194 #define IPropertyPage2_Deactivate(p) (p)->lpVtbl->Deactivate(p)
195 #define IPropertyPage2_GetPageInfo(p,a) (p)->lpVtbl->GetPageInfo(p,a)
196 #define IPropertyPage2_SetObjects(p,a,b) (p)->lpVtbl->SetObjects(p,a,b)
197 #define IPropertyPage2_Show(p,a) (p)->lpVtbl->Show(p,a)
198 #define IPropertyPage2_Move(p,a) (p)->lpVtbl->Move(p,a)
199 #define IPropertyPage2_IsPageDirty(p) (p)->lpVtbl->IsPageDirty(p)
200 #define IPropertyPage2_Apply(p) (p)->lpVtbl->Apply(p)
201 #define IPropertyPage2_Help(p,a) (p)->lpVtbl->Help(p,a)
202 #define IPropertyPage2_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
203 /*** IPropertyPage2 methods ***/
204 #define IPropertyPage2_EditProperty(p,a) (p)->lpVtbl->EditProperty(p,a)
205 #endif
208 /*****************************************************************************
209 * IPropertPageSite interface
211 #define INTERFACE IPropertyPageSite
212 #define IPropertyPageSite_METHODS \
213 IUnknown_METHODS \
214 STDMETHOD(OnStatusChange)(THIS_ DWORD dwFlags) PURE; \
215 STDMETHOD(GetLocaleID)(THIS_ LCID *pLocaleID) PURE; \
216 STDMETHOD(GetPageContainer)(THIS_ IUnknown **ppUnk) PURE; \
217 STDMETHOD(TranslateAccelerator)(THIS_ MSG *pMsg) PURE;
218 ICOM_DEFINE(IPropertyPageSite,IUnknown)
219 #undef INTERFACE
221 #ifdef COBJMACROS
222 /*** IUnknown methods ***/
223 #define IPropertyPageSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
224 #define IPropertyPageSite_AddRef(p) (p)->lpVtbl->AddRef(p)
225 #define IPropertyPageSite_Release(p) (p)->lpVtbl->Release(p)
226 /*** IPropertyPageSite methods ***/
227 #define IPropertyPageSite_OnStatusChange(p,a) (p)->lpVtbl->OnStatusChange(p,a)
228 #define IPropertyPageSite_GetLocaleID(p,a) (p)->lpVtbl->GetLocaleID(p,a)
229 #define IPropertyPageSite_GetPageContainer(p,a) (p)->lpVtbl->GetPageContainer(p,a)
230 #define IPropertyPageSite_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
231 #endif
234 /*****************************************************************************
235 * IPropertyNotifySink interface
237 #define INTERFACE IPropertyNotifySink
238 #define IPropertyNotifySink_METHODS \
239 IUnknown_METHODS \
240 STDMETHOD(OnChanged)(THIS_ DISPID dispID) PURE; \
241 STDMETHOD(OnRequestEdit)(THIS_ DISPID dispID) PURE;
242 ICOM_DEFINE(IPropertyNotifySink,IUnknown)
243 #undef INTERFACE
245 #ifdef COBJMACROS
246 /*** IUnknown methods ***/
247 #define IPropertyNotifySink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
248 #define IPropertyNotifySink_AddRef(p) (p)->lpVtbl->AddRef(p)
249 #define IPropertyNotifySink_Release(p) (p)->lpVtbl->Release(p)
250 /*** IPropertyNotifySink methods ***/
251 #define IPropertyNotifySink_OnChanged(p,a) (p)->lpVtbl->OnChanged(p,a)
252 #define IPropertyNotifySink_OnRequestEdit(p,a) (p)->lpVtbl->OnRequestEdit(p,a)
253 #endif
256 /*****************************************************************************
257 * IPropertyNotifySink interface
259 #define INTERFACE ISimpleFrameSite
260 #define ISimpleFrameSite_METHODS \
261 IUnknown_METHODS \
262 STDMETHOD(PreMessageFilter)(THIS_ HWND hWnd, UINT msg, WPARAM wp, LPARAM lp, LRESULT *plResult, DWORD *pwdCookie) PURE; \
263 STDMETHOD(PostMessageFilter)(THIS_ HWND hWnd, UINT msg, WPARAM wp, LPARAM lp, LRESULT *plResult, DWORD pwdCookie) PURE;
264 ICOM_DEFINE(ISimpleFrameSite,IUnknown)
265 #undef INTERFACE
267 #ifdef COBJMACROS
268 /*** IUnknown methods ***/
269 #define ISimpleFrameSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
270 #define ISimpleFrameSite_AddRef(p) (p)->lpVtbl->AddRef(p)
271 #define ISimpleFrameSite_Release(p) (p)->lpVtbl->Release(p)
272 /*** IPropertyNotifySink methods ***/
273 #define ISimpleFrameSite_PreMessageFilter(p,a,b,c,d,e,f) (p)->lpVtbl->PreMessageFilter(p,a,b,c,d,e,f)
274 #define ISimpleFrameSite_PostMessageFilter(p,a,b,c,d,e,f) (p)->lpVtbl->PostMessageFilter(p,a,b,c,d,e,f)
275 #endif
278 /*****************************************************************************
279 * IPersistStreamInit interface
281 #define INTERFACE IPersistStreamInit
282 #define IPersistStreamInit_METHODS \
283 IPersist_METHODS \
284 STDMETHOD(IsDirty)(THIS) PURE; \
285 STDMETHOD(Load)(THIS_ LPSTREAM pStm) PURE; \
286 STDMETHOD(Save)(THIS_ LPSTREAM pStm, BOOL fClearDirty) PURE; \
287 STDMETHOD(GetSizeMax)(THIS_ ULARGE_INTEGER *pcbSize) PURE; \
288 STDMETHOD(InitNew)(THIS) PURE;
289 ICOM_DEFINE(IPersistStreamInit,IPersist)
290 #undef INTERFACE
292 #ifdef COBJMACROS
293 /*** IUnknown methods ***/
294 #define IPersistStreamInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
295 #define IPersistStreamInit_AddRef(p) (p)->lpVtbl->AddRef(p)
296 #define IPersistStreamInit_Release(p) (p)->lpVtbl->Release(p)
297 /*** IPersist methods ***/
298 #define IPersistStreamInit_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
299 /*** IPersistStreamInit methods ***/
300 #define IPersistStreamInit_IsDirty(p) (p)->lpVtbl->IsDirty(p)
301 #define IPersistStreamInit_Load(p,a) (p)->lpVtbl->Load(p,a)
302 #define IPersistStreamInit_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
303 #define IPersistStreamInit_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
304 #define IPersistStreamInit_InitNew(p) (p)->lpVtbl->InitNew(p)
305 #endif
308 /*****************************************************************************
309 * IPersistMemory interface
311 #define INTERFACE IPersistMemory
312 #define IPersistMemory_METHODS \
313 IPersist_METHODS \
314 STDMETHOD(IsDirty)(THIS) PURE; \
315 STDMETHOD(Load)(THIS_ LPVOID pMem, ULONG cbSize) PURE; \
316 STDMETHOD(Save)(THIS_ LPVOID pMem, BOOL fClearDirty, ULONG cbSize) PURE; \
317 STDMETHOD(GetSizeMax)(THIS_ ULONG *pCbSize) PURE; \
318 STDMETHOD(InitNew)(THIS) PURE;
319 ICOM_DEFINE(IPersistMemory,IPersist)
320 #undef INTERFACE
322 #ifdef COBJMACROS
323 /*** IUnknown methods ***/
324 #define IPersistMemory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
325 #define IPersistMemory_AddRef(p) (p)->lpVtbl->AddRef(p)
326 #define IPersistMemory_Release(p) (p)->lpVtbl->Release(p)
327 /*** IPersist methods ***/
328 #define IPersistMemory_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
329 /*** IPersistMemory methods ***/
330 #define IPersistMemory_IsDirty(p) (p)->lpVtbl->IsDirty(p)
331 #define IPersistMemory_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
332 #define IPersistMemory_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
333 #define IPersistMemory_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
334 #define IPersistMemory_InitNew(p) (p)->lpVtbl->InitNew(p)
335 #endif
338 /*****************************************************************************
339 * IPersistPropertyBag interface
341 #define INTERFACE IPersistPropertyBag
342 #define IPersistPropertyBag_METHODS \
343 IPersist_METHODS \
344 STDMETHOD(InitNew)(THIS) PURE; \
345 STDMETHOD(Load)(THIS_ IPropertyBag *pPropBag, IErrorLog *pErrorLog) PURE; \
346 STDMETHOD(Save)(THIS_ IPropertyBag *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) PURE;
347 ICOM_DEFINE(IPersistPropertyBag,IPersist)
348 #undef INTERFACE
350 #ifdef COBJMACROS
351 /*** IUnknown methods ***/
352 #define IPersistPropertyBag_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
353 #define IPersistPropertyBag_AddRef(p) (p)->lpVtbl->AddRef(p)
354 #define IPersistPropertyBag_Release(p) (p)->lpVtbl->Release(p)
355 /*** IPersist methods ***/
356 #define IPersistPropertyBag_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
357 /*** IPersistPropertyBag methods ***/
358 #define IPersistPropertyBag_InitNew(p) (p)->lpVtbl->InitNew(p)
359 #define IPersistPropertyBag_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
360 #define IPersistPropertyBag_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
361 #endif
364 /*****************************************************************************
365 * IPersistPropertyBag2 interface
367 #define INTERFACE IPersistPropertyBag2
368 #define IPersistPropertyBag2_METHODS \
369 IPersist_METHODS \
370 STDMETHOD(InitNew)(THIS) PURE; \
371 STDMETHOD(Load)(THIS_ IPropertyBag2 *pPropBag, IErrorLog *pErrorLog) PURE; \
372 STDMETHOD(Save)(THIS_ IPropertyBag2 *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) PURE; \
373 STDMETHOD(IsDirty)(THIS) PURE;
374 ICOM_DEFINE(IPersistPropertyBag2,IPersist)
375 #undef INTERFACE
377 #ifdef COBJMACROS
378 /*** IUnknown methods ***/
379 #define IPersistPropertyBag2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
380 #define IPersistPropertyBag2_AddRef(p) (p)->lpVtbl->AddRef(p)
381 #define IPersistPropertyBag2_Release(p) (p)->lpVtbl->Release(p)
382 /*** IPersist methods ***/
383 #define IPersistPropertyBag2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
384 /*** IPersistPropertyBag methods ***/
385 #define IPersistPropertyBag2_InitNew(p) (p)->lpVtbl->InitNew(p)
386 #define IPersistPropertyBag2_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
387 #define IPersistPropertyBag2_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
388 #define IPersistPropertyBag2_IsDirty(p) (p)->lpVtbl->IsDirty(p)
389 #endif
392 /*****************************************************************************
393 * IErrorLog interface
395 #define INTERFACE IErrorLog
396 #define IErrorLog_METHODS \
397 IUnknown_METHODS \
398 STDMETHOD(AddError)(THIS_ LPCOLESTR pszPropName, EXCEPINFO *pExcepInfo) PURE;
399 ICOM_DEFINE(IErrorLog,IUnknown)
400 #undef INTERFACE
402 #ifdef COBJMACROS
403 /*** IUnknown methods ***/
404 #define IErrorLog_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
405 #define IErrorLog_AddRef(p) (p)->lpVtbl->AddRef(p)
406 #define IErrorLog_Release(p) (p)->lpVtbl->Release(p)
407 /*** IErrorLog methods ***/
408 #define IErrorLog_AddError(p,a,b) (p)->lpVtbl->GetClassID(p,a,b)
409 #endif
412 /*****************************************************************************
413 * IPropertyBag interface
415 #define INTERFACE IPropertyBag
416 #define IPropertyBag_METHODS \
417 IUnknown_METHODS \
418 STDMETHOD(Read)(THIS_ LPCOLESTR pszPropName, VARIANT *pVar, IErrorLog *pErrorLog) PURE; \
419 STDMETHOD(Write)(THIS_ LPCOLESTR pszPropName, VARIANT *pVar) PURE;
420 ICOM_DEFINE(IPropertyBag,IUnknown)
421 #undef INTERFACE
423 #ifdef COBJMACROS
424 /*** IUnknown methods ***/
425 #define IPropertyBag_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
426 #define IPropertyBag_AddRef(p) (p)->lpVtbl->AddRef(p)
427 #define IPropertyBag_Release(p) (p)->lpVtbl->Release(p)
428 /*** IPropertyBag methods ***/
429 #define IPropertyBag_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
430 #define IPropertyBag_Write(p,a,b) (p)->lpVtbl->Write(p,a,b)
431 #endif
434 /*****************************************************************************
435 * IPropertyBag2 interface
437 #define INTERFACE IPropertyBag2
438 #define IPropertyBag2_METHODS \
439 IUnknown_METHODS \
440 STDMETHOD(Read)(THIS_ ULONG cProperties, PROPBAG2 *pPropBag, IErrorLog *pErrLog, VARIANT *pvarValue, HRESULT *phrError) PURE; \
441 STDMETHOD(Write)(THIS_ ULONG cProperties, PROPBAG2 *pPropBag, VARIANT *pvarValue) PURE; \
442 STDMETHOD(CountProperties)(THIS_ ULONG *pcProperties) PURE; \
443 STDMETHOD(GetPropertyInfo)(THIS_ ULONG iProperty, ULONG cProperties, PROPBAG2 *pPropBag, ULONG *pcProperties) PURE; \
444 STDMETHOD(LoadObject)(THIS_ LPCOLESTR pstrName, DWORD dwHint, IUnknown *pUnkObject, IErrorLog *pErrLog) PURE;
445 ICOM_DEFINE(IPropertyBag2,IUnknown)
446 #undef INTERFACE
448 #ifdef COBJMACROS
449 /*** IUnknown methods ***/
450 #define IPropertyBag2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
451 #define IPropertyBag2_AddRef(p) (p)->lpVtbl->AddRef(p)
452 #define IPropertyBag2_Release(p) (p)->lpVtbl->Release(p)
453 /*** IPropertyBag methods ***/
454 #define IPropertyBag2_Read(p,a,b,c,d,e) (p)->lpVtbl->Read(p,a,b,c,d,e)
455 #define IPropertyBag2_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
456 #define IPropertyBag2_CountProperties(p,a) (p)->lpVtbl->CountProperties(p,a)
457 #define IPropertyBag2_GetPropertyInfo(p,a,b,c,d) (p)->lpVtbl->GetPropertyInfo(p,a,b,c,d)
458 #define IPropertyBag2_LoadObject(p,a,b,c,d) (p)->lpVtbl->LoadObject(p,a,b,c,d)
459 #endif
462 /*****************************************************************************
463 * ISpecifyPropertyPages interface
465 #define INTERFACE ISpecifyPropertyPages
466 #define ISpecifyPropertyPages_METHODS \
467 IUnknown_METHODS \
468 STDMETHOD(GetPages)(THIS_ CAUUID *pPages) PURE;
469 ICOM_DEFINE(ISpecifyPropertyPages,IUnknown)
470 #undef INTERFACE
472 #ifdef COBJMACROS
473 /*** IUnknown methods ***/
474 #define ISpecifyPropertyPages_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
475 #define ISpecifyPropertyPages_AddRef(p) (p)->lpVtbl->AddRef(p)
476 #define ISpecifyPropertyPages_Release(p) (p)->lpVtbl->Release(p)
477 /*** ISpecifyPropertyPages methods ***/
478 #define ISpecifyPropertyPages_GetPages(p,a) (p)->lpVtbl->GetPages(p,a)
479 #endif
482 /*****************************************************************************
483 * IPerPropertyBrowsing interface
485 #define INTERFACE IPerPropertyBrowsing
486 #define IPerPropertyBrowsing_METHODS \
487 IUnknown_METHODS \
488 STDMETHOD(GetDisplayString)(THIS_ DISPID dispID, BSTR *pBstr) PURE; \
489 STDMETHOD(MapPropertyToPage)(THIS_ DISPID dispID, CLSID *pClsid) PURE; \
490 STDMETHOD(GetPredefinedStrings)(THIS_ DISPID dispID, CALPOLESTR *pCaStringsOut, CADWORD *pCaCookiesOut) PURE; \
491 STDMETHOD(GetPredefinedValue)(THIS_ DISPID dispID, DWORD dwCookie, VARIANT *pVarOut) PURE;
492 ICOM_DEFINE(IPerPropertyBrowsing,IUnknown)
493 #undef INTERFACE
495 #ifdef COBJMACROS
496 /*** IUnknown methods ***/
497 #define IPerPropertyBrowsing_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
498 #define IPerPropertyBrowsing_AddRef(p) (p)->lpVtbl->AddRef(p)
499 #define IPerPropertyBrowsing_Release(p) (p)->lpVtbl->Release(p)
500 /*** IPerPropertyBrowsing methods ***/
501 #define IPerPropertyBrowsing_GetDisplayString(p,a,b) (p)->lpVtbl->GetDisplayString(p,a,b)
502 #define IPerPropertyBrowsing_MapPropertyToPage(p,a,b) (p)->lpVtbl->MapPropertyToPage(p,a,b)
503 #define IPerPropertyBrowsing_GetPredefinedStrings(p,a,b,c) (p)->lpVtbl->GetPredefinedStrings(p,a,b,c)
504 #define IPerPropertyBrowsing_GetPredefinedValue(p,a,b,c) (p)->lpVtbl->GetPredefinedValue(p,a,b,c)
505 #endif
507 #ifdef __cplusplus
508 } /* extern "C" */
509 #endif /* defined(__cplusplus) */
511 #endif /* __WINE_WINE_OBJ_PROPERTY_H */