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