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