OSDN Git Service

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