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