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