{Start|End}{Doc|Page} go through DCfuncs.
[wine] / include / wine / obj_control.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_CONTROL_H
8 #define __WINE_WINE_OBJ_CONTROL_H
9
10
11 #include "winbase.h"
12 #include "wine/obj_oleaut.h" /* for DISPID */
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif /* defined(__cplusplus) */
17
18 /*****************************************************************************
19  * Declare the structures
20  */
21 typedef enum tagGUIDKIND
22 {
23                 GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1
24 } GUIDKIND;
25
26 typedef enum tagREADYSTATE
27 {
28         READYSTATE_UNINITIALIZED  = 0,
29         READYSTATE_LOADING  = 1,
30         READYSTATE_LOADED = 2,
31         READYSTATE_INTERACTIVE  = 3,
32         READYSTATE_COMPLETE = 4
33 } READYSTATE;
34                                                                                                                                  
35 typedef struct tagExtentInfo
36 {
37         ULONG cb;
38         DWORD dwExtentMode;
39         SIZEL sizelProposed;
40 } DVEXTENTINFO;
41
42 typedef struct tagVARIANT_BLOB
43 {
44         DWORD clSize;
45         DWORD rpcReserved;
46         ULONGLONG ahData[1];
47 } wireVARIANT_BLOB;
48
49 typedef struct tagUserVARIANT
50 {
51         wireVARIANT_BLOB pVarBlob;
52 } UserVARIANT;
53
54 typedef struct tagLICINFO
55 {
56         LONG cbLicInfo;
57         BOOL fRuntimeKeyAvail;
58         BOOL fLicVerified;
59 } LICINFO, *LPLICINFO;
60
61 typedef struct tagCONTROLINFO
62 {
63         ULONG cb;
64         HACCEL hAccel;
65         USHORT cAccel;
66         DWORD dwFlags;
67 } CONTROLINFO, *LPCONTROLINFO;
68
69 typedef enum tagCTRLINFO
70 {
71         CTRLINFO_EATS_RETURN = 1,
72         CTRLINFO_EATS_ESCAPE = 2
73 } CTRLINFO;
74
75 typedef struct tagPOINTF
76 {
77         FLOAT x;
78         FLOAT y;
79 } POINTF, *LPPOINTF;
80
81 typedef enum tagXFORMCOORDS
82 {
83         XFORMCOORDS_POSITION = 0x1,
84         XFORMCOORDS_SIZE = 0x2,
85         XFORMCOORDS_HIMETRICTOCONTAINER = 0x4,
86         XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8
87 } XFORMCOORDS;
88
89 typedef enum tagACTIVATEFLAGS
90 {
91         ACTIVATE_WINDOWLESS = 1
92 } ACTIVATE_FLAGS;
93
94 typedef enum tagOLEDCFLAGS
95 {
96         OLEDC_NODRAW = 0x1,
97         OLEDC_PAINTBKGND = 0x2,
98         OLEDC_OFFSCREEN = 0x4
99 } OLEDCFLAGS;
100
101 typedef enum tagDVASPECT2
102 {
103         DVASPECT_OPAQUE = 16,
104         DVASPECT_TRANSPARENT = 32
105 } DVASPECT2;
106
107 typedef enum tagHITRESULT 
108 {
109         HITRESULT_OUTSIDE = 0,
110         HITRESULT_TRANSPARENT = 1,
111         HITRESULT_CLOSE = 2,
112         HITRESULT_HIT = 3
113 } HITRESULT;
114
115 typedef enum tagAspectInfoFlag
116 {
117         DVASPECTINFOFLAG_CANOPTIMIZE = 1
118 } DVASPECTINFOFLAG;
119
120 typedef struct tagAspectInfo
121 {
122         ULONG cb;
123         DWORD dwFlags;
124 } DVASPECTINFO;
125
126 typedef enum tagVIEWSTATUS
127 {
128         VIEWSTATUS_OPAQUE = 1,
129         VIEWSTATUS_SOLIDBKGND = 2,
130         VIEWSTATUS_DVASPECTOPAQUE = 4,
131         VIEWSTATUS_DVASPECTTRANSPARENT = 8
132 } VIEWSTATUS;
133
134 /*****************************************************************************
135  * Predeclare the interfaces
136  */
137 DEFINE_GUID(IID_IOleControl, 0xb196b288, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
138 typedef struct IOleControl IOleControl, *LPOLECONTROL;
139
140 DEFINE_GUID(IID_IOleControlSite, 0xb196b289, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
141 typedef struct IOleControlSite IOleControlSite, *LPOLECONTROLSITE;
142
143 DEFINE_GUID(IID_IOleInPlaceSiteEx, 0x9c2cad80L, 0x3424, 0x11cf, 0xb6, 0x70, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8);
144 typedef struct IOleInPlaceSiteEx IOleInPlaceSiteEx, *LPOLEINPLACESITEEX;
145
146 DEFINE_OLEGUID(IID_IOleInPlaceSiteWindowless,  0x00000000L, 0, 0); /* FIXME - NEED GUID */
147 typedef struct IOleInPlaceSiteWindowless IOleInPlaceSiteWindowless, *LPOLEINPLACESITEWINDOWLESS;
148
149 DEFINE_OLEGUID(IID_IOleInPlaceObjectWindowless,  0x00000000L, 0, 0); /* FIXME - NEED GUID */
150 typedef struct IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless, *LPOLEINPLACEOBJECTWINDOWLESS;
151
152 DEFINE_GUID(IID_IClassFactory2, 0xb196b28f, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
153 typedef struct IClassFactory2 IClassFactory2, *LPCLASSFACTORY2;
154
155 DEFINE_GUID(IID_IViewObjectEx, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); /* FIXME need GUID */
156 typedef struct IViewObjectEx IViewObjectEx, *LPVIEWOBJECTEX;
157  
158 DEFINE_GUID(IID_IProvideClassInfo, 0xb196b283, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
159 typedef struct IProvideClassInfo IProvideClassInfo, *LPPROVIDECLASSINFO;
160  
161 DEFINE_GUID(IID_IProvideClassInfo2, 0xa6bc3ac0, 0xdbaa, 0x11ce, 0x9d, 0xe3, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51);
162 typedef struct IProvideClassInfo2 IProvideClassInfo2, *LPPROVIDECLASSINFO2;
163  
164 /*****************************************************************************
165  * IOleControl interface
166  */
167 #define ICOM_INTERFACE IOleControl
168 #define IOleControl_METHODS \
169         ICOM_METHOD1(HRESULT,GetControlInfo, CONTROLINFO*,pCI) \
170         ICOM_METHOD1(HRESULT,OnMnemonic, MSG*,pMsg) \
171         ICOM_METHOD1(HRESULT,OnAmbientPropertyChange, DISPID,dispID) \
172         ICOM_METHOD1(HRESULT,FreezeEvents, BOOL,bFreeze)
173 #define IOleControl_IMETHODS \
174         IUnknown_IMETHODS \
175         IOleControl_METHODS
176 ICOM_DEFINE(IOleControl,IUnknown)
177 #undef ICOM_INTERFACE
178
179 #ifdef ICOM_CINTERFACE
180 /*** IUnknwon methods ***/
181 #define IOleControl_QueryInterface(p,a,b)        ICOM_CALL2(QueryInterface,p,a,b)
182 #define IOleControl_AddRef(p)                    ICOM_CALL (AddRef,p)
183 #define IOleControl_Release(p)                   ICOM_CALL (Release,p)
184 /*** IOleControl methods ***/
185 #define IOleControl_GetControlInfo(p,a)          ICOM_CALL1(GetControlInfo,p,a)
186 #define IOleControl_OnMnemonic(p,a)              ICOM_CALL1(OnMnemonic,p,a)
187 #define IOleControl_OnAmbientPropertyChange(p,a) ICOM_CALL1(OnAmbientPropertyChange,p,a)
188 #define IOleControl_FreezeEvents(p,a)            ICOM_CALL1(FreezeEvents,p,a)
189 #endif
190                                 
191
192 /*****************************************************************************
193  * IOleControlSite interface
194  */
195 #define ICOM_INTERFACE IOleControlSite 
196 #define IOleControlSite_METHODS \
197         ICOM_METHOD (HRESULT,OnControlInfoChanged) \
198         ICOM_METHOD1(HRESULT,LockInPlaceActive, BOOL,fLock) \
199         ICOM_METHOD1(HRESULT,GetExtendedControl, IDispatch**,ppDisp) \
200         ICOM_METHOD3(HRESULT,TransformCoords, POINTL*,pPtlHimetric, POINTF*,pPtfContainer, DWORD,dwFlags) \
201         ICOM_METHOD2(HRESULT,TranslateAccelerator, MSG*,pMsg, DWORD,grfModifiers) \
202         ICOM_METHOD1(HRESULT,OnFocus, BOOL,fGotFocus) \
203         ICOM_METHOD (HRESULT,ShowPropertyFrame)
204 #define IOleControlSite_IMETHODS \
205         IUnknown_IMETHODS \
206         IOleControlSite_METHODS
207 ICOM_DEFINE(IOleControlSite,IUnknown)
208 #undef ICOM_INTERFACE
209
210 #ifdef ICOM_CINTERFACE
211 /*** IUnknwon methods ***/
212 #define IOleControlSite_QueryInterface(p,a,b)        ICOM_CALL2(QueryInterface,p,a,b)
213 #define IOleControlSite_AddRef(p)                    ICOM_CALL (AddRef,p)
214 #define IOleControlSite_Release(p)                   ICOM_CALL (Release,p)
215 /*** IOleControlSite methods ***/
216 #define IOleControlSite_OnControlInfoChanged(p)      ICOM_CALL1(OnControlInfoChanged,p)
217 #define IOleControlSite_LockInPlaceActive(p,a)       ICOM_CALL1(LockInPlaceActive,p,a)
218 #define IOleControlSite_GetExtendedControl(p,a)      ICOM_CALL1(GetExtendedControl,p,a)
219 #define IOleControlSite_TransformCoords(p,a,b,c)     ICOM_CALL1(TransformCoords,p,a,b,c)
220 #define IOleControlSite_TranslateAccelerator(p,a,b)  ICOM_CALL1(TranslateAccelerator,p,a,b)
221 #define IOleControlSite_OnFocus(p,a)                 ICOM_CALL1(OnFocus,p,a)
222 #define IOleControlSite_ShowPropertyFrame(p)         ICOM_CALL1(ShowPropertyFrame,p)
223 #endif
224                                 
225                                 
226 /*****************************************************************************
227  * IOleInPlaceSiteEx interface
228  */
229 #define ICOM_INTERFACE IOleInPlaceSiteEx
230 #define IOleInPlaceSiteEx_METHODS \
231         ICOM_METHOD2(HRESULT,OnInPlaceActivateEx, BOOL*,pfNoRedraw, DWORD,dwFlags) \
232         ICOM_METHOD1(HRESULT,OnInPlaceDeactivateEx, BOOL,fNoRedraw) \
233         ICOM_METHOD (HRESULT,RequestUIActivate)
234 #define IOleInPlaceSiteEx_IMETHODS \
235         IOleInPlaceSite_IMETHODS \
236         IOleInPlaceSiteEx_METHODS
237 ICOM_DEFINE(IOleInPlaceSiteEx,IOleInPlaceSite)
238 #undef ICOM_INTERFACE
239
240 #ifdef ICOM_CINTERFACE
241 /*** IUnknown methods ***/
242 #define IOleInPlaceSiteEx_QueryInterface(p,a,b)      ICOM_CALL2(QueryInterface,p,a,b)
243 #define IOleInPlaceSiteEx_AddRef(p)                  ICOM_CALL (AddRef,p)
244 #define IOleInPlaceSiteEx_Release(p)                 ICOM_CALL (Release,p)
245 /*** IOleWindow methods ***/
246 #define IOleInPlaceSiteEx_GetWindow(p,a)             ICOM_CALL1(GetWindow,p,a)
247 #define IOleInPlaceSiteEx_ContextSensitiveHelp(p,a)  ICOM_CALL1(ContextSensitiveHelp,p,a)
248 /*** IOleInPlaceSite methods ***/
249 #define IOleInPlaceSiteEx_CanInPlaceActivate(p)      ICOM_CALL (CanInPlaceActivate,p)
250 #define IOleInPlaceSiteEx_OnInPlaceActivate(p)       ICOM_CALL (OnInPlaceActivate,p)
251 #define IOleInPlaceSiteEx_OnUIActivate(p)            ICOM_CALL (OnUIActivate,p)
252 #define IOleInPlaceSiteEx_GetWindowContext(p,a,b,c,d,e) ICOM_CALL5(GetWindowContext,p,a,b,c,d,e)
253 #define IOleInPlaceSiteEx_Scroll(p,a)                ICOM_CALL1(Scroll,p,a)
254 #define IOleInPlaceSiteEx_OnUIDeactivate(p,a)        ICOM_CALL1(OnUIDeactivate,p,a)
255 #define IOleInPlaceSiteEx_OnInPlaceDeactivate(p)     ICOM_CALL (OnInPlaceDeactivate,p)
256 #define IOleInPlaceSiteEx_DiscardUndoState(p)        ICOM_CALL (DiscardUndoState,p)
257 #define IOleInPlaceSiteEx_DeactivateAndUndo(p)       ICOM_CALL (DeactivateAndUndo,p)
258 #define IOleInPlaceSiteEx_OnPosRectChange(p,a)       ICOM_CALL1(OnPosRectChange,p,a)
259 /*** IOleInPlaceSiteEx methods ***/
260 #define IOleInPlaceSiteEx_OnInPlaceActivateEx(p,a,b) ICOM_CALL2(OnInPlaceActivateEx,p,a,b)
261 #define IOleInPlaceSiteEx_OnInPlaceDeactivateEx(p,a) ICOM_CALL1(OnInPlaceDeactivateEx,p,a)
262 #define IOleInPlaceSiteEx_RequestUIActivate(p)       ICOM_CALL (RequestUIActivate,p)
263 #endif
264                                  
265
266 /*****************************************************************************
267  * IOleInPlaceSiteWindowless interface
268  */
269 #define ICOM_INTERFACE IOleInPlaceSiteWindowless
270 #define IOleInPlaceSiteWindowless_METHODS \
271         ICOM_METHOD (HRESULT,CanWindowlessActivate) \
272         ICOM_METHOD (HRESULT,GetCapture) \
273         ICOM_METHOD1(HRESULT,SetCapture, BOOL,fCapture) \
274         ICOM_METHOD (HRESULT,GetFocus) \
275         ICOM_METHOD1(HRESULT,SetFocus, BOOL,fFocus) \
276         ICOM_METHOD3(HRESULT,GetDC, LPCRECT,pRect, DWORD,grfFlags, HDC*,phDC) \
277         ICOM_METHOD1(HRESULT,ReleaseDC, HDC,hDC) \
278         ICOM_METHOD2(HRESULT,InvalidateRect, LPCRECT,pRect, BOOL,fErase) \
279         ICOM_METHOD2(HRESULT,InvalidateRgn, HRGN,hRgn, BOOL,fErase) \
280         ICOM_METHOD4(HRESULT,ScrollRect, INT,dx, INT,dy, LPCRECT,pRectScroll, LPCRECT,pRectClip) \
281         ICOM_METHOD1(HRESULT,AdjustRect, LPRECT,prc) \
282         ICOM_METHOD4(HRESULT,OnDefWindowMessage, UINT,msg, WPARAM,wParam, LPARAM,lParam, LRESULT*,plResult)
283 #define IOleInPlaceSiteWindowless_IMETHODS \
284         IOleInPlaceSite_IMETHODS \
285         IOleInPlaceSiteWindowless_METHODS
286 ICOM_DEFINE(IOleInPlaceSiteWindowless,IOleInPlaceSite)
287 #undef ICOM_INTERFACE
288
289 #ifdef ICOM_CINTERFACE
290 /*** IUnknown methods ***/
291 #define IOleInPlaceSiteWindowless_QueryInterface(p,a,b)      ICOM_CALL2(QueryInterface,p,a,b)
292 #define IOleInPlaceSiteWindowless_AddRef(p)                  ICOM_CALL (AddRef,p)
293 #define IOleInPlaceSiteWindowless_Release(p)                 ICOM_CALL (Release,p)
294 /*** IOleWindow methods ***/
295 #define IOleInPlaceSiteWindowless_GetWindow(p,a)             ICOM_CALL1(GetWindow,p,a)
296 #define IOleInPlaceSiteWindowless_ContextSensitiveHelp(p,a)  ICOM_CALL1(ContextSensitiveHelp,p,a)
297 /*** IOleInPlaceSitemethods ***/
298 #define IOleInPlaceSiteWindowless_CanInPlaceActivate(p)      ICOM_CALL (CanInPlaceActivate,p)
299 #define IOleInPlaceSiteWindowless_OnInPlaceActivate(p)       ICOM_CALL (OnInPlaceActivate,p)
300 #define IOleInPlaceSiteWindowless_OnUIActivate(p)            ICOM_CALL (OnUIActivate,p)
301 #define IOleInPlaceSiteWindowless_GetWindowContext(p,a,b,c,d,e) ICOM_CALL5(GetWindowContext,p,a,b,c,d,e)
302 #define IOleInPlaceSiteWindowless_Scroll(p,a)                ICOM_CALL1(Scroll,p,a)
303 #define IOleInPlaceSiteWindowless_OnUIDeactivate(p,a)        ICOM_CALL1(OnUIDeactivate,p,a)
304 #define IOleInPlaceSiteWindowless_OnInPlaceDeactivate(p)     ICOM_CALL (OnInPlaceDeactivate,p)
305 #define IOleInPlaceSiteWindowless_DiscardUndoState(p)        ICOM_CALL (DiscardUndoState,p)
306 #define IOleInPlaceSiteWindowless_DeactivateAndUndo(p)       ICOM_CALL (DeactivateAndUndo,p)
307 #define IOleInPlaceSiteWindowless_OnPosRectChange(p,a)       ICOM_CALL1(OnPosRectChange,p,a)
308 /*** IOleInPlaceSitemethods ***/
309 #define IOleInPlaceSiteWindowless_CanWindowlessActivate(p) ICOM_CALL (CanInPlaceActivate,p)
310 #define IOleInPlaceSiteWindowless_GetCapture(p)            ICOM_CALL (OnInPlaceActivate,p)
311 #define IOleInPlaceSiteWindowless_SetCapture(p,a)          ICOM_CALL1(OnUIActivate,p,a)
312 #define IOleInPlaceSiteWindowless_GetFocus(p)              ICOM_CALL (GetWindowContext,p)
313 #define IOleInPlaceSiteWindowless_SetFocus(p,a)            ICOM_CALL1(Scroll,p,a)
314 #define IOleInPlaceSiteWindowless_GetDC(p,a,b,c)           ICOM_CALL3(OnUIDeactivate,p,a,b,c)
315 #define IOleInPlaceSiteWindowless_ReleaseDC(p,a)           ICOM_CALL1(OnInPlaceDeactivate,p,a)
316 #define IOleInPlaceSiteWindowless_InvalidateRect(p,a,b)    ICOM_CALL2(DiscardUndoState,p,a,b)
317 #define IOleInPlaceSiteWindowless_InvalidateRgn(p,a,b)     ICOM_CALL2(DeactivateAndUndo,p,a,b)
318 #define IOleInPlaceSiteWindowless_ScrollRect(p,a,b,c,d)    ICOM_CALL4(OnPosRectChange,p,a,b,c,d)
319 #define IOleInPlaceSiteWindowless_AdjustRect(p,a)          ICOM_CALL1(OnPosRectChange,p,a)
320 #define IOleInPlaceSiteWindowless_OnDefWindowMessage(p,a,b,c,d) ICOM_CALL4(OnPosRectChange,p,a,b,c,d)
321 #endif
322
323
324 /*****************************************************************************
325  * IOleInPlaceObjectWindowless interface
326  */
327 #define ICOM_INTERFACE IOleInPlaceObjectWindowless
328 #define IOleInPlaceObjectWindowless_METHODS \
329         ICOM_METHOD4(HRESULT,OnWindowMessage, UINT,msg, WPARAM,wParam, LPARAM,lParam, LRESULT*,plResult) \
330         ICOM_METHOD1(HRESULT,GetDropTarget, IDropTarget**,ppDropTarget)
331 #define IOleInPlaceObjectWindowless_IMETHODS \
332         IOleInPlaceObject_IMETHODS \
333         IOleInPlaceObjectWindowless_METHODS
334 ICOM_DEFINE(IOleInPlaceObjectWindowless,IOleInPlaceObject)
335 #undef ICOM_INTERFACE
336
337 #ifdef ICOM_CINTERFACE
338 /*** IUnknown methods ***/
339 #define IOleInPlaceObjectWindowless_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
340 #define IOleInPlaceObjectWindowless_AddRef(p)             ICOM_CALL (AddRef,p)
341 #define IOleInPlaceObjectWindowless_Release(p)            ICOM_CALL (Release,p)
342 /*** IOleWindow methods ***/
343 #define IOleInPlaceObjectWindowless_GetWindow(p,a)             ICOM_CALL1(GetWindow,p,a)
344 #define IOleInPlaceObjectWindowless_ContextSensitiveHelp(p,a)  ICOM_CALL1(ContextSensitiveHelp,p,a)
345 /*** IOleInPlaceObject methods ***/
346 #define IOleInPlaceObjectWindowless_InPlaceDeactivate(p)       ICOM_CALL (InPlaceDeactivate,p)
347 #define IOleInPlaceObjectWindowless_UIDeactivate(p)            ICOM_CALL (UIDeactivate,p)
348 #define IOleInPlaceObjectWindowless_SetObjectRects(p,a,b)      ICOM_CALL2(SetObjectRects,p,a,b)
349 #define IOleInPlaceObjectWindowless_ReactivateAndUndo(p)       ICOM_CALL (ReactivateAndUndo,p)
350 /*** IOleInPlaceObjectWindowless methods ***/
351 #define IOleInPlaceObjectWindowless_OnWindowMessage(p,a,b,c,d) ICOM_CALL4(OnWindowMessage,p,a,b,c,d)
352 #define IOleInPlaceObjectWindowless_GetDropTarget(p,a)         ICOM_CALL1(GetDropTarget,p,a)
353 #endif
354                                  
355
356 /*****************************************************************************
357  * IClassFactory2 interface
358  */
359 #define ICOM_INTERFACE IClassFactory2
360 #define IClassFactory2_METHODS \
361         ICOM_METHOD1(HRESULT,GetLicInfo, LICINFO*,pLicInfo) \
362         ICOM_METHOD2(HRESULT,RequestLicKey, DWORD,dwReserved, BSTR*,pBstrKey) \
363         ICOM_METHOD5(HRESULT,CreateInstanceLic, IUnknown*,pUnkOuter, IUnknown*,pUnkReserved, REFIID,riid, BSTR,bstrKey, PVOID*,ppvObj)
364 #define IClassFactory2_IMETHODS \
365         IClassFactory_IMETHODS \
366         IClassFactory2_METHODS
367 ICOM_DEFINE(IClassFactory2,IClassFactory)
368 #undef ICOM_INTERFACE
369
370 #ifdef ICOM_CINTERFACE
371 /*** IUnknwon methods ***/
372 #define IClassFactory2_QueryInterface(p,a,b)      ICOM_CALL2(QueryInterface,p,a,b)
373 #define IClassFactory2_AddRef(p)                  ICOM_CALL (AddRef,p)
374 #define IClassFactory2_Release(p)                 ICOM_CALL (Release,p)
375 /*** IClassFactory methods ***/
376 #define IClassFactory2_CreateInstance(p,a,b,c)    ICOM_CALL3(CreateInstance,p,a,b,c)
377 #define IClassFactory2_LockServer(p,a)            ICOM_CALL1(LockServer,p,a)
378 /*** IClassFactory2 methods ***/
379 #define IClassFactory2_GetLicInfo(p,a)            ICOM_CALL1(GetLicInfo,p,a)
380 #define IClassFactory2_RequestLicKey(p,a,b)       ICOM_CALL2(RequestLicKey,p,a,b)
381 #define IClassFactory2_CreateInstanceLic(p,a,b,c,d,e) ICOM_CALL5(CreateInstanceLic,p,a,b,c,d,e)
382 #endif
383
384
385 /*****************************************************************************
386  * IViewObject interface
387  */
388 #define ICOM_INTERFACE IViewObjectEx
389 #define IViewObjectEx_METHODS \
390         ICOM_METHOD2(HRESULT,GetRect, DWORD,dwAspect, LPRECTL,pRect) \
391         ICOM_METHOD1(HRESULT,GetViewStatus, DWORD*,pdwStatus) \
392         ICOM_METHOD5(HRESULT,QueryHitPoint, DWORD,dwAspect, LPCRECT,pRectBounds, POINT,ptlLoc, LONG,lCloseHint, DWORD*,pHitResult) \
393         ICOM_METHOD5(HRESULT,QueryHitRect, DWORD,dwAspect, LPCRECT,pRectBounds, LPCRECT,pRectLoc, LONG,lCloseHint, DWORD*,pHitResult) \
394         ICOM_METHOD6(HRESULT,GetNaturalExtent, DWORD,dwAspect, LONG,lindex, DVTARGETDEVICE*,ptd, HDC,hicTargetDev, DVEXTENTINFO*,pExtentInfo, LPSIZEL,pSizel)
395 #define IViewObjectEx_IMETHODS \
396         IViewObject2_IMETHODS \
397         IViewObjectEx_METHODS
398 ICOM_DEFINE(IViewObjectEx,IViewObject2)
399 #undef ICOM_INTERFACE
400
401 #ifdef ICOM_CINTERFACE
402 /*** IUnknwon methods ***/
403 #define IViewObjectEx_QueryInterface(p,a,b)        ICOM_CALL2(QueryInterface,p,a,b)
404 #define IViewObjectEx_AddRef(p)                    ICOM_CALL (AddRef,p)
405 #define IViewObjectEx_Release(p)                   ICOM_CALL (Release,p)
406 /*** IViewObject methods ***/
407 #define IViewObjectEx_Draw(p,a,b,c,d,e,f,g,h,i,j)  ICOM_CALL10(Draw,p,a,b,c,d,e,f,g,h,i,j)
408 #define IViewObjectEx_GetColorSet(p,a,b,c,d,e,f)   ICOM_CALL6(GetColorSet,p,a,b,c,d,e,f)
409 #define IViewObjectEx_Freeze(p,a,b,c,d)            ICOM_CALL4(Freeze,p,a,b,c,d)
410 #define IViewObjectEx_Unfreeze(p,a)                ICOM_CALL1(Unfreeze,p,a)
411 #define IViewObjectEx_SetAdvise(p,a,b,c)           ICOM_CALL3(SetAdvise,p,a,b,c)
412 #define IViewObjectEx_GetAdvise(p,a,b,c)           ICOM_CALL3(GetAdvise,p,a,b,c)
413 /*** IViewObject2 methods ***/
414 #define IViewObjectEx_GetExtent(p,a,b,c,d)         ICOM_CALL4(GetExtent,p,a,b,c,d)
415 /*** IViewObjectEx methods ***/
416 #define IViewObjectEx_GetRect(p,a,b)                  ICOM_CALL2(GetRect,p,a,b)
417 #define IViewObjectEx_GetViewStatus(p,a)              ICOM_CALL1(GetViewStatus,p,a)
418 #define IViewObjectEx_QueryHitPoint(p,a,b,c,d,e)      ICOM_CALL5(QueryHitPoint,p,a,b,c,d,e)
419 #define IViewObjectEx_QueryHitRect(p,a,b,c,d,e)       ICOM_CALL5(QueryHitRect,p,a,b,c,d,e)
420 #define IViewObjectEx_GetNaturalExtent(p,a,b,c,d,e,f) ICOM_CALL6(GetNaturalExtent,p,a,b,c,d,e,f)
421 #endif
422
423
424 /*****************************************************************************
425  * IProvideClassInfo interface
426  */
427 #define ICOM_INTERFACE IProvideClassInfo
428 #define IProvideClassInfo_METHODS \
429         ICOM_METHOD1(HRESULT,GetClassInfo, ITypeInfo**,ppTI) 
430 #define IProvideClassInfo_IMETHODS \
431         IUnknown_IMETHODS \
432         IProvideClassInfo_METHODS
433 ICOM_DEFINE(IProvideClassInfo,IUnknown)
434 #undef ICOM_INTERFACE
435
436 #ifdef ICOM_CINTERFACE
437 /*** IUnknwon methods ***/
438 #define IProvideClassInfo_QueryInterface(p,a,b)        ICOM_CALL2(QueryInterface,p,a,b)
439 #define IProvideClassInfo_AddRef(p)                    ICOM_CALL (AddRef,p)
440 #define IProvideClassInfo_Release(p)                   ICOM_CALL (Release,p)
441 /*** IProvideClassInfo methods ***/
442 #define IProvideClassInfo_GetClassInfo(p,a)            ICOM_CALL1(GetClassInfo,p,a)
443 #endif
444
445
446                                 
447 /*****************************************************************************
448  * IProvideClassInfo2 interface
449  */
450 #define ICOM_INTERFACE IProvideClassInfo2
451 #define IProvideClassInfo2_METHODS \
452         ICOM_METHOD2(HRESULT,GetGUID, DWORD,dwGuidKind, GUID*,pGUID)
453 #define IProvideClassInfo2_IMETHODS \
454         IProvideClassInfo_IMETHODS \
455         IProvideClassInfo2_METHODS
456 ICOM_DEFINE(IProvideClassInfo2,IProvideClassInfo)
457 #undef ICOM_INTERFACE
458
459 #ifdef ICOM_CINTERFACE
460 /*** IUnknwon methods ***/
461 #define IProvideClassInfo2_QueryInterface(p,a,b)   ICOM_CALL2(QueryInterface,p,a,b)
462 #define IProvideClassInfo2_AddRef(p)               ICOM_CALL (AddRef,p)
463 #define IProvideClassInfo2_Release(p)              ICOM_CALL (Release,p)
464 /*** IProvideClassInfo methods ***/
465 #define IProvideClassInfo2_GetClassInfo(p,a)       ICOM_CALL1(GetClassInfo,p,a) 
466 /*** IProvideClassInfo2 methods ***/
467 #define IProvideClassInfo2_GetGUID(p,a,b)          ICOM_CALL2(GetGUID,p,a,b)
468 #endif
469
470 #ifdef __cplusplus
471 } /* extern "C" */
472 #endif /* defined(__cplusplus) */
473
474 #endif /* __WINE_WINE_OBJ_CONTROL_H */