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