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