:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / include / ole32 / 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 #ifdef __cplusplus
11 extern "C" {
12 #endif /* defined(__cplusplus) */
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 /*** IUnknown methods ***/
116 #define IPropertyPage_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
117 #define IPropertyPage_AddRef(p)                 ICOM_CALL (AddRef,p)
118 #define IPropertyPage_Release(p)                ICOM_CALL (Release,p)
119 /*** IPropertyPage methods ***/
120 #define IPropertyPage_SetPageSite(p,a)          ICOM_CALL1(SetPageSite,p,a)
121 #define IPropertyPage_Activate(p,a,b,c)         ICOM_CALL3(Activate,p,a,b,c)
122 #define IPropertyPage_Deactivate(p)             ICOM_CALL (Deactivate,p)
123 #define IPropertyPage_GetPageInfo(p,a)          ICOM_CALL1(GetPageInfo,p,a)
124 #define IPropertyPage_SetObjects(p,a,b)         ICOM_CALL2(SetObjects,p,a,b)
125 #define IPropertyPage_Show(p,a)                 ICOM_CALL1(Show,p,a)
126 #define IPropertyPage_Move(p,a)                 ICOM_CALL1(Move,p,a)
127 #define IPropertyPage_IsPageDirty(p)            ICOM_CALL (IsPageDirty,p)
128 #define IPropertyPage_Apply(p)                  ICOM_CALL (Apply,p)
129 #define IPropertyPage_Help(p,a)                 ICOM_CALL1(Help,p,a)
130 #define IPropertyPage_TranslateAccelerator(p,a) ICOM_CALL1(TranslateAccelerator,p,a)
131                                  
132
133 /*****************************************************************************
134  * IPropertPage2 interface
135  */
136 #define ICOM_INTERFACE IPropertyPage2
137 #define IPropertyPage2_METHODS \
138         ICOM_METHOD1(HRESULT,EditProperty, DISPID,dispID)
139 #define IPropertyPage2_IMETHODS \
140         IPropertyPage_IMETHODS \
141         IPropertyPage2_METHODS
142 ICOM_DEFINE(IPropertyPage2,IPropertyPage)
143 #undef ICOM_INTERFACE
144
145 /*** IUnknown methods ***/
146 #define IPropertyPage2_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
147 #define IPropertyPage2_AddRef(p)                 ICOM_CALL (AddRef,p)
148 #define IPropertyPage2_Release(p)                ICOM_CALL (Release,p)
149 /*** IPropertyPage methods ***/
150 #define IPropertyPage2_SetPageSite(p,a)          ICOM_CALL1(SetPageSite,p,a)
151 #define IPropertyPage2_Activate(p,a,b,c)         ICOM_CALL3(Activate,p,a,b,c)
152 #define IPropertyPage2_Deactivate(p)             ICOM_CALL (Deactivate,p)
153 #define IPropertyPage2_GetPageInfo(p,a)          ICOM_CALL1(GetPageInfo,p,a)
154 #define IPropertyPage2_SetObjects(p,a,b)         ICOM_CALL2(SetObjects,p,a,b)
155 #define IPropertyPage2_Show(p,a)                 ICOM_CALL1(Show,p,a)
156 #define IPropertyPage2_Move(p,a)                 ICOM_CALL1(Move,p,a)
157 #define IPropertyPage2_IsPageDirty(p)            ICOM_CALL (IsPageDirty,p)
158 #define IPropertyPage2_Apply(p)                  ICOM_CALL (Apply,p)
159 #define IPropertyPage2_Help(p,a)                 ICOM_CALL1(Help,p,a)
160 #define IPropertyPage2_TranslateAccelerator(p,a) ICOM_CALL1(TranslateAccelerator,p,a)
161 /*** IPropertyPage2 methods ***/
162 #define IPropertyPage2_EditProperty(p,a)         ICOM_CALL1(EditProperty,p,a)
163                                  
164
165 /*****************************************************************************
166  * IPropertPageSite interface
167  */
168 #define ICOM_INTERFACE IPropertyPageSite
169 #define IPropertyPageSite_METHODS \
170         ICOM_METHOD1(HRESULT,OnStatusChange, DWORD,dwFlags) \
171         ICOM_METHOD1(HRESULT,GetLocaleID, LCID*,pLocaleID) \
172         ICOM_METHOD1(HRESULT,GetPageContainer, IUnknown**,ppUnk) \
173         ICOM_METHOD1(HRESULT,TranslateAccelerator, MSG*,pMsg)
174 #define IPropertyPageSite_IMETHODS \
175         IUnknown_IMETHODS \
176         IPropertyPageSite_METHODS
177 ICOM_DEFINE(IPropertyPageSite,IUnknown)
178 #undef ICOM_INTERFACE 
179
180 /*** IUnknown methods ***/
181 #define IPropertyPageSite_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
182 #define IPropertyPageSite_AddRef(p)                 ICOM_CALL (AddRef,p)
183 #define IPropertyPageSite_Release(p)                ICOM_CALL (Release,p)
184 /*** IPropertyPageSite methods ***/
185 #define IPropertyPageSite_OnStatusChange(p,a)       ICOM_CALL1(OnStatusChange,p,a)
186 #define IPropertyPageSite_GetLocaleID(p,a)          ICOM_CALL1(GetLocaleID,p,a)
187 #define IPropertyPageSite_GetPageContainer(p,a)     ICOM_CALL1(GetPageContainer,p,a)
188 #define IPropertyPageSite_TranslateAccelerator(p,a) ICOM_CALL1(TranslateAccelerator,p,a)
189                                                  
190
191 /*****************************************************************************
192  * IPropertyNotifySink interface
193  */
194 #define ICOM_INTERFACE IPropertyNotifySink
195 #define IPropertyNotifySink_METHODS \
196         ICOM_METHOD1(HRESULT,OnChanged, DISPID,dispID) \
197         ICOM_METHOD1(HRESULT,OnRequestEdit, DISPID,dispID)
198 #define IPropertyNotifySink_IMETHODS \
199         IUnknown_IMETHODS \
200         IPropertyNotifySink_METHODS
201 ICOM_DEFINE(IPropertyNotifySink,IUnknown)
202 #undef ICOM_INTERFACE
203
204 /*** IUnknown methods ***/
205 #define IPropertyNotifySink_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
206 #define IPropertyNotifySink_AddRef(p)                 ICOM_CALL (AddRef,p)
207 #define IPropertyNotifySink_Release(p)                ICOM_CALL (Release,p)
208 /*** IPropertyNotifySink methods ***/
209 #define IPropertyNotifySink_OnChanged(p,a)            ICOM_CALL1(OnChanged,p,a)
210 #define IPropertyNotifySink_OnRequestEdit(p,a)        ICOM_CALL1(OnRequestEdit,p,a)
211
212                                  
213 /*****************************************************************************
214  * IPropertyNotifySink interface
215  */
216 #define ICOM_INTERFACE ISimpleFrameSite
217 #define ISimpleFrameSite_METHODS \
218         ICOM_METHOD6(HRESULT,PreMessageFilter, HWND,hWnd, UINT,msg, WPARAM,wp, LPARAM,lp, LRESULT*,plResult, DWORD*,pwdCookie) \
219         ICOM_METHOD6(HRESULT,PostMessageFilter, HWND,hWnd, UINT,msg, WPARAM,wp, LPARAM,lp, LRESULT*,plResult, DWORD,pwdCookie) 
220 #define ISimpleFrameSite_IMETHODS \
221         IUnknown_IMETHODS \
222         ISimpleFrameSite_METHODS
223 ICOM_DEFINE(ISimpleFrameSite,IUnknown)
224 #undef ICOM_INTERFACE
225
226 /*** IUnknown methods ***/
227 #define ISimpleFrameSite_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
228 #define ISimpleFrameSite_AddRef(p)                 ICOM_CALL (AddRef,p)
229 #define ISimpleFrameSite_Release(p)                ICOM_CALL (Release,p)
230 /*** IPropertyNotifySink methods ***/
231 #define ISimpleFrameSite_PreMessageFilter(p,a,b,c,d,e,f) ICOM_CALL1(PreMessageFilter,p,a,b,c,d,e,f)
232 #define ISimpleFrameSite_PostMessageFilter(p,a,b,c,d,e,f) ICOM_CALL1(PostMessageFilter,p,a,b,c,d,e,f)
233
234
235 /*****************************************************************************
236  * IPersistStreamInit interface
237  */
238 #define ICOM_INTERFACE IPersistStreamInit
239 #define IPersistStreamInit_METHODS \
240         ICOM_METHOD (HRESULT,IsDirty) \
241         ICOM_METHOD1(HRESULT,Load,       LPSTREAM,pStm) \
242         ICOM_METHOD2(HRESULT,Save,       LPSTREAM,pStm, BOOL,fClearDirty) \
243         ICOM_METHOD1(HRESULT,GetSizeMax, ULARGE_INTEGER*,pcbSize) \
244         ICOM_METHOD (HRESULT,InitNew)
245 #define IPersistStreamInit_IMETHODS \
246         IPersist_IMETHODS \
247         IPersistStreamInit_METHODS
248 ICOM_DEFINE(IPersistStreamInit,IPersist)
249 #undef ICOM_INTERFACE
250
251 /*** IUnknown methods ***/
252 #define IPersistStreamInit_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
253 #define IPersistStreamInit_AddRef(p)             ICOM_CALL (AddRef,p)
254 #define IPersistStreamInit_Release(p)            ICOM_CALL (Release,p)
255 /*** IPersist methods ***/
256 #define IPersistStreamInit_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a)
257 /*** IPersistStreamInit methods ***/
258 #define IPersistStreamInit_IsDirty(p)      ICOM_CALL (IsDirty,p)
259 #define IPersistStreamInit_Load(p,a)       ICOM_CALL1(Load,p,a)
260 #define IPersistStreamInit_Save(p,a,b)     ICOM_CALL2(Save,p,a,b)
261 #define IPersistStreamInit_GetSizeMax(p,a) ICOM_CALL1(GetSizeMax,p,a)
262 #define IPersistStreamInit_InitNew(p)      ICOM_CALL (InitNew,p)
263
264                                  
265 /*****************************************************************************
266  * IPersistMemory interface
267  */
268 #define ICOM_INTERFACE IPersistMemory
269 #define IPersistMemory_METHODS \
270         ICOM_METHOD (HRESULT,IsDirty) \
271         ICOM_METHOD2(HRESULT,Load, LPVOID,pMem, ULONG,cbSize) \
272         ICOM_METHOD3(HRESULT,Save, LPVOID,pMem, BOOL,fClearDirty, ULONG,cbSize) \
273         ICOM_METHOD1(HRESULT,GetSizeMax, ULONG*,pCbSize) \
274         ICOM_METHOD (HRESULT,InitNew)
275 #define IPersistMemory_IMETHODS \
276         IPersist_IMETHODS \
277         IPersistMemory_METHODS
278 ICOM_DEFINE(IPersistMemory,IPersist)
279 #undef ICOM_INTERFACE
280
281 /*** IUnknown methods ***/
282 #define IPersistMemory_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
283 #define IPersistMemory_AddRef(p)             ICOM_CALL (AddRef,p)
284 #define IPersistMemory_Release(p)            ICOM_CALL (Release,p)
285 /*** IPersist methods ***/
286 #define IPersistMemory_GetClassID(p,a)       ICOM_CALL1(GetClassID,p,a)
287 /*** IPersistMemory methods ***/
288 #define IPersistMemory_IsDirty(p)            ICOM_CALL (IsDirty,p)
289 #define IPersistMemory_Load(p,a,b)           ICOM_CALL2(Load,p,a,b)
290 #define IPersistMemory_Save(p,a,b,c)         ICOM_CALL3(Save,p,a,b,c)
291 #define IPersistMemory_GetSizeMax(p,a)       ICOM_CALL1(GetSizeMax,p,a)
292 #define IPersistMemory_InitNew(p)            ICOM_CALL (InitNew,p)
293
294
295 /*****************************************************************************
296  * IPersistPropertyBag interface
297  */
298 #define ICOM_INTERFACE IPersistPropertyBag
299 #define IPersistPropertyBag_METHODS \
300         ICOM_METHOD (HRESULT,InitNew) \
301         ICOM_METHOD2(HRESULT,Load, IPropertyBag*,pPropBag, IErrorLog*,pErrorLog) \
302         ICOM_METHOD3(HRESULT,Save, IPropertyBag*,pPropBag, BOOL,fClearDirty, BOOL,fSaveAllProperties)
303 #define IPersistPropertyBag_IMETHODS \
304         IPersist_IMETHODS \
305         IPersistPropertyBag_METHODS
306 ICOM_DEFINE(IPersistPropertyBag,IPersist)
307 #undef ICOM_INTERFACE
308
309 /*** IUnknown methods ***/
310 #define IPersistPropertyBag_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
311 #define IPersistPropertyBag_AddRef(p)             ICOM_CALL (AddRef,p)
312 #define IPersistPropertyBag_Release(p)            ICOM_CALL (Release,p)
313 /*** IPersist methods ***/
314 #define IPersistPropertyBag_GetClassID(p,a)       ICOM_CALL1(GetClassID,p,a)
315 /*** IPersistPropertyBag methods ***/
316 #define IPersistPropertyBag_InitNew(p)            ICOM_CALL (InitNew,p)
317 #define IPersistPropertyBag_Load(p,a,b)           ICOM_CALL2(Load,p,a,b)
318 #define IPersistPropertyBag_Save(p,a,b,c)         ICOM_CALL3(Save,p,a,b,c)
319
320
321 /*****************************************************************************
322  * IErrorLog interface
323  */
324 #define ICOM_INTERFACE IErrorLog
325 #define IErrorLog_METHODS \
326         ICOM_METHOD2(HRESULT,AddError, LPCOLESTR,pszPropName, EXCEPINFO*,pExcepInfo)
327 #define IErrorLog_IMETHODS \
328         IUnknown_IMETHODS \
329         IErrorLog_METHODS
330 ICOM_DEFINE(IErrorLog,IUnknown)
331 #undef ICOM_INTERFACE
332
333 /*** IUnknown methods ***/
334 #define IErrorLog_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
335 #define IErrorLog_AddRef(p)             ICOM_CALL (AddRef,p)
336 #define IErrorLog_Release(p)            ICOM_CALL (Release,p)
337 /*** IErrorLog methods ***/
338 #define IErrorLog_AddError(p,a,b)       ICOM_CALL2(GetClassID,p,a,b)
339                                  
340
341 /*****************************************************************************
342  * IPropertyBag interface
343  */
344 #define ICOM_INTERFACE IPropertyBag
345 #define IPropertyBag_METHODS \
346         ICOM_METHOD3(HRESULT,Read, LPCOLESTR,pszPropName, VARIANT*,pVar, IErrorLog*,pErrorLog) \
347         ICOM_METHOD2(HRESULT,Write, LPCOLESTR,pszPropName, VARIANT*,pVar)
348 #define IPropertyBag_IMETHODS \
349         IUnknown_IMETHODS \
350         IPropertyBag_METHODS
351 ICOM_DEFINE(IPropertyBag,IUnknown)
352 #undef ICOM_INTERFACE
353
354 /*** IUnknown methods ***/
355 #define IPropertyBag_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
356 #define IPropertyBag_AddRef(p)             ICOM_CALL (AddRef,p)
357 #define IPropertyBag_Release(p)            ICOM_CALL (Release,p)
358 /*** IPropertyBag methods ***/
359 #define IPropertyBag_Read(p,a,b,c)         ICOM_CALL3(Read,p,a,b,c)
360 #define IPropertyBag_Write(p,a,b)          ICOM_CALL2(Write,p,a,b)
361
362
363 /*****************************************************************************
364  * ISpecifyPropertyPages interface
365  */
366 #define ICOM_INTERFACE ISpecifyPropertyPages
367 #define ISpecifyPropertyPages_METHODS \
368         ICOM_METHOD1(HRESULT,GetPages, CAUUID*,pPages) 
369 #define ISpecifyPropertyPages_IMETHODS \
370         IUnknown_IMETHODS \
371         ISpecifyPropertyPages_METHODS
372 ICOM_DEFINE(ISpecifyPropertyPages,IUnknown)
373 #undef ICOM_INTERFACE
374
375 /*** IUnknown methods ***/
376 #define ISpecifyPropertyPages_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
377 #define ISpecifyPropertyPages_AddRef(p)             ICOM_CALL (AddRef,p)
378 #define ISpecifyPropertyPages_Release(p)            ICOM_CALL (Release,p)
379 /*** ISpecifyPropertyPages methods ***/
380 #define ISpecifyPropertyPages_GetPages(p,a)         ICOM_CALL3(GetPages,p,a)
381                                   
382
383 /*****************************************************************************
384  * IPerPropertyBrowsing interface
385  */
386 #define ICOM_INTERFACE IPerPropertyBrowsing
387 #define IPerPropertyBrowsing_METHODS \
388         ICOM_METHOD2(HRESULT,GetDisplayString, DISPID,dispID, BSTR*,pBstr) \
389         ICOM_METHOD2(HRESULT,MapPropertyToPage, DISPID,dispID, CLSID*,pClsid) \
390         ICOM_METHOD3(HRESULT,GetPredefinedStrings, DISPID,dispID, CALPOLESTR*,pCaStringsOut, CADWORD*,pCaCookiesOut) \
391         ICOM_METHOD3(HRESULT,GetPredefinedValue, DISPID,dispID, DWORD,dwCookie, VARIANT*,pVarOut) 
392 #define IPerPropertyBrowsing_IMETHODS \
393         IUnknown_IMETHODS \
394         IPerPropertyBrowsing_METHODS
395 ICOM_DEFINE(IPerPropertyBrowsing,IUnknown)
396 #undef ICOM_INTERFACE
397
398 /*** IUnknown methods ***/
399 #define IPerPropertyBrowsing_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
400 #define IPerPropertyBrowsing_AddRef(p)             ICOM_CALL (AddRef,p)
401 #define IPerPropertyBrowsing_Release(p)            ICOM_CALL (Release,p)
402 /*** IPerPropertyBrowsing methods ***/
403 #define IPerPropertyBrowsing_GetDisplayString(p,a,b)       ICOM_CALL2(GetDisplayString,p,a,b)
404 #define IPerPropertyBrowsing_MapPropertyToPage(p,a,b)      ICOM_CALL2(MapPropertyToPage,p,a,b)
405 #define IPerPropertyBrowsing_GetPredefinedStrings(p,a,b,c) ICOM_CALL3(GetPredefinedStrings,p,a,b,c)
406 #define IPerPropertyBrowsing_GetPredefinedValue(p,a,b,c)   ICOM_CALL3(GetPredefinedValue,p,a,b,c)
407
408 #ifdef __cplusplus
409 } /* extern "C" */
410 #endif /* defined(__cplusplus) */
411
412 #endif /* __WINE_WINE_OBJ_PROPERTY_H */
413