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