OSDN Git Service

Make <winnls.h> header effectively self-contained.
[mingw/mingw-org-wsl.git] / w32api / include / oleidl.h
1 #ifndef _OLEIDL_H
2 #define _OLEIDL_H
3 #if __GNUC__ >=3
4 #pragma GCC system_header
5 #endif
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 #include <objfwd.h>
12
13 #define MK_ALT  32
14
15 typedef _COM_interface IParseDisplayName *LPPARSEDISPLAYNAME;
16 typedef _COM_interface IOleContainer *LPOLECONTAINER;
17 typedef _COM_interface IOleClientSite *LPOLECLIENTSITE;
18 typedef _COM_interface IOleObject *LPOLEOBJECT;
19 typedef _COM_interface IDropTarget *LPDROPTARGET;
20 typedef _COM_interface IDropSource *LPDROPSOURCE;
21 typedef _COM_interface IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
22 typedef _COM_interface IEnumOLEVERB *LPENUMOLEVERB;
23 typedef _COM_interface IOleWindow *LPOLEWINDOW;
24 typedef _COM_interface IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
25 typedef _COM_interface IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT;
26 typedef _COM_interface IOleInPlaceFrame *LPOLEINPLACEFRAME;
27 typedef _COM_interface IOleAdviseHolder *LPOLEADVISEHOLDER;
28 typedef _COM_interface IViewObject *LPVIEWOBJECT;
29 typedef _COM_interface IViewObject2 *LPVIEWOBJECT2;
30 typedef _COM_interface IOleCache *LPOLECACHE;
31 typedef _COM_interface IOleCache2 *LPOLECACHE2;
32 typedef _COM_interface IOleCacheControl *LPOLECACHECONTROL;
33
34 typedef enum tagBINDSPEED
35 {
36         BINDSPEED_INDEFINITE=1,
37         BINDSPEED_MODERATE,
38         BINDSPEED_IMMEDIATE
39 } BINDSPEED;
40 typedef enum tagOLEWHICHMK {
41         OLEWHICHMK_CONTAINER=1,
42         OLEWHICHMK_OBJREL,
43         OLEWHICHMK_OBJFULL
44 } OLEWHICHMK;
45 typedef enum tagOLEGETMONIKER {
46         OLEGETMONIKER_ONLYIFTHERE=1,
47         OLEGETMONIKER_FORCEASSIGN,
48         OLEGETMONIKER_UNASSIGN,
49         OLEGETMONIKER_TEMPFORUSER
50 } OLEGETMONIKER;
51 typedef enum tagUSERCLASSTYPE {
52         USERCLASSTYPE_FULL=1,
53         USERCLASSTYPE_SHORT,
54         USERCLASSTYPE_APPNAME
55 } USERCLASSTYPE;
56
57 #ifdef __GNUC__
58 __extension__  /* IS0 C says enums limited to range of int */
59 #endif
60 typedef enum tagDROPEFFECT {
61         DROPEFFECT_NONE=0,
62         DROPEFFECT_COPY=1,
63         DROPEFFECT_MOVE=2,
64         DROPEFFECT_LINK=4,
65         DROPEFFECT_SCROLL=0x80000000
66 } DROPEFFECT;
67 typedef struct tagOleMenuGroupWidths {
68         LONG width[6];
69 } OLEMENUGROUPWIDTHS,*LPOLEMENUGROUPWIDTHS;
70 typedef HGLOBAL HOLEMENU;
71 typedef enum tagOLECLOSE {
72         OLECLOSE_SAVEIFDIRTY,
73         OLECLOSE_NOSAVE,
74         OLECLOSE_PROMPTSAVE
75 } OLECLOSE;
76 typedef struct tagOLEVERB {
77         LONG lVerb;
78         LPWSTR lpszVerbName;
79         DWORD fuFlags;
80         DWORD grfAttribs;
81 } OLEVERB,*LPOLEVERB;
82 typedef RECT BORDERWIDTHS;
83 typedef LPRECT LPBORDERWIDTHS;
84 typedef LPCRECT LPCBORDERWIDTHS;
85 typedef struct tagOIFI {
86         UINT cb;
87         BOOL fMDIApp;
88         HWND hwndFrame;
89         HACCEL haccel;
90         UINT cAccelEntries;
91 }OLEINPLACEFRAMEINFO,*LPOLEINPLACEFRAMEINFO;
92
93 DECLARE_ENUMERATOR(OLEVERB);
94 typedef IEnumOLEVERB IEnumOleVerb;
95
96 EXTERN_C const IID IID_IParseDisplayName;
97 #define INTERFACE IParseDisplayName
98 DECLARE_INTERFACE_(IParseDisplayName,IUnknown)
99 {
100         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
101         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
102         STDMETHOD_(ULONG,Release)(THIS) PURE;
103         STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
104 };
105 #undef INTERFACE
106
107 #ifdef COBJMACROS
108 #define IParseDisplayName_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
109 #define IParseDisplayName_AddRef(T) (T)->lpVtbl->AddRef(T)
110 #define IParseDisplayName_Release(T) (T)->lpVtbl->Release(T)
111 #define IParseDisplayName_ParseDisplayName(T,a,b,c,d) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d)
112 #endif
113
114 EXTERN_C const IID IID_IOleContainer;
115 #define INTERFACE IOleContainer
116 DECLARE_INTERFACE_(IOleContainer,IParseDisplayName)
117 {
118         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
119         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
120         STDMETHOD_(ULONG,Release)(THIS) PURE;
121         STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
122         STDMETHOD(EnumObjects)(THIS_ DWORD,IEnumUnknown**) PURE;
123         STDMETHOD(LockContainer)(THIS_ BOOL) PURE;
124 };
125 #undef INTERFACE
126
127 EXTERN_C const IID IID_IOleItemContainer;
128 #define INTERFACE IOleItemContainer
129 DECLARE_INTERFACE_(IOleItemContainer,IOleContainer)
130 {
131         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
132         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
133         STDMETHOD_(ULONG,Release)(THIS) PURE;
134         STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
135         STDMETHOD(EnumObjects)(THIS_ DWORD,IEnumUnknown**) PURE;
136         STDMETHOD(LockContainer)(THIS_ BOOL) PURE;
137         STDMETHOD(GetObject)(THIS_ LPOLESTR,DWORD,IBindCtx*,REFIID,void**) PURE;
138         STDMETHOD(GetObjectStorage)(THIS_ LPOLESTR,IBindCtx*,REFIID,void**) PURE;
139         STDMETHOD(IsRunning)(THIS_ LPOLESTR) PURE;
140 };
141 #undef INTERFACE
142
143 #ifdef COBJMACROS
144 #define IOleItemContainer_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
145 #define IOleItemContainer_AddRef(T) (T)->lpVtbl->AddRef(T)
146 #define IOleItemContainer_Release(T) (T)->lpVtbl->Release(T)
147 #define IOleItemContainer_ParseDisplayName(T,a,b,c,d) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d)
148 #define IOleItemContainer_EnumObjects(T,a,b) (T)->lpVtbl->EnumObjects(T,a,b)
149 #define IOleItemContainer_LockContainer(T,a) (T)->lpVtbl->LockContainer(T,a)
150 #define IOleItemContainer_GetObject(T,a,b,c,d,e) (T)->lpVtbl->GetObject(T,a,b,c,d,e)
151 #define IOleItemContainer_GetObjectStorage(T,a,b,c,d) (T)->lpVtbl->GetObjectStorage(T,a,b,c,d)
152 #define IOleItemContainer_IsRunning(T,a) (T)->lpVtbl->IsRunning(T,a)
153 #endif
154
155 EXTERN_C const IID IID_IOleClientSite;
156 #define INTERFACE IOleClientSite
157 DECLARE_INTERFACE_(IOleClientSite,IUnknown)
158 {
159         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
160         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
161         STDMETHOD_(ULONG,Release)(THIS) PURE;
162         STDMETHOD(SaveObject)(THIS) PURE;
163         STDMETHOD(GetMoniker)(THIS_ DWORD,DWORD,LPMONIKER*) PURE;
164         STDMETHOD(GetContainer)(THIS_ LPOLECONTAINER*) PURE;
165         STDMETHOD(ShowObject)(THIS) PURE;
166         STDMETHOD(OnShowWindow)(THIS_ BOOL) PURE;
167         STDMETHOD(RequestNewObjectLayout)(THIS) PURE;
168 };
169 #undef INTERFACE
170
171 #ifdef COBJMACROS
172 #define IOleClientSite_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
173 #define IOleClientSite_AddRef(T) (T)->lpVtbl->AddRef(T)
174 #define IOleClientSite_Release(T) (T)->lpVtbl->Release(T)
175 #define IOleClientSite_SaveObject(T) (T)->lpVtbl->SaveObject(T)
176 #define IOleClientSite_GetMoniker(T,a,b,c) (T)->lpVtbl->GetMoniker(T,a,b,c)
177 #define IOleClientSite_GetContainer(T,a) (T)->lpVtbl->GetContainer(T,a)
178 #define IOleClientSite_ShowObject(T) (T)->lpVtbl->ShowObject(T)
179 #define IOleClientSite_OnShowWindow(T,a) (T)->lpVtbl->OnShowWindow(T,a)
180 #define IOleClientSite_RequestNewObjectLayout(T) (T)->lpVtbl->RequestNewObjectLayout(T)
181 #endif
182
183 EXTERN_C const IID IID_IOleObject;
184 #define INTERFACE IOleObject
185 DECLARE_INTERFACE_(IOleObject,IUnknown)
186 {
187         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
188         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
189         STDMETHOD_(ULONG,Release)(THIS) PURE;
190         STDMETHOD(SetClientSite)(THIS_ LPOLECLIENTSITE) PURE;
191         STDMETHOD(GetClientSite)(THIS_ LPOLECLIENTSITE*) PURE;
192         STDMETHOD(SetHostNames)(THIS_ LPCOLESTR,LPCOLESTR) PURE;
193         STDMETHOD(Close)(THIS_ DWORD) PURE;
194         STDMETHOD(SetMoniker)(THIS_ DWORD,LPMONIKER) PURE;
195         STDMETHOD(GetMoniker)(THIS_ DWORD,DWORD,LPMONIKER*) PURE;
196         STDMETHOD(InitFromData)(THIS_ LPDATAOBJECT,BOOL,DWORD) PURE;
197         STDMETHOD(GetClipboardData)(THIS_ DWORD,LPDATAOBJECT*) PURE;
198         STDMETHOD(DoVerb)(THIS_ LONG,LPMSG,LPOLECLIENTSITE,LONG,HWND,LPCRECT) PURE;
199         STDMETHOD(EnumVerbs)(THIS_ LPENUMOLEVERB*) PURE;
200         STDMETHOD(Update)(THIS) PURE;
201         STDMETHOD(IsUpToDate)(THIS) PURE;
202         STDMETHOD(GetUserClassID)(THIS_ LPCLSID) PURE;
203         STDMETHOD(GetUserType)(THIS_ DWORD,LPOLESTR*) PURE;
204         STDMETHOD(SetExtent)(THIS_ DWORD,SIZEL*) PURE;
205         STDMETHOD(GetExtent)(THIS_ DWORD,SIZEL*) PURE;
206         STDMETHOD(Advise)(THIS_ LPADVISESINK,PDWORD) PURE;
207         STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
208         STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA*) PURE;
209         STDMETHOD(GetMiscStatus)(THIS_ DWORD,PDWORD) PURE;
210         STDMETHOD(SetColorScheme)(THIS_ LPLOGPALETTE) PURE;
211 };
212 #undef INTERFACE
213
214 #ifdef COBJMACROS
215 #define IOleObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
216 #define IOleObject_AddRef(T) (T)->lpVtbl->AddRef(T)
217 #define IOleObject_Release(T) (T)->lpVtbl->Release(T)
218 #define IOleObject_SetClientSite(T,a) (T)->lpVtbl->SetClientSite(T,a)
219 #define IOleObject_GetClientSite(T,a) (T)->lpVtbl->GetClientSite(T,a)
220 #define IOleObject_SetHostNames(T,a,b) (T)->lpVtbl->SetHostNames(T,a,b)
221 #define IOleObject_Close(T,a) (T)->lpVtbl->Close(T,a)
222 #define IOleObject_SetMoniker(T,a,b) (T)->lpVtbl->SetMoniker(T,a,b)
223 #define IOleObject_GetMoniker(T,a,b,c) (T)->lpVtbl->GetMoniker(T,a,b,c)
224 #define IOleObject_InitFromData(T,a,b,c) (T)->lpVtbl->InitFromData(T,a,b,c)
225 #define IOleObject_GetClipboardData(T,a,b) (T)->lpVtbl->GetClipboardData(T,a,b)
226 #define IOleObject_DoVerb(T,a,b,c,d,e,f) (T)->lpVtbl->DoVerb(T,a,b,c,d,e,f)
227 #define IOleObject_EnumVerbs(T,a) (T)->lpVtbl->EnumVerbs(T,a)
228 #define IOleObject_Update(T) (T)->lpVtbl->Update(T)
229 #define IOleObject_IsUpToDate(T) (T)->lpVtbl->IsUpToDate(T)
230 #define IOleObject_GetUserClassID(T,a) (T)->lpVtbl->GetUserClassID(T,a)
231 #define IOleObject_GetUserType(T,a,b) (T)->lpVtbl->GetUserType(T,a,b)
232 #define IOleObject_SetExtent(T,a,b) (T)->lpVtbl->SetExtent(T,a,b)
233 #define IOleObject_GetExtent(T,a,b) (T)->lpVtbl->GetExtent(T,a,b)
234 #define IOleObject_Advise(T,a,b) (T)->lpVtbl->Advise(T,a,b)
235 #define IOleObject_Unadvise(T,a) (T)->lpVtbl->Unadvise(T,a)
236 #define IOleObject_EnumAdvise(T,a) (T)->lpVtbl->EnumAdvise(T,a)
237 #define IOleObject_GetMiscStatus(T,a,b) (T)->lpVtbl->GetMiscStatus(T,a,b)
238 #define IOleObject_SetColorScheme(T,a) (T)->lpVtbl->SetColorScheme(T,a)
239 #endif
240
241 EXTERN_C const IID IID_IOleWindow;
242 #define INTERFACE IOleWindow
243 DECLARE_INTERFACE_(IOleWindow,IUnknown)
244 {
245         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
246         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
247         STDMETHOD_(ULONG,Release)(THIS) PURE;
248         STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
249         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
250 };
251 #undef INTERFACE
252
253 #ifdef COBJMACROS
254 #define IOleWindow_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
255 #define IOleWindow_AddRef(T) (T)->lpVtbl->AddRef(T)
256 #define IOleWindow_Release(T) (T)->lpVtbl->Release(T)
257 #define IOleWindow_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
258 #define IOleWindow_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
259 #endif
260
261 EXTERN_C const IID IID_IOleInPlaceUIWindow;
262 #define INTERFACE IOleInPlaceUIWindow
263 DECLARE_INTERFACE_(IOleInPlaceUIWindow,IOleWindow)
264 {
265         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
266         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
267         STDMETHOD_(ULONG,Release)(THIS) PURE;
268         STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
269         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
270         STDMETHOD(GetBorder)(THIS_ LPRECT) PURE;
271         STDMETHOD(RequestBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
272         STDMETHOD(SetBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
273         STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE;
274 };
275 #undef INTERFACE
276
277 EXTERN_C const IID IID_IOleInPlaceObject;
278 #define INTERFACE IOleInPlaceObject
279 DECLARE_INTERFACE_(IOleInPlaceObject,IOleWindow)
280 {
281         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
282         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
283         STDMETHOD_(ULONG,Release)(THIS) PURE;
284         STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
285         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
286         STDMETHOD(InPlaceDeactivate)(THIS) PURE;
287         STDMETHOD(UIDeactivate)(THIS) PURE;
288         STDMETHOD(SetObjectRects)(THIS_ LPCRECT,LPCRECT) PURE;
289         STDMETHOD(ReactivateAndUndo)(THIS) PURE;
290 };
291 #undef INTERFACE
292
293 EXTERN_C const IID IID_IOleInPlaceActiveObject;
294 #define INTERFACE IOleInPlaceActiveObject
295 DECLARE_INTERFACE_(IOleInPlaceActiveObject,IOleWindow)
296 {
297         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
298         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
299         STDMETHOD_(ULONG,Release)(THIS) PURE;
300         STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
301         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
302         STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
303         STDMETHOD(OnFrameWindowActivate)(THIS_ BOOL) PURE;
304         STDMETHOD(OnDocWindowActivate)(THIS_ BOOL) PURE;
305         STDMETHOD(ResizeBorder)(THIS_ LPCRECT,LPOLEINPLACEUIWINDOW,BOOL) PURE;
306         STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;
307 };
308 #undef INTERFACE
309
310 EXTERN_C const IID IID_IOleInPlaceFrame;
311 #define INTERFACE IOleInPlaceFrame
312 DECLARE_INTERFACE_(IOleInPlaceFrame,IOleInPlaceUIWindow)
313 {
314         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
315         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
316         STDMETHOD_(ULONG,Release)(THIS) PURE;
317         STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
318         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
319         STDMETHOD(GetBorder)(THIS_ LPRECT) PURE;
320         STDMETHOD(RequestBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
321         STDMETHOD(SetBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
322         STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE;
323         STDMETHOD(InsertMenus)(THIS_ HMENU,LPOLEMENUGROUPWIDTHS) PURE;
324         STDMETHOD(SetMenu)(THIS_ HMENU,HOLEMENU,HWND) PURE;
325         STDMETHOD(RemoveMenus)(THIS_ HMENU) PURE;
326         STDMETHOD(SetStatusText)(THIS_ LPCOLESTR) PURE;
327         STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;
328         STDMETHOD(TranslateAccelerator)(THIS_ LPMSG,WORD) PURE;
329 };
330 #undef INTERFACE
331
332 #ifdef COBJMACROS
333 #define IOleInPlaceFrame_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
334 #define IOleInPlaceFrame_AddRef(T) (T)->lpVtbl->AddRef(T)
335 #define IOleInPlaceFrame_Release(T) (T)->lpVtbl->Release(T)
336 #define IOleInPlaceFrame_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
337 #define IOleInPlaceFrame_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
338 #define IOleInPlaceFrame_GetBorder(T,a) (T)->lpVtbl->GetBorder(T,a)
339 #define IOleInPlaceFrame_RequestBorderSpace(T,a) (T)->lpVtbl->RequestBorderSpace(T,a)
340 #define IOleInPlaceFrame_SetBorderSpace(T,a) (T)->lpVtbl->SetBorderSpace(T,a)
341 #define IOleInPlaceFrame_SetActiveObject(T,a,b) (T)->lpVtbl->SetActiveObject(T,a,b)
342 #define IOleInPlaceFrame_InsertMenus(T,a,b) (T)->lpVtbl->InsertMenus(T,a,b)
343 #define IOleInPlaceFrame_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c)
344 #define IOleInPlaceFrame_RemoveMenus(T,a) (T)->lpVtbl->RemoveMenus(T,a)
345 #define IOleInPlaceFrame_SetStatusText(T,a) (T)->lpVtbl->SetStatusText(T,a)
346 #define IOleInPlaceFrame_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a)
347 #define IOleInPlaceFrame_TranslateAccelerator(T,a,b) (T)->lpVtbl->TranslateAccelerator(T,a,b)
348 #endif
349
350 EXTERN_C const IID IID_IOleInPlaceSite;
351 #define INTERFACE IOleInPlaceSite
352 DECLARE_INTERFACE_(IOleInPlaceSite,IOleWindow)
353 {
354         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
355         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
356         STDMETHOD_(ULONG,Release)(THIS) PURE;
357         STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
358         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
359         STDMETHOD(CanInPlaceActivate)(THIS) PURE;
360         STDMETHOD(OnInPlaceActivate)(THIS) PURE;
361         STDMETHOD(OnUIActivate)(THIS) PURE;
362         STDMETHOD(GetWindowContext)(THIS_ IOleInPlaceFrame**,IOleInPlaceUIWindow**,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO) PURE;
363         STDMETHOD(Scroll)(THIS_ SIZE) PURE;
364         STDMETHOD(OnUIDeactivate)(THIS_ BOOL) PURE;
365         STDMETHOD(OnInPlaceDeactivate)(THIS) PURE;
366         STDMETHOD(DiscardUndoState)(THIS) PURE;
367         STDMETHOD(DeactivateAndUndo)(THIS) PURE;
368         STDMETHOD(OnPosRectChange)(THIS_ LPCRECT) PURE;
369 };
370 #undef INTERFACE
371
372 EXTERN_C const IID IID_IOleAdviseHolder;
373 #define INTERFACE IOleAdviseHolder
374 DECLARE_INTERFACE_(IOleAdviseHolder,IUnknown)
375 {
376         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
377         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
378         STDMETHOD_(ULONG,Release)(THIS) PURE;
379         STDMETHOD(Advise)(THIS_ LPADVISESINK,PDWORD) PURE;
380         STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
381         STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA*) PURE;
382         STDMETHOD(SendOnRename)(THIS_ LPMONIKER) PURE;
383         STDMETHOD(SendOnSave)(THIS) PURE;
384         STDMETHOD(SendOnClose)(THIS) PURE;
385 };
386 #undef INTERFACE
387
388 #ifdef COBJMACROS
389 #define IOleAdviseHolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
390 #define IOleAdviseHolder_AddRef(T) (T)->lpVtbl->AddRef(T)
391 #define IOleAdviseHolder_Release(T) (T)->lpVtbl->Release(T)
392 #define IOleAdviseHolder_Advise(T,a,b) (T)->lpVtbl->Advise(T,a,b)
393 #define IOleAdviseHolder_Unadvise(T,a) (T)->lpVtbl->Unadvise(T,a)
394 #define IOleAdviseHolder_EnumAdvise(T,a) (T)->lpVtbl->EnumAdvise(T,a)
395 #define IOleAdviseHolder_SendOnRename(T,a) (T)->lpVtbl->SendOnRename(T,a)
396 #define IOleAdviseHolder_SendOnSave(T) (T)->lpVtbl->SendOnSave(T)
397 #define IOleAdviseHolder_SendOnClose(T) (T)->lpVtbl->SendOnClose(T)
398 #endif
399
400 EXTERN_C const IID IID_IDropSource;
401 #define INTERFACE IDropSource
402 DECLARE_INTERFACE_(IDropSource,IUnknown)
403 {
404         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
405         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
406         STDMETHOD_(ULONG,Release)(THIS) PURE;
407         STDMETHOD(QueryContinueDrag)(THIS_ BOOL,DWORD) PURE;
408         STDMETHOD(GiveFeedback)(THIS_ DWORD) PURE;
409 };
410 #undef INTERFACE
411
412 #ifdef COBJMACROS
413 #define IDropSource_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
414 #define IDropSource_AddRef(T) (T)->lpVtbl->AddRef(T)
415 #define IDropSource_Release(T) (T)->lpVtbl->Release(T)
416 #define IDropSource_QueryContinueDrag(T,a,b) (T)->lpVtbl->QueryContinueDrag(T,a,b)
417 #define IDropSource_GiveFeedback(T,a) (T)->lpVtbl->GiveFeedback(T,a)
418 #endif
419
420 EXTERN_C const IID IID_IDropTarget;
421 #define INTERFACE IDropTarget
422 DECLARE_INTERFACE_(IDropTarget,IUnknown)
423 {
424         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
425         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
426         STDMETHOD_(ULONG,Release)(THIS) PURE;
427         STDMETHOD(DragEnter)(THIS_ LPDATAOBJECT,DWORD,POINTL,PDWORD) PURE;
428         STDMETHOD(DragOver)(THIS_ DWORD,POINTL,PDWORD) PURE;
429         STDMETHOD(DragLeave)(THIS) PURE;
430         STDMETHOD(Drop)(THIS_ LPDATAOBJECT,DWORD,POINTL,PDWORD) PURE;
431 };
432 #undef INTERFACE
433
434 #ifdef COBJMACROS
435 #define IDropTarget_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
436 #define IDropTarget_AddRef(T) (T)->lpVtbl->AddRef(T)
437 #define IDropTarget_Release(T) (T)->lpVtbl->Release(T)
438 #define IDropTarget_DragEnter(T,a,b,c,d) (T)->lpVtbl->DragEnter(T,a,b,c,d)
439 #define IDropTarget_DragOver(T,a,b,c) (T)->lpVtbl->DragOver(T,a,b,c)
440 #define IDropTarget_DragLeave(T) (T)->lpVtbl->DragLeave(T)
441 #define IDropTarget_Drop(T,a,b,c,d) (T)->lpVtbl->Drop(T,a,b,c,d)
442 #endif
443
444 typedef BOOL(CALLBACK *__IView_pfncont)(DWORD);
445 EXTERN_C const IID IID_IViewObject;
446 #define INTERFACE IViewObject
447 DECLARE_INTERFACE_(IViewObject,IUnknown)
448 {
449         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
450         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
451         STDMETHOD_(ULONG,Release)(THIS) PURE;
452         STDMETHOD(Draw)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD) PURE;
453         STDMETHOD(GetColorSet)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*) PURE;
454         STDMETHOD(Freeze)(THIS_ DWORD,LONG,PVOID,PDWORD) PURE;
455         STDMETHOD(Unfreeze)(THIS_ DWORD) PURE;
456         STDMETHOD(SetAdvise)(THIS_ DWORD,DWORD,IAdviseSink*) PURE;
457         STDMETHOD(GetAdvise)(THIS_ PDWORD,PDWORD,IAdviseSink**) PURE;
458 };
459 #undef INTERFACE
460
461 #ifdef COBJMACROS
462 #define IViewObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
463 #define IViewObject_AddRef(T) (T)->lpVtbl->AddRef(T)
464 #define IViewObject_Release(T) (T)->lpVtbl->Release(T)
465 #define IViewObject_Draw(T,a,b,c,d,e,f,g,h,i,j) (T)->lpVtbl->Draw(T,a,b,c,d,e,f,g,h,i,j)
466 #define IViewObject_GetColorSet(T,a,b,c,d,e,f) (T)->lpVtbl->GetColorSet(T,a,b,c,d,e,f)
467 #define IViewObject_Freeze(T,a,b,c,d) (T)->lpVtbl->Freeze(T,a,b,c,d)
468 #define IViewObject_Unfreeze(T,a) (T)->lpVtbl->Unfreeze(T,a)
469 #define IViewObject_SetAdvise(T,a,b,c) (T)->lpVtbl->SetAdvise(T,a,b,c)
470 #define IViewObject_GetAdvise(T,a,b,c) (T)->lpVtbl->GetAdvise(T,a,b,c)
471 #endif
472
473 EXTERN_C const IID IID_IViewObject2;
474 #define INTERFACE IViewObject2
475 DECLARE_INTERFACE_(IViewObject2,IViewObject)
476 {
477         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
478         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
479         STDMETHOD_(ULONG,Release)(THIS) PURE;
480         STDMETHOD(Draw)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD) PURE;
481         STDMETHOD(GetColorSet)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*) PURE;
482         STDMETHOD(Freeze)(THIS_ DWORD,LONG,PVOID,PDWORD) PURE;
483         STDMETHOD(Unfreeze)(THIS_ DWORD) PURE;
484         STDMETHOD(SetAdvise)(THIS_ DWORD,DWORD,IAdviseSink*) PURE;
485         STDMETHOD(GetAdvise)(THIS_ PDWORD,PDWORD,IAdviseSink**) PURE;
486         STDMETHOD(GetExtent)(THIS_ DWORD,LONG,DVTARGETDEVICE*,LPSIZEL) PURE;
487 };
488 #undef INTERFACE
489
490 #ifdef COBJMACROS
491 #define IViewObject2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
492 #define IViewObject2_AddRef(T) (T)->lpVtbl->AddRef(T)
493 #define IViewObject2_Release(T) (T)->lpVtbl->Release(T)
494 #define IViewObject2_Draw(T,a,b,c,d,e,f,g,h,i,j) (T)->lpVtbl->Draw(T,a,b,c,d,e,f,g,h,i,j)
495 #define IViewObject2_GetColorSet(T,a,b,c,d,e,f) (T)->lpVtbl->GetColorSet(T,a,b,c,d,e,f)
496 #define IViewObject2_Freeze(T,a,b,c,d) (T)->lpVtbl->Freeze(T,a,b,c,d)
497 #define IViewObject2_Unfreeze(T,a) (T)->lpVtbl->Unfreeze(T,a)
498 #define IViewObject2_SetAdvise(T,a,b,c) (T)->lpVtbl->SetAdvise(T,a,b,c)
499 #define IViewObject2_GetAdvise(T,a,b,c) (T)->lpVtbl->GetAdvise(T,a,b,c)
500 #define IViewObject2_GetExtent(T,a,b,c,d) (T)->lpVtbl->GetExtent(T,a,b,c,d)
501 #endif
502
503 EXTERN_C const IID IID_IOleCache;
504 #define INTERFACE IOleCache
505 DECLARE_INTERFACE_(IOleCache,IUnknown)
506 {
507         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
508         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
509         STDMETHOD_(ULONG,Release)(THIS) PURE;
510         STDMETHOD(Cache)(THIS_ FORMATETC*,DWORD,DWORD*) PURE;
511         STDMETHOD(Uncache)(THIS_ DWORD) PURE;
512         STDMETHOD(EnumCache)(THIS_ IEnumSTATDATA**);
513         STDMETHOD(InitCache)(THIS_ LPDATAOBJECT);
514         STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL);
515 };
516 #undef INTERFACE
517
518 #ifdef COBJMACROS
519 #define IOleCache_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
520 #define IOleCache_AddRef(T) (T)->lpVtbl->AddRef(T)
521 #define IOleCache_Release(T) (T)->lpVtbl->Release(T)
522 #define IOleCache_Cache(T,a,b,c) (T)->lpVtbl->Cache(T,a,b,c)
523 #define IOleCache_Uncache(T,a) (T)->lpVtbl->Uncache(T,a)
524 #define IOleCache_EnumCache(T,a) (T)->lpVtbl->EnumCache(T,a)
525 #define IOleCache_InitCache(T,a) (T)->lpVtbl->InitCache(T,a)
526 #define IOleCache_SetData(T,a,b,c) (T)->lpVtbl->SetData(T,a,b,c)
527 #endif
528
529 EXTERN_C const IID IID_IOleCache2;
530 #define INTERFACE IOleCache2
531 DECLARE_INTERFACE_(IOleCache2,IOleCache)
532 {
533         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
534         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
535         STDMETHOD_(ULONG,Release)(THIS) PURE;
536         STDMETHOD(Cache)(THIS_ FORMATETC*,DWORD,DWORD*) PURE;
537         STDMETHOD(Uncache)(THIS_ DWORD) PURE;
538         STDMETHOD(EnumCache)(THIS_ IEnumSTATDATA**) PURE;
539         STDMETHOD(InitCache)(THIS_ LPDATAOBJECT) PURE;
540         STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE;
541         STDMETHOD(UpdateCache)(THIS_ LPDATAOBJECT,DWORD,LPVOID) PURE;
542         STDMETHOD(DiscardCache)(THIS_ DWORD) PURE;
543 };
544 #undef INTERFACE
545
546 #ifdef COBJMACROS
547 #define IOleCache2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
548 #define IOleCache2_AddRef(T) (T)->lpVtbl->AddRef(T)
549 #define IOleCache2_Release(T) (T)->lpVtbl->Release(T)
550 #define IOleCache2_Cache(T,a,b,c) (T)->lpVtbl->Cache(T,a,b,c)
551 #define IOleCache2_Uncache(T,a) (T)->lpVtbl->Uncache(T,a)
552 #define IOleCache2_EnumCache(T,a) (T)->lpVtbl->EnumCache(T,a)
553 #define IOleCache2_InitCache(T,a) (T)->lpVtbl->InitCache(T,a)
554 #define IOleCache2_SetData(T,a,b,c) (T)->lpVtbl->SetData(T,a,b,c)
555 #define IOleCache2_UpdateCache(T,a,b,c) (T)->lpVtbl->UpdateCache(T,a,b,c)
556 #define IOleCache2_DiscardCache(T,a) (T)->lpVtbl->DiscardCache(T,a)
557 #endif
558
559 EXTERN_C const IID IID_IOleCacheControl;
560 #define INTERFACE IOleCacheControl
561 DECLARE_INTERFACE_(IOleCacheControl,IUnknown)
562 {
563         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
564         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
565         STDMETHOD_(ULONG,Release)(THIS) PURE;
566         STDMETHOD(OnRun)(THIS_ LPDATAOBJECT) PURE;
567         STDMETHOD(OnStop)(THIS) PURE;
568 };
569 #undef INTERFACE
570
571 #ifdef __cplusplus
572 }
573 #endif
574 #endif
575