Added extern "C" if __cplusplus is defined.
[wine] / include / wine / obj_property.h
1 /*
2  * Defines the COM interfaces and APIs from ocidl.h related to property
3  *
4  * Depends on 'obj_base.h'.
5  */
6
7 #ifndef __WINE_WINE_OBJ_PROPERTY_H
8 #define __WINE_WINE_OBJ_PROPERTY_H
9
10
11 #include "winbase.h"
12 #include "wine/obj_oleaut.h" /* for DISPID */
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif /* defined(__cplusplus) */
17
18 /*****************************************************************************
19  * Declare the structures
20  */
21 typedef struct tagPROPPAGEINFO
22 {
23         ULONG cb;
24         LPOLESTR pszTitle;
25         SIZE size;
26         LPOLESTR pszDocString;
27         LPOLESTR pszHelpFile;
28         DWORD dwHelpContext;
29 } PROPPAGEINFO, *LPPROPPAGEINFO;
30
31 typedef enum tagPROPPAGESTATUS
32 {
33         PROPPAGESTATUS_DIRTY = 0x1,
34         PROPPAGESTATUS_VALIDATE = 0x2,
35         PROPPAGESTATUS_CLEAN = 0x4
36 } PROPPAGESTATUS;
37
38 typedef struct tagCAUUID
39 {
40         ULONG cElems;
41         GUID* pElems;
42 } CAUUID, *LPCAUUID;
43
44 typedef struct tagCALPOLESTR
45 {
46         ULONG cElems;
47         LPOLESTR *pElems;
48 } CALPOLESTR, *LPCALPOLESTR;
49
50 typedef struct tagCADWORD
51 {
52         ULONG cElems;
53         DWORD *pElems;
54 } CADWORD, *LPCADWORD;
55
56
57 /*****************************************************************************
58  * Predeclare the interfaces
59  */
60 DEFINE_GUID(IID_IPropertyPage, 0xb196b28dL, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
61 typedef struct IPropertyPage IPropertyPage, *LPPROPERTYPAGE;
62
63 DEFINE_GUID(IID_IPropertyPage2, 0x01e44665L, 0x24ac, 0x101b, 0x84, 0xed, 0x08, 0x00, 0x2b, 0x2e, 0xc7, 0x13);
64 typedef struct IPropertyPage2 IPropertyPage2, *LPPROPERTYPAGE2;
65
66 DEFINE_GUID(IID_IPropertyPageSite, 0xb196b28cL, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
67 typedef struct IPropertyPageSite IPropertyPageSite, *LPPROPERTYPAGESITE;
68
69 DEFINE_GUID(IID_IPropertyNotifySink, 0x9bfbbc02L, 0xeff1, 0x101a, 0x84, 0xed, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
70 typedef struct IPropertyNotifySink IPropertyNotifySink, *LPPROPERTYNOTIFYSINK;
71
72 DEFINE_GUID(IID_ISimpleFrameSite, 0x742b0e01L, 0x14e6, 0x101b, 0x91, 0x4e, 0x00, 0xaa, 0x00, 0x30, 0x0c, 0xab);
73 typedef struct ISimpleFrameSite ISimpleFrameSite, *LPSIMPLEFRAMESITE;
74
75 DEFINE_GUID(IID_IPersistStreamInit, 0x7fd52380L, 0x4e07, 0x101b, 0xae, 0x2d, 0x08, 0x00, 0x2b, 0x2e, 0xc7, 0x13);
76 typedef struct IPersistStreamInit IPersistStreamInit,*LPPERSISTSTREAMINIT;
77
78 DEFINE_GUID(IID_IPersistMemory, 0xbd1ae5e0L, 0xa6ae, 0x11ce, 0xbd, 0x37, 0x50, 0x42, 0x00, 0xc1, 0x00, 0x00);
79 typedef struct IPersistMemory IPersistMemory,*LPPERSISTMEMORY;
80  
81 DEFINE_GUID(IID_IPersistPropertyBag, 0x37d84f60, 0x42cb, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51);
82 typedef struct IPersistPropertyBag IPersistPropertyBag,*LPPERSISTPROPERTYBAG;
83  
84 DEFINE_GUID(IID_IErrorLog, 0x3127ca40L, 0x446e, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51);
85 typedef struct IErrorLog IErrorLog,*LPERRORLOG;
86
87 DEFINE_GUID(IID_IPropertyBag, 0x55272a00L, 0x42cb, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51);
88 typedef struct IPropertyBag IPropertyBag,*LPPROPERTYBAG;
89  
90 DEFINE_GUID(IID_ISpecifyPropertyPages, 0xb196b28b, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
91 typedef struct ISpecifyPropertyPages ISpecifyPropertyPages,*LPSPECIFYPROPERTYPAGES;
92  
93 DEFINE_GUID(IID_IPerPropertyBrowsing, 0xb196b28b, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
94 typedef struct IPerPropertyBrowsing IPerPropertyBrowsing,*LPPERPROPERTYBROWSING;
95  
96
97 /*****************************************************************************
98  * IPropertPage interface
99  */
100 #define ICOM_INTERFACE IPropertyPage
101 #define IPropertyPage_METHODS \
102         ICOM_METHOD1(HRESULT,SetPageSite, IPropertyPageSite*,pPageSite) \
103         ICOM_METHOD3(HRESULT,Activate, HWND,hWndParent, LPCRECT,pRect, BOOL,bModal) \
104         ICOM_METHOD (HRESULT,Deactivate) \
105         ICOM_METHOD1(HRESULT,GetPageInfo, PROPPAGEINFO*,pPageInfo) \
106         ICOM_METHOD2(HRESULT,SetObjects, ULONG,cObjects, IUnknown**,ppUnk) \
107         ICOM_METHOD1(HRESULT,Show, UINT,nCmdShow) \
108         ICOM_METHOD1(HRESULT,Move, LPCRECT,pRect) \
109         ICOM_METHOD (HRESULT,IsPageDirty) \
110         ICOM_METHOD (HRESULT,Apply) \
111         ICOM_METHOD1(HRESULT,Help, LPCOLESTR,pszHelpDir) \
112         ICOM_METHOD1(HRESULT,TranslateAccelerator, MSG*,pMsg) 
113 #define IPropertyPage_IMETHODS \
114         IUnknown_IMETHODS \
115         IPropertyPage_METHODS
116 ICOM_DEFINE(IPropertyPage,IUnknown)
117 #undef ICOM_INTERFACE
118
119 #ifdef ICOM_CINTERFACE
120 /*** IUnknown methods ***/
121 #define IPropertyPage_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
122 #define IPropertyPage_AddRef(p)                 ICOM_CALL (AddRef,p)
123 #define IPropertyPage_Release(p)                ICOM_CALL (Release,p)
124 /*** IPropertyPage methods ***/
125 #define IPropertyPage_SetPageSite(p,a)          ICOM_CALL1(SetPageSite,p,a)
126 #define IPropertyPage_Activate(p,a,b,c)         ICOM_CALL3(Activate,p,a,b,c)
127 #define IPropertyPage_Deactivate(p)             ICOM_CALL (Deactivate,p)
128 #define IPropertyPage_GetPageInfo(p,a)          ICOM_CALL1(GetPageInfo,p,a)
129 #define IPropertyPage_SetObjects(p,a,b)         ICOM_CALL2(SetObjects,p,a,b)
130 #define IPropertyPage_Show(p,a)                 ICOM_CALL1(Show,p,a)
131 #define IPropertyPage_Move(p,a)                 ICOM_CALL1(Move,p,a)
132 #define IPropertyPage_IsPageDirty(p)            ICOM_CALL (IsPageDirty,p)
133 #define IPropertyPage_Apply(p)                  ICOM_CALL (Apply,p)
134 #define IPropertyPage_Help(p,a)                 ICOM_CALL1(Help,p,a)
135 #define IPropertyPage_TranslateAccelerator(p,a) ICOM_CALL1(TranslateAccelerator,p,a)
136 #endif
137                                  
138
139 /*****************************************************************************
140  * IPropertPage2 interface
141  */
142 #define ICOM_INTERFACE IPropertyPage2
143 #define IPropertyPage2_METHODS \
144         ICOM_METHOD1(HRESULT,EditProperty, DISPID,dispID)
145 #define IPropertyPage2_IMETHODS \
146         IPropertyPage_IMETHODS \
147         IPropertyPage2_METHODS
148 ICOM_DEFINE(IPropertyPage2,IPropertyPage)
149 #undef ICOM_INTERFACE
150
151 #ifdef ICOM_CINTERFACE
152 /*** IUnknown methods ***/
153 #define IPropertyPage2_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
154 #define IPropertyPage2_AddRef(p)                 ICOM_CALL (AddRef,p)
155 #define IPropertyPage2_Release(p)                ICOM_CALL (Release,p)
156 /*** IPropertyPage methods ***/
157 #define IPropertyPage2_SetPageSite(p,a)          ICOM_CALL1(SetPageSite,p,a)
158 #define IPropertyPage2_Activate(p,a,b,c)         ICOM_CALL3(Activate,p,a,b,c)
159 #define IPropertyPage2_Deactivate(p)             ICOM_CALL (Deactivate,p)
160 #define IPropertyPage2_GetPageInfo(p,a)          ICOM_CALL1(GetPageInfo,p,a)
161 #define IPropertyPage2_SetObjects(p,a,b)         ICOM_CALL2(SetObjects,p,a,b)
162 #define IPropertyPage2_Show(p,a)                 ICOM_CALL1(Show,p,a)
163 #define IPropertyPage2_Move(p,a)                 ICOM_CALL1(Move,p,a)
164 #define IPropertyPage2_IsPageDirty(p)            ICOM_CALL (IsPageDirty,p)
165 #define IPropertyPage2_Apply(p)                  ICOM_CALL (Apply,p)
166 #define IPropertyPage2_Help(p,a)                 ICOM_CALL1(Help,p,a)
167 #define IPropertyPage2_TranslateAccelerator(p,a) ICOM_CALL1(TranslateAccelerator,p,a)
168 /*** IPropertyPage2 methods ***/
169 #define IPropertyPage2_EditProperty(p,a)         ICOM_CALL1(EditProperty,p,a)
170 #endif
171                                  
172
173 /*****************************************************************************
174  * IPropertPageSite interface
175  */
176 #define ICOM_INTERFACE IPropertyPageSite
177 #define IPropertyPageSite_METHODS \
178         ICOM_METHOD1(HRESULT,OnStatusChange, DWORD,dwFlags) \
179         ICOM_METHOD1(HRESULT,GetLocaleID, LCID*,pLocaleID) \
180         ICOM_METHOD1(HRESULT,GetPageContainer, IUnknown**,ppUnk) \
181         ICOM_METHOD1(HRESULT,TranslateAccelerator, MSG*,pMsg)
182 #define IPropertyPageSite_IMETHODS \
183         IUnknown_IMETHODS \
184         IPropertyPageSite_METHODS
185 ICOM_DEFINE(IPropertyPageSite,IUnknown)
186 #undef ICOM_INTERFACE 
187
188 #ifdef ICOM_CINTERFACE
189 /*** IUnknown methods ***/
190 #define IPropertyPageSite_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
191 #define IPropertyPageSite_AddRef(p)                 ICOM_CALL (AddRef,p)
192 #define IPropertyPageSite_Release(p)                ICOM_CALL (Release,p)
193 /*** IPropertyPageSite methods ***/
194 #define IPropertyPageSite_OnStatusChange(p,a)       ICOM_CALL1(OnStatusChange,p,a)
195 #define IPropertyPageSite_GetLocaleID(p,a)          ICOM_CALL1(GetLocaleID,p,a)
196 #define IPropertyPageSite_GetPageContainer(p,a)     ICOM_CALL1(GetPageContainer,p,a)
197 #define IPropertyPageSite_TranslateAccelerator(p,a) ICOM_CALL1(TranslateAccelerator,p,a)
198 #endif
199                                                  
200
201 /*****************************************************************************
202  * IPropertyNotifySink interface
203  */
204 #define ICOM_INTERFACE IPropertyNotifySink
205 #define IPropertyNotifySink_METHODS \
206         ICOM_METHOD1(HRESULT,OnChanged, DISPID,dispID) \
207         ICOM_METHOD1(HRESULT,OnRequestEdit, DISPID,dispID)
208 #define IPropertyNotifySink_IMETHODS \
209         IUnknown_IMETHODS \
210         IPropertyNotifySink_METHODS
211 ICOM_DEFINE(IPropertyNotifySink,IUnknown)
212 #undef ICOM_INTERFACE
213
214 #ifdef ICOM_CINTERFACE
215 /*** IUnknown methods ***/
216 #define IPropertyNotifySink_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
217 #define IPropertyNotifySink_AddRef(p)                 ICOM_CALL (AddRef,p)
218 #define IPropertyNotifySink_Release(p)                ICOM_CALL (Release,p)
219 /*** IPropertyNotifySink methods ***/
220 #define IPropertyNotifySink_OnChanged(p,a)            ICOM_CALL1(OnChanged,p,a)
221 #define IPropertyNotifySink_OnRequestEdit(p,a)        ICOM_CALL1(OnRequestEdit,p,a)
222 #endif
223
224                                  
225 /*****************************************************************************
226  * IPropertyNotifySink interface
227  */
228 #define ICOM_INTERFACE ISimpleFrameSite
229 #define ISimpleFrameSite_METHODS \
230         ICOM_METHOD6(HRESULT,PreMessageFilter, HWND,hWnd, UINT,msg, WPARAM,wp, LPARAM,lp, LRESULT*,plResult, DWORD*,pwdCookie) \
231         ICOM_METHOD6(HRESULT,PostMessageFilter, HWND,hWnd, UINT,msg, WPARAM,wp, LPARAM,lp, LRESULT*,plResult, DWORD,pwdCookie) 
232 #define ISimpleFrameSite_IMETHODS \
233         IUnknown_IMETHODS \
234         ISimpleFrameSite_METHODS
235 ICOM_DEFINE(ISimpleFrameSite,IUnknown)
236 #undef ICOM_INTERFACE
237
238 #ifdef ICOM_CINTERFACE
239 /*** IUnknown methods ***/
240 #define ISimpleFrameSite_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
241 #define ISimpleFrameSite_AddRef(p)                 ICOM_CALL (AddRef,p)
242 #define ISimpleFrameSite_Release(p)                ICOM_CALL (Release,p)
243 /*** IPropertyNotifySink methods ***/
244 #define ISimpleFrameSite_PreMessageFilter(p,a,b,c,d,e,f) ICOM_CALL1(PreMessageFilter,p,a,b,c,d,e,f)
245 #define ISimpleFrameSite_PostMessageFilter(p,a,b,c,d,e,f) ICOM_CALL1(PostMessageFilter,p,a,b,c,d,e,f)
246 #endif
247
248
249 /*****************************************************************************
250  * IPersistStreamInit interface
251  */
252 #define ICOM_INTERFACE IPersistStreamInit
253 #define IPersistStreamInit_METHODS \
254         ICOM_METHOD (HRESULT,IsDirty) \
255         ICOM_METHOD1(HRESULT,Load,       LPSTREAM,pStm) \
256         ICOM_METHOD2(HRESULT,Save,       LPSTREAM,pStm, BOOL,fClearDirty) \
257         ICOM_METHOD1(HRESULT,GetSizeMax, ULARGE_INTEGER*,pcbSize) \
258         ICOM_METHOD (HRESULT,InitNew)
259 #define IPersistStreamInit_IMETHODS \
260         IPersist_IMETHODS \
261         IPersistStreamInit_METHODS
262 ICOM_DEFINE(IPersistStreamInit,IPersist)
263 #undef ICOM_INTERFACE
264
265 #ifdef ICOM_CINTERFACE
266 /*** IUnknown methods ***/
267 #define IPersistStreamInit_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
268 #define IPersistStreamInit_AddRef(p)             ICOM_CALL (AddRef,p)
269 #define IPersistStreamInit_Release(p)            ICOM_CALL (Release,p)
270 /*** IPersist methods ***/
271 #define IPersistStreamInit_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a)
272 /*** IPersistStreamInit methods ***/
273 #define IPersistStreamInit_IsDirty(p)      ICOM_CALL (IsDirty,p)
274 #define IPersistStreamInit_Load(p,a)       ICOM_CALL1(Load,p,a)
275 #define IPersistStreamInit_Save(p,a,b)     ICOM_CALL2(Save,p,a,b)
276 #define IPersistStreamInit_GetSizeMax(p,a) ICOM_CALL1(GetSizeMax,p,a)
277 #define IPersistStreamInit_InitNew(p)      ICOM_CALL (InitNew,p)
278 #endif
279
280                                  
281 /*****************************************************************************
282  * IPersistMemory interface
283  */
284 #define ICOM_INTERFACE IPersistMemory
285 #define IPersistMemory_METHODS \
286         ICOM_METHOD (HRESULT,IsDirty) \
287         ICOM_METHOD2(HRESULT,Load, LPVOID,pMem, ULONG,cbSize) \
288         ICOM_METHOD3(HRESULT,Save, LPVOID,pMem, BOOL,fClearDirty, ULONG,cbSize) \
289         ICOM_METHOD1(HRESULT,GetSizeMax, ULONG*,pCbSize) \
290         ICOM_METHOD (HRESULT,InitNew)
291 #define IPersistMemory_IMETHODS \
292         IPersist_IMETHODS \
293         IPersistMemory_METHODS
294 ICOM_DEFINE(IPersistMemory,IPersist)
295 #undef ICOM_INTERFACE
296
297 #ifdef ICOM_CINTERFACE
298 /*** IUnknown methods ***/
299 #define IPersistMemory_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
300 #define IPersistMemory_AddRef(p)             ICOM_CALL (AddRef,p)
301 #define IPersistMemory_Release(p)            ICOM_CALL (Release,p)
302 /*** IPersist methods ***/
303 #define IPersistMemory_GetClassID(p,a)       ICOM_CALL1(GetClassID,p,a)
304 /*** IPersistMemory methods ***/
305 #define IPersistMemory_IsDirty(p)            ICOM_CALL (IsDirty,p)
306 #define IPersistMemory_Load(p,a,b)           ICOM_CALL2(Load,p,a,b)
307 #define IPersistMemory_Save(p,a,b,c)         ICOM_CALL3(Save,p,a,b,c)
308 #define IPersistMemory_GetSizeMax(p,a)       ICOM_CALL1(GetSizeMax,p,a)
309 #define IPersistMemory_InitNew(p)            ICOM_CALL (InitNew,p)
310 #endif
311
312
313 /*****************************************************************************
314  * IPersistPropertyBag interface
315  */
316 #define ICOM_INTERFACE IPersistPropertyBag
317 #define IPersistPropertyBag_METHODS \
318         ICOM_METHOD (HRESULT,InitNew) \
319         ICOM_METHOD2(HRESULT,Load, IPropertyBag*,pPropBag, IErrorLog*,pErrorLog) \
320         ICOM_METHOD3(HRESULT,Save, IPropertyBag*,pPropBag, BOOL,fClearDirty, BOOL,fSaveAllProperties)
321 #define IPersistPropertyBag_IMETHODS \
322         IPersist_IMETHODS \
323         IPersistPropertyBag_METHODS
324 ICOM_DEFINE(IPersistPropertyBag,IPersist)
325 #undef ICOM_INTERFACE
326
327 #ifdef ICOM_CINTERFACE
328 /*** IUnknown methods ***/
329 #define IPersistPropertyBag_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
330 #define IPersistPropertyBag_AddRef(p)             ICOM_CALL (AddRef,p)
331 #define IPersistPropertyBag_Release(p)            ICOM_CALL (Release,p)
332 /*** IPersist methods ***/
333 #define IPersistPropertyBag_GetClassID(p,a)       ICOM_CALL1(GetClassID,p,a)
334 /*** IPersistPropertyBag methods ***/
335 #define IPersistPropertyBag_InitNew(p)            ICOM_CALL (InitNew,p)
336 #define IPersistPropertyBag_Load(p,a,b)           ICOM_CALL2(Load,p,a,b)
337 #define IPersistPropertyBag_Save(p,a,b,c)         ICOM_CALL3(Save,p,a,b,c)
338 #endif
339
340
341 /*****************************************************************************
342  * IErrorLog interface
343  */
344 #define ICOM_INTERFACE IErrorLog
345 #define IErrorLog_METHODS \
346         ICOM_METHOD2(HRESULT,AddError, LPCOLESTR,pszPropName, EXCEPINFO*,pExcepInfo)
347 #define IErrorLog_IMETHODS \
348         IUnknown_IMETHODS \
349         IErrorLog_METHODS
350 ICOM_DEFINE(IErrorLog,IUnknown)
351 #undef ICOM_INTERFACE
352
353 #ifdef ICOM_CINTERFACE
354 /*** IUnknown methods ***/
355 #define IErrorLog_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
356 #define IErrorLog_AddRef(p)             ICOM_CALL (AddRef,p)
357 #define IErrorLog_Release(p)            ICOM_CALL (Release,p)
358 /*** IErrorLog methods ***/
359 #define IErrorLog_AddError(p,a,b)       ICOM_CALL2(GetClassID,p,a,b)
360 #endif
361                                  
362
363 /*****************************************************************************
364  * IPropertyBag interface
365  */
366 #define ICOM_INTERFACE IPropertyBag
367 #define IPropertyBag_METHODS \
368         ICOM_METHOD3(HRESULT,Read, LPCOLESTR,pszPropName, VARIANT*,pVar, IErrorLog*,pErrorLog) \
369         ICOM_METHOD2(HRESULT,Write, LPCOLESTR,pszPropName, VARIANT*,pVar)
370 #define IPropertyBag_IMETHODS \
371         IUnknown_IMETHODS \
372         IPropertyBag_METHODS
373 ICOM_DEFINE(IPropertyBag,IUnknown)
374 #undef ICOM_INTERFACE
375
376 #ifdef ICOM_CINTERFACE
377 /*** IUnknown methods ***/
378 #define IPropertyBag_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
379 #define IPropertyBag_AddRef(p)             ICOM_CALL (AddRef,p)
380 #define IPropertyBag_Release(p)            ICOM_CALL (Release,p)
381 /*** IPropertyBag methods ***/
382 #define IPropertyBag_Read(p,a,b,c)         ICOM_CALL3(Read,p,a,b,c)
383 #define IPropertyBag_Write(p,a,b)          ICOM_CALL2(Write,p,a,b)
384 #endif
385
386
387 /*****************************************************************************
388  * ISpecifyPropertyPages interface
389  */
390 #define ICOM_INTERFACE ISpecifyPropertyPages
391 #define ISpecifyPropertyPages_METHODS \
392         ICOM_METHOD1(HRESULT,GetPages, CAUUID*,pPages) 
393 #define ISpecifyPropertyPages_IMETHODS \
394         IUnknown_IMETHODS \
395         ISpecifyPropertyPages_METHODS
396 ICOM_DEFINE(ISpecifyPropertyPages,IUnknown)
397 #undef ICOM_INTERFACE
398
399 #ifdef ICOM_CINTERFACE
400 /*** IUnknown methods ***/
401 #define ISpecifyPropertyPages_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
402 #define ISpecifyPropertyPages_AddRef(p)             ICOM_CALL (AddRef,p)
403 #define ISpecifyPropertyPages_Release(p)            ICOM_CALL (Release,p)
404 /*** ISpecifyPropertyPages methods ***/
405 #define ISpecifyPropertyPages_GetPages(p,a)         ICOM_CALL3(GetPages,p,a)
406 #endif
407                                   
408
409 /*****************************************************************************
410  * IPerPropertyBrowsing interface
411  */
412 #define ICOM_INTERFACE IPerPropertyBrowsing
413 #define IPerPropertyBrowsing_METHODS \
414         ICOM_METHOD2(HRESULT,GetDisplayString, DISPID,dispID, BSTR*,pBstr) \
415         ICOM_METHOD2(HRESULT,MapPropertyToPage, DISPID,dispID, CLSID*,pClsid) \
416         ICOM_METHOD3(HRESULT,GetPredefinedStrings, DISPID,dispID, CALPOLESTR*,pCaStringsOut, CADWORD*,pCaCookiesOut) \
417         ICOM_METHOD3(HRESULT,GetPredefinedValue, DISPID,dispID, DWORD,dwCookie, VARIANT*,pVarOut) 
418 #define IPerPropertyBrowsing_IMETHODS \
419         IUnknown_IMETHODS \
420         IPerPropertyBrowsing_METHODS
421 ICOM_DEFINE(IPerPropertyBrowsing,IUnknown)
422 #undef ICOM_INTERFACE
423
424 #ifdef ICOM_CINTERFACE
425 /*** IUnknown methods ***/
426 #define IPerPropertyBrowsing_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
427 #define IPerPropertyBrowsing_AddRef(p)             ICOM_CALL (AddRef,p)
428 #define IPerPropertyBrowsing_Release(p)            ICOM_CALL (Release,p)
429 /*** IPerPropertyBrowsing methods ***/
430 #define IPerPropertyBrowsing_GetDisplayString(p,a,b)       ICOM_CALL2(GetDisplayString,p,a,b)
431 #define IPerPropertyBrowsing_MapPropertyToPage(p,a,b)      ICOM_CALL2(MapPropertyToPage,p,a,b)
432 #define IPerPropertyBrowsing_GetPredefinedStrings(p,a,b,c) ICOM_CALL3(GetPredefinedStrings,p,a,b,c)
433 #define IPerPropertyBrowsing_GetPredefinedValue(p,a,b,c)   ICOM_CALL3(GetPredefinedValue,p,a,b,c)
434 #endif
435
436 #ifdef __cplusplus
437 } /* extern "C" */
438 #endif /* defined(__cplusplus) */
439
440 #endif /* __WINE_WINE_OBJ_PROPERTY_H */
441