Many new defines, and structs to help compile MFC. As well as a few
[wine] / include / wine / obj_inplace.h
1 /*
2  * Defines the COM interfaces and APIs related to structured data storage.
3  * 
4  * Depends on 'obj_base.h'.
5  */
6
7 #ifndef __WINE_WINE_OBJ_INPLACE_H
8 #define __WINE_WINE_OBJ_INPLACE_H
9
10
11 #include "winbase.h"
12 #include "winuser.h"
13 #include "wine/obj_moniker.h"
14
15 /*****************************************************************************
16  * Predeclare the structures
17  */
18 typedef struct  tagOleMenuGroupWidths
19 {
20         LONG width[ 6 ];
21 } OLEMENUGROUPWIDTHS, *LPOLEMENUGROUPWIDTHS;
22
23
24 typedef struct tagOleInPlaceFrameInfo
25 {
26         UINT cb;
27         BOOL fMDIApp;
28         HWND hwndFrame;
29         HACCEL haccel;
30         UINT cAccelEntries;
31 } OLEINPLACEFRAMEINFO, *LPOLEINPLACEFRAMEINFO;
32
33 typedef enum tagOLEGETMONIKER
34 {
35         OLEGETMONIKER_ONLYIFTHERE = 1,
36         OLEGETMONIKER_FORCEASSIGN = 2,
37         OLEGETMONIKER_UNASSIGN = 3,
38         OLEGETMONIKER_TEMPFORUSER = 4
39 } OLEGETMONIKER;
40
41 typedef enum tagOLERENDER
42 {
43         OLERENDER_NONE = 0,
44         OLERENDER_DRAW = 1,
45         OLERENDER_FORMAT = 2,
46         OLERENDER_ASIS = 3
47 } OLERENDER;
48
49 typedef enum tagUSERCLASSTYPE
50 {
51         USERCLASSTYPE_FULL = 1,
52         USERCLASSTYPE_SHORT = 2,
53         USERCLASSTYPE_APPNAME = 3
54 } USERCLASSTYPE;
55
56 typedef enum tagOLECLOSE
57 {
58         OLECLOSE_SAVEIFDIRTY = 1,
59         OLECLOSE_NOSAVE = 2,
60         OLECLOSE_PROMPTSAVE = 3
61 } OLECLOSE;
62
63 typedef enum tagOLEUPDATE
64 {
65         OLEUPDATE_ALWAYS = 1,
66         OLEUPDATE_ONCALL = 3
67 } OLEUPDATE, *LPOLEUPDATE;
68
69 typedef struct tagOLEVERB
70 {
71         LONG lVerb;
72         LPOLESTR lpszVerbName;
73         DWORD fuFlags;
74         DWORD grfAttribs;
75 } OLEVERB, *LPOLEVERB;
76         
77 typedef enum tagOLELINKBIND
78 {
79         OLELINKBIND_EVENIFCLASSDIFF = 1
80 } OLELINKBIND;
81
82 typedef enum tagOLEWHICHMK
83 {
84         OLEWHICHMK_CONTAINER = 1,
85         OLEWHICHMK_OBJREL = 2,
86         OLEWHICHMK_OBJFULL = 3
87 } OLEWHICHMK;
88
89 typedef enum tagBINDSPEED
90 {
91         BINDSPEED_INDEFINITE = 1,
92         BINDSPEED_MODERATE = 2,
93         BINDSPEED_IMMEDIATE = 3
94 } BINDSPEED;
95
96 typedef HGLOBAL HOLEMENU;
97 typedef LPRECT LPBORDERWIDTHS;
98 typedef LPCRECT LPCBORDERWIDTHS;
99         
100         
101 /*****************************************************************************
102  * Predeclare the interfaces
103  */
104 DEFINE_OLEGUID(IID_IOleWindow,  0x00000114L, 0, 0);
105 typedef struct IOleWindow IOleWindow, *LPOLEWINDOW;
106
107 DEFINE_OLEGUID(IID_IOleInPlaceObject,  0x00000113L, 0, 0);
108 typedef struct IOleInPlaceObject IOleInPlaceObject, *LPOLEINPLACEOBJECT;
109
110 DEFINE_OLEGUID(IID_IOleInPlaceActiveObject,  0x00000117L, 0, 0);
111 typedef struct IOleInPlaceActiveObject IOleInPlaceActiveObject, *LPOLEINPLACEACTIVEOBJECT;
112
113 DEFINE_OLEGUID(IID_IOleInPlaceUIWindow,  0x00000115L, 0, 0);
114 typedef struct IOleInPlaceUIWindow IOleInPlaceUIWindow, *LPOLEINPLACEUIWINDOW;
115
116 DEFINE_OLEGUID(IID_IOleInPlaceFrame,  0x00000116L, 0, 0);
117 typedef struct IOleInPlaceFrame IOleInPlaceFrame, *LPOLEINPLACEFRAME;
118
119 DEFINE_OLEGUID(IID_IOleInPlaceSite,  0x00000119L, 0, 0);
120 typedef struct IOleInPlaceSite IOleInPlaceSite, *LPOLEINPLACESITE;
121
122 DEFINE_OLEGUID(IID_IOleClientSite,  0x00000118L, 0, 0);
123 typedef struct IOleClientSite IOleClientSite, *LPOLECLIENTSITE;
124
125 DEFINE_OLEGUID(IID_IOleContainer,  0x0000011bL, 0, 0);
126 typedef struct IOleContainer IOleContainer, *LPOLECONTAINER;
127
128 DEFINE_OLEGUID(IID_IParseDisplayName,  0x0000011aL, 0, 0);
129 typedef struct IParseDisplayName IParseDisplayName, *LPPARSEDISPLAYNAME;
130
131 DEFINE_OLEGUID(IID_IOleItemContainer,  0x0000011aL, 0, 0);
132 typedef struct IOleItemContainer IOleItemContainer, *LPOLEITEMCONTAINER;
133
134 DEFINE_OLEGUID(IID_IOleLink,  0x0000011dL, 0, 0);
135 typedef struct IOleLink IOleLink, *LPOLELINK;
136
137 /*****************************************************************************
138  * IOleWindow interface
139  */
140 #define ICOM_INTERFACE IOleWindow
141 #define IOleWindow_METHODS \
142         ICOM_METHOD1(HRESULT,GetWindow, HWND*,phwnd); \
143         ICOM_METHOD1(HRESULT,ContextSensitiveHelp, BOOL,fEnterMode);
144 #define IOleWindow_IMETHODS \
145         IUnknown_IMETHODS \
146         IOleWindow_METHODS
147 ICOM_DEFINE(IOleWindow,IUnknown)
148 #undef ICOM_INTERFACE
149
150 #ifdef ICOM_CINTERFACE
151 /*** IUnknown methods ***/
152 #define IOleWindow_QueryInterface(p,a,b)      ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
153 #define IOleWindow_AddRef(p)                  ICOM_ICALL (IUnknown,AddRef,p)
154 #define IOleWindow_Release(p)                 ICOM_ICALL (IUnknown,Release,p)
155 /*** IOleWindow methods ***/
156 #define IOleWindow_GetWindow(p,a)             ICOM_CALL1(GetWindow,p,a)
157 #define IOleWindow_ContextSensitiveHelp(p,a)  ICOM_CALL1(ContextSensitiveHelp,p,a)
158 #endif
159
160
161 /*****************************************************************************
162  * IOleInPlaceObject interface
163  */
164 #define ICOM_INTERFACE IOleInPlaceObject
165 #define IOleInPlaceObject_METHODS \
166         ICOM_METHOD (HRESULT,InPlaceDeactivate); \
167         ICOM_METHOD (HRESULT,UIDeactivate); \
168         ICOM_METHOD2(HRESULT,SetObjectRects, LPCRECT,lprcPosRect, LPCRECT,lprcClipRect); \
169         ICOM_METHOD (HRESULT,ReactivateAndUndo);
170 #define IOleInPlaceObject_IMETHODS \
171         IOleWindow_IMETHODS \
172         IOleInPlaceObject_METHODS
173 ICOM_DEFINE(IOleInPlaceObject,IOleWindow)
174 #undef ICOM_INTERFACE
175
176 #ifdef ICOM_CINTERFACE
177 /*** IUnknown methods ***/
178 #define IOleInPlaceObject_QueryInterface(p,a,b)      ICOM_CALL2(QueryInterface,p,a,b)
179 #define IOleInPlaceObject_AddRef(p)                  ICOM_CALL (AddRef,p)
180 #define IOleInPlaceObject_Release(p)                 ICOM_CALL (Release,p)
181 /*** IOleWindow methods ***/
182 #define IOleInPlaceObject_GetWindow(p,a)             ICOM_CALL1(GetWindow,p,a)
183 #define IOleInPlaceObject_ContextSensitiveHelp(p,a)  ICOM_CALL1(ContextSensitiveHelp,p,a)
184 /*** IOleInPlaceObject methods ***/
185 #define IOleInPlaceObject_InPlaceDeactivate(p)       ICOM_CALL (InPlaceDeactivate,p)
186 #define IOleInPlaceObject_UIDeactivate(p)            ICOM_CALL (UIDeactivate,p)
187 #define IOleInPlaceObject_SetObjectRects(p,a,b)      ICOM_CALL2(SetObjectRects,p,a,b)
188 #define IOleInPlaceObject_ReactivateAndUndo(p)       ICOM_CALL (ReactivateAndUndo,p)
189 #endif
190
191 /*****************************************************************************
192  * IOleInPlaceActiveObject interface
193  */
194 #define ICOM_INTERFACE IOleInPlaceActiveObject
195 #define IOleInPlaceActiveObject_METHODS \
196         ICOM_METHOD1(HRESULT,TranslateAccelerator, LPMSG,lpmsg); \
197         ICOM_METHOD1(HRESULT,OnFrameWindowActivate, BOOL,fActivate); \
198         ICOM_METHOD1(HRESULT,OnDocWindowActivate, BOOL,fActivate); \
199         ICOM_METHOD3(HRESULT,ResizeBorder, LPCRECT,prcBorder, IOleInPlaceUIWindow*,pUIWindow, BOOL,fWindowFrame); \
200         ICOM_METHOD1(HRESULT,EnableModeless, BOOL,fEnable);
201 #define IOleInPlaceActiveObject_IMETHODS \
202         IOleWindow_IMETHODS \
203         IOleInPlaceActiveObject_METHODS
204 ICOM_DEFINE(IOleInPlaceActiveObject,IOleWindow)
205 #undef ICOM_INTERFACE
206
207 #ifdef ICOM_CINTERFACE
208 /*** IUnknown methods ***/
209 #define IOleInPlaceActiveObject_QueryInterface(p,a,b)      ICOM_CALL2(QueryInterface,p,a,b)
210 #define IOleInPlaceActiveObject_AddRef(p)                  ICOM_CALL (AddRef,p)
211 #define IOleInPlaceActiveObject_Release(p)                 ICOM_CALL (Release,p)
212 /*** IOleWindow methods ***/
213 #define IOleInPlaceActiveObject_GetWindow(p,a)             ICOM_CALL1(GetWindow,p,a)
214 #define IOleInPlaceActiveObject_ContextSensitiveHelp(p,a)  ICOM_CALL1(ContextSensitiveHelp,p,a)
215 /*** IOleInPlaceActiveObject methods ***/
216 #define IOleInPlaceActiveObject_TranslateAccelerator(p,a)  ICOM_CALL1(TranslateAccelerator,p,a)
217 #define IOleInPlaceActiveObject_OnFrameWindowActivate(p,a) ICOM_CALL1(OnFrameWindowActivate,p,a)
218 #define IOleInPlaceActiveObject_OnDocWindowActivate(p,a)   ICOM_CALL1(OnDocWindowActivate,p,a)
219 #define IOleInPlaceActiveObject_ResizeBorder(p,a,b,c)      ICOM_CALL3(ResizeBorder,p,a,b,c)
220 #define IOleInPlaceActiveObject_EnableModeless(p,a)        ICOM_CALL1(EnableModeless,p,a)
221 #endif
222
223 /*****************************************************************************
224  * IOleInPlaceUIWindow interface
225  */
226 #define ICOM_INTERFACE IOleInPlaceUIWindow
227 #define IOleInPlaceUIWindow_METHODS \
228         ICOM_METHOD1(HRESULT,GetBorder, LPRECT,lprectBorder); \
229         ICOM_METHOD1(HRESULT,RequestBorderSpace, LPCBORDERWIDTHS,pborderwidths); \
230         ICOM_METHOD1(HRESULT,SetBorderSpace, LPCBORDERWIDTHS,pborderwidths); \
231         ICOM_METHOD2(HRESULT,SetActiveObject, IOleInPlaceActiveObject*,pActiveObject, LPCOLESTR,pszObjName);
232 #define IOleInPlaceUIWindow_IMETHODS \
233         IOleWindow_IMETHODS \
234         IOleInPlaceUIWindow_METHODS
235 ICOM_DEFINE(IOleInPlaceUIWindow,IOleWindow)
236 #undef ICOM_INTERFACE
237
238 #ifdef ICOM_CINTERFACE
239 /*** IUnknown methods ***/
240 #define IOleInPlaceUIWindow_QueryInterface(p,a,b)     ICOM_CALL2(QueryInterface,p,a,b)
241 #define IOleInPlaceUIWindow_AddRef(p)                 ICOM_CALL (AddRef,p)
242 #define IOleInPlaceUIWindow_Release(p)                ICOM_CALL (Release,p)
243 /*** IOleWindow methods ***/
244 #define IOleInPlaceUIWindow_GetWindow(p,a)            ICOM_CALL1(GetWindow,p,a)
245 #define IOleInPlaceUIWindow_ContextSensitiveHelp(p,a) ICOM_CALL1(ContextSensitiveHelp,p,a)
246 /*** IOleInPlaceUIWindow methods ***/
247 #define IOleInPlaceUIWindow_GetBorder(p,a)            ICOM_CALL1(GetBorder,p,a)
248 #define IOleInPlaceUIWindow_RequestBorderSpace(p,a)   ICOM_CALL1(RequestBorderSpace,p,a)
249 #define IOleInPlaceUIWindow_SetBorderSpace(p,a)       ICOM_CALL1(SetBorderSpace,p,a)
250 #define IOleInPlaceUIWindow_SetActiveObject(p,a,b)    ICOM_CALL2(SetActiveObject,p,a,b)
251 #endif
252                                   
253
254 /*****************************************************************************
255  * IOleInPlaceFrame interface
256  */
257 #define ICOM_INTERFACE IOleInPlaceFrame
258 #define IOleInPlaceFrame_METHODS \
259         ICOM_METHOD2 (HRESULT,InsertMenus, HMENU,hemnuShared, LPOLEMENUGROUPWIDTHS,lpMenuWidths); \
260         ICOM_METHOD3 (HRESULT,SetMenu, HMENU,hemnuShared, HOLEMENU,holemenu, HWND,hwndActiveObject); \
261         ICOM_METHOD1 (HRESULT,RemoveMenus, HMENU,hemnuShared); \
262         ICOM_METHOD1 (HRESULT,SetStatusText, LPCOLESTR,pszStatusText); \
263         ICOM_METHOD1 (HRESULT,EnableModeless, BOOL,fEnable); \
264         ICOM_METHOD2 (HRESULT,TranslateAccelerator, LPMSG,lpmsg, WORD,wID);
265 #define IOleInPlaceFrame_IMETHODS \
266         IOleInPlaceUIWindow_IMETHODS \
267         IOleInPlaceFrame_METHODS
268 ICOM_DEFINE(IOleInPlaceFrame,IOleInPlaceUIWindow)
269 #undef ICOM_INTERFACE
270
271 #ifdef ICOM_CINTERFACE
272 /*** IUnknown methods ***/
273 #define IOleInPlaceFrame_QueryInterface(p,a,b)    ICOM_CALL2(QueryInterface,p,a,b)
274 #define IOleInPlaceFrame_AddRef(p)                ICOM_CALL (AddRef,p)
275 #define IOleInPlaceFrame_Release(p)               ICOM_CALL (Release,p)
276 /*** IOleWindow methods ***/
277 #define IOleInPlaceFrame_GetWindow                ICOM_CALL1(GetWindow,p,a)
278 #define IOleInPlaceFrame_ContextSensitiveHelp     ICOM_CALL1(ContextSensitiveHelp,p,a)
279 /*** IOleInPlaceUIWindow methods ***/
280 #define IOleInPlaceFrame_GetBorder                ICOM_CALL1(GetBorder,p,a)
281 #define IOleInPlaceFrame_RequestBorderSpace       ICOM_CALL1(RequestBorderSpace,p,a)
282 #define IOleInPlaceFrame_SetBorderSpace           ICOM_CALL1(SetBorderSpace,p,a)
283 #define IOleInPlaceFrame_SetActiveObject          ICOM_CALL2(SetActiveObject,p,a,b)
284 /*** IOleInPlaceFrame methods ***/
285 #define IOleInPlaceFrame_InsertMenus              ICOM_CALL2(InsertMenus,p,a,b)
286 #define IOleInPlaceFrame_SetMenu                  ICOM_CALL3(SetMenu,p,a,b,c)
287 #define IOleInPlaceFrame_RemoveMenus              ICOM_CALL1(RemoveMenus,p,a)
288 #define IOleInPlaceFrame_SetStatusText            ICOM_CALL1(SetStatusText,p,a)
289 #define IOleInPlaceFrame_EnableModeless           ICOM_CALL1(EnableModeless,p,a)
290 #define IOleInPlaceFrame_TranslateAccelerator     ICOM_CALL2(TranslateAccelerator,p,a,b)
291 #endif
292                                  
293
294 /*****************************************************************************
295  * IOleInPlaceSite interface
296  */
297 #define ICOM_INTERFACE IOleInPlaceSite
298 #define IOleInPlaceSite_METHODS \
299         ICOM_METHOD (HRESULT,CanInPlaceActivate); \
300         ICOM_METHOD (HRESULT,OnInPlaceActivate); \
301         ICOM_METHOD (HRESULT,OnUIActivate); \
302         ICOM_METHOD5(HRESULT,GetWindowContext, IOleInPlaceFrame**,ppFrame, IOleInPlaceUIWindow**,ppDoc, LPRECT,lprcPosRect, LPRECT,lprcClipRect, LPOLEINPLACEFRAMEINFO,lpFrameInfo); \
303         ICOM_METHOD1(HRESULT,Scroll, SIZE,scrollExtant); \
304         ICOM_METHOD1(HRESULT,OnUIDeactivate, BOOL,fUndoable); \
305         ICOM_METHOD (HRESULT,OnInPlaceDeactivate); \
306         ICOM_METHOD (HRESULT,DiscardUndoState); \
307         ICOM_METHOD (HRESULT,DeactivateAndUndo); \
308         ICOM_METHOD1(HRESULT,OnPosRectChange, LPCRECT,lprcPosRect);
309 #define IOleInPlaceSite_IMETHODS \
310         IOleWindow_IMETHODS \
311         IOleInPlaceSite_METHODS
312 ICOM_DEFINE(IOleInPlaceSite,IOleWindow)
313 #undef ICOM_INTERFACE
314
315 #ifdef ICOM_CINTERFACE
316 /*** IUnknown methods ***/
317 #define IOleInPlaceSite_QueryInterface(p,a,b)      ICOM_CALL2(QueryInterface,p,a,b)
318 #define IOleInPlaceSite_AddRef(p)                  ICOM_CALL (AddRef,p)
319 #define IOleInPlaceSite_Release(p)                 ICOM_CALL (Release,p)
320 /*** IOleWindow methods ***/
321 #define IOleInPlaceSite_GetWindow(p,a)             ICOM_CALL1(GetWindow,p,a)
322 #define IOleInPlaceSite_ContextSensitiveHelp(p,a)  ICOM_CALL1(ContextSensitiveHelp,p,a)
323 /*** IOleInPlaceSite methods ***/
324 #define IOleInPlaceSite_CanInPlaceActivate(p)      ICOM_CALL (CanInPlaceActivate,p)
325 #define IOleInPlaceSite_OnInPlaceActivate(p)       ICOM_CALL (OnInPlaceActivate,p)
326 #define IOleInPlaceSite_OnUIActivate(p)            ICOM_CALL (OnUIActivate,p)
327 #define IOleInPlaceSite_GetWindowContext(p,a,b,c,d,e) ICOM_CALL5(GetWindowContext,p,a,b,c,d,e)
328 #define IOleInPlaceSite_Scroll(p,a)                ICOM_CALL1(Scroll,p,a)
329 #define IOleInPlaceSite_OnUIDeactivate(p,a)        ICOM_CALL1(OnUIDeactivate,p,a)
330 #define IOleInPlaceSite_OnInPlaceDeactivate(p)     ICOM_CALL (OnInPlaceDeactivate,p)
331 #define IOleInPlaceSite_DiscardUndoState(p)        ICOM_CALL (DiscardUndoState,p)
332 #define IOleInPlaceSite_DeactivateAndUndo(p)       ICOM_CALL (DeactivateAndUndo,p)
333 #define IOleInPlaceSite_OnPosRectChange(p,a)       ICOM_CALL1(OnPosRectChange,p,a)
334 #endif
335
336
337 /*****************************************************************************
338  * IOleClientSite interface
339  */
340 #define ICOM_INTERFACE IOleClientSite
341 #define IOleClientSite_METHODS \
342         ICOM_METHOD (HRESULT,SaveObject); \
343         ICOM_METHOD3(HRESULT,GetMoniker, DWORD,dwAssign, DWORD,dwWhichMoniker, IMoniker**,ppmk); \
344         ICOM_METHOD1(HRESULT,GetContainer, IOleContainer**,ppContainer); \
345         ICOM_METHOD (HRESULT,ShowObject); \
346         ICOM_METHOD1(HRESULT,OnShowWindow, BOOL,fShow); \
347         ICOM_METHOD (HRESULT,RequestNewObjectLayout);
348 #define IOleClientSite_IMETHODS \
349         IUnknown_IMETHODS \
350         IOleClientSite_METHODS
351 ICOM_DEFINE(IOleClientSite,IUnknown)
352 #undef ICOM_INTERFACE
353
354 #ifdef ICOM_CINTERFACE
355 /*** IUnknown methods ***/
356 #define IOleClientSite_QueryInterface(p,a,b)      ICOM_CALL2(QueryInterface,p,a,b)
357 #define IOleClientSite_AddRef(p)                  ICOM_CALL (AddRef,p)
358 #define IOleClientSite_Release(p)                 ICOM_CALL (Release,p)
359 /*** IOleClientSite methods ***/
360 #define IOleClientSite_SaveObject(p)              ICOM_CALL (SaveObject,p)
361 #define IOleClientSite_GetMoniker(p,a,b,c)        ICOM_CALL3(GetMoniker,p,a,b,c)
362 #define IOleClientSite_GetContainer(p,a)          ICOM_CALL1(GetContainer,p,a)
363 #define IOleClientSite_ShowObject(p)              ICOM_CALL (ShowObject,p)
364 #define IOleClientSite_OnShowWindow(p,a)          ICOM_CALL1(OnShowWindow,p,a)
365 #define IOleClientSite_RequestNewObjectLayout(p)  ICOM_CALL (RequestNewObjectLayout(p)
366 #endif
367
368
369 /*****************************************************************************
370  * IParseDisplayName interface
371  */
372 #define ICOM_INTERFACE IParseDisplayName
373 #define IParseDisplayName_METHODS \
374         ICOM_METHOD4(HRESULT,ParseDisplayName, IBindCtx*,pbc, LPOLESTR,pszDisplayName, ULONG*,pchEaten, IMoniker**,ppmkOut);
375 #define IParseDisplayName_IMETHODS \
376         IUnknown_IMETHODS \
377         IParseDisplayName_METHODS
378 ICOM_DEFINE(IParseDisplayName,IUnknown)
379 #undef ICOM_INTERFACE
380                                 
381 #ifdef ICOM_CINTERFACE
382 /*** IUnknown methods ***/
383 #define IParseDisplayName_QueryInterface(p,a,b)      ICOM_CALL2(QueryInterface,p,a,b)
384 #define IParseDisplayName_AddRef(p)                  ICOM_CALL (AddRef,p)
385 #define IParseDisplayName_Release(p)                 ICOM_CALL (Release,p)
386 /*** IParseDisplayName methods ***/
387 #define IParseDisplayName_ParseDisplayName(p,a,b,c,d) ICOM_CALL4(ParseDisplayName,a,b,c,d)
388 #endif
389                                  
390                                 
391 /*****************************************************************************
392  * IOleContainer interface
393  */
394 #define ICOM_INTERFACE IOleContainer
395 #define IOleContainer_METHODS \
396         ICOM_METHOD2(HRESULT,EnumObjects, DWORD,grfFlags, IEnumUnknown**,ppenum); \
397         ICOM_METHOD1(HRESULT,LockContainer, BOOL,fLock);
398 #define IOleContainer_IMETHODS \
399         IParseDisplayName_IMETHODS \
400         IOleContainer_METHODS
401 ICOM_DEFINE(IOleContainer,IParseDisplayName)
402 #undef ICOM_INTERFACE
403
404 #ifdef ICOM_CINTERFACE
405 /*** IUnknown methods ***/
406 #define IOleContainer_QueryInterface(p,a,b)       ICOM_CALL2(QueryInterface,p,a,b)
407 #define IOleContainer_AddRef(p)                   ICOM_CALL (AddRef,p)
408 #define IOleContainer_Release(p)                  ICOM_CALL (Release,p)
409 /*** IParseDisplayName methods ***/
410 #define IOleContainer_ParseDisplayName(p,a,b,c,d) ICOM_CALL4(ParseDisplayName,p,a,b,c,d)
411 /*** IOleClientSite methods ***/
412 #define IOleContainer_EnumObjects(p,a,b)          ICOM_CALL (EnumObjects,p,a,b)
413 #define IOleContainer_LockContainer(p,a)          ICOM_CALL3(LockContainer,p,a)
414 #endif
415
416
417 /*****************************************************************************
418  * IOleItemContainer interface
419  */
420 #define ICOM_INTERFACE IOleItemContainer
421 #define IOleItemContainer_METHODS \
422         ICOM_METHOD5(HRESULT,GetObject, LPOLESTR,pszItem, DWORD,dwSpeedNeeded, IBindCtx*,pbc, REFIID,riid, void*,ppvObject); \
423         ICOM_METHOD4(HRESULT,GetObjectStorage, LPOLESTR,pszItem, IBindCtx*,pbc, REFIID,riid, void*,ppvStorage); \
424         ICOM_METHOD1(HRESULT,IsRunning, LPOLESTR,pszItem);
425 #define IOleItemContainer_IMETHODS \
426         IOleContainer_IMETHODS \
427         IOleItemContainer_METHODS
428 ICOM_DEFINE(IOleItemContainer,IOleContainer)
429 #undef ICOM_INTERFACE
430
431 #ifdef ICOM_CINTERFACE
432 /*** IUnknown methods ***/
433 #define IOleItemContainer_QueryInterface(p,a,b)       ICOM_CALL2(QueryInterface,p,a,b)
434 #define IOleItemContainer_AddRef(p)                   ICOM_CALL (AddRef,p)
435 #define IOleItemContainer_Release(p)                  ICOM_CALL (Release,p)
436 /*** IParseDisplayName methods ***/
437 #define IOleItemContainer_GetObject(p,a,b,c,d,e)      ICOM_CALL5(GetObject,p,a,b,c,d,e)
438 #define IOleItemContainer_GetObjectStorage(p,a,b,c,d) ICOM_CALL4(GetObjectStorage,p,a,b,c,d)
439 #define IOleItemContainer_IsRunning(p,a)              ICOM_CALL1(IsRunning,p,a)
440 #endif
441
442
443 /*****************************************************************************
444  * IOleItemContainer interface
445  */
446 #define ICOM_INTERFACE IOleLink
447 #define IOleLink_METHODS \
448         ICOM_METHOD1(HRESULT,SetUpdateOptions, DWORD,dwUpdateOpt) \
449         ICOM_METHOD1(HRESULT,GetUpdateOptions, DWORD*,pdwUpdateOpt) \
450         ICOM_METHOD2(HRESULT,SetSourceMoniker, IMoniker*,pmk, REFCLSID,rclsid) \
451         ICOM_METHOD1(HRESULT,GetSourceMoniker, IMoniker**,ppmk) \
452         ICOM_METHOD1(HRESULT,SetSourceDisplayName, LPCOLESTR,pszStatusText) \
453         ICOM_METHOD1(HRESULT,GetSourceDisplayName, LPOLESTR*,ppszDisplayName) \
454         ICOM_METHOD2(HRESULT,BindToSource, DWORD,bindflags, IBindCtx*,pbc) \
455         ICOM_METHOD (HRESULT,BindIfRunning) \
456         ICOM_METHOD1(HRESULT,GetBoundSource, IUnknown**,ppunk) \
457         ICOM_METHOD (HRESULT,UnBindSource) \
458         ICOM_METHOD1(HRESULT,Update, IBindCtx*,pbc)
459 #define IOleLink_IMETHODS \
460         IUnknown_IMETHODS \
461         IOleLink_METHODS
462 ICOM_DEFINE(IOleLink,IUnknown)
463 #undef ICOM_INTERFACE
464
465 #ifdef ICOM_CINTERFACE
466 /*** IUnknown methods ***/
467 #define IOleLink_QueryInterface(p,a,b)       ICOM_CALL2(QueryInterface,p,a,b)
468 #define IOleLink_AddRef(p)                   ICOM_CALL (AddRef,p)
469 #define IOleLink_Release(p)                  ICOM_CALL (Release,p)
470 /*** IOleLink methods ***/
471 #define IOleLink_SetUpdateOptions(p,a)       ICOM_CALL1(SetUpdateOptions,p,a)
472 #define IOleLink_GetUpdateOptions(p,a)       ICOM_CALL1(GetUpdateOptions,p,a)
473 #define IOleLink_SetSourceMoniker(p,a,b)     ICOM_CALL2(SetSourceMoniker,p,a,b)
474 #define IOleLink_GetSourceMoniker(p,a)       ICOM_CALL1(GetSourceMoniker,p,a)
475 #define IOleLink_SetSourceDisplayName(p,a)   ICOM_CALL1(SetSourceDisplayName,p,a)
476 #define IOleLink_GetSourceDisplayName(p,a)   ICOM_CALL1(GetSourceDisplayName,p,a)
477 #define IOleLink_BindToSource(p,a,b)         ICOM_CALL2(BindToSource,p,a,b)
478 #define IOleLink_BindIfRunning(p)            ICOM_CALL (BindIfRunning,p)
479 #define IOleLink_GetBoundSource(p,a)         ICOM_CALL1(GetBoundSource,p,a)
480 #define IOleLink_UnBindSource(p)             ICOM_CALL (UnBindSource,p)
481 #define IOleLink_Update(p,a)                 ICOM_CALL1(Update,p,a)
482 #endif
483
484
485 #endif /* __WINE_WINE_OBJ_INPLACE_H */
486
487