Sweden-Number/include/wine/obj_control.h

475 lines
20 KiB
C

/*
* Defines the COM interfaces and APIs related to structured data storage.
*
* Depends on 'obj_base.h'.
*
* Copyright (C) 1999 Paul Quinn
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_WINE_OBJ_CONTROL_H
#define __WINE_WINE_OBJ_CONTROL_H
struct tagMSG;
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
/*****************************************************************************
* Declare the structures
*/
typedef enum tagGUIDKIND
{
GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1
} GUIDKIND;
typedef enum tagREADYSTATE
{
READYSTATE_UNINITIALIZED = 0,
READYSTATE_LOADING = 1,
READYSTATE_LOADED = 2,
READYSTATE_INTERACTIVE = 3,
READYSTATE_COMPLETE = 4
} READYSTATE;
typedef struct tagExtentInfo
{
ULONG cb;
DWORD dwExtentMode;
SIZEL sizelProposed;
} DVEXTENTINFO;
typedef struct tagVARIANT_BLOB
{
DWORD clSize;
DWORD rpcReserved;
ULONGLONG ahData[1];
} wireVARIANT_BLOB;
typedef struct tagUserVARIANT
{
wireVARIANT_BLOB pVarBlob;
} UserVARIANT;
typedef struct tagLICINFO
{
LONG cbLicInfo;
BOOL fRuntimeKeyAvail;
BOOL fLicVerified;
} LICINFO, *LPLICINFO;
typedef struct tagCONTROLINFO
{
ULONG cb;
HACCEL hAccel;
USHORT cAccel;
DWORD dwFlags;
} CONTROLINFO, *LPCONTROLINFO;
typedef enum tagCTRLINFO
{
CTRLINFO_EATS_RETURN = 1,
CTRLINFO_EATS_ESCAPE = 2
} CTRLINFO;
typedef struct tagPOINTF
{
FLOAT x;
FLOAT y;
} POINTF, *LPPOINTF;
typedef enum tagXFORMCOORDS
{
XFORMCOORDS_POSITION = 0x1,
XFORMCOORDS_SIZE = 0x2,
XFORMCOORDS_HIMETRICTOCONTAINER = 0x4,
XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8
} XFORMCOORDS;
typedef enum tagACTIVATEFLAGS
{
ACTIVATE_WINDOWLESS = 1
} ACTIVATE_FLAGS;
typedef enum tagOLEDCFLAGS
{
OLEDC_NODRAW = 0x1,
OLEDC_PAINTBKGND = 0x2,
OLEDC_OFFSCREEN = 0x4
} OLEDCFLAGS;
typedef enum tagDVASPECT2
{
DVASPECT_OPAQUE = 16,
DVASPECT_TRANSPARENT = 32
} DVASPECT2;
typedef enum tagHITRESULT
{
HITRESULT_OUTSIDE = 0,
HITRESULT_TRANSPARENT = 1,
HITRESULT_CLOSE = 2,
HITRESULT_HIT = 3
} HITRESULT;
typedef enum tagAspectInfoFlag
{
DVASPECTINFOFLAG_CANOPTIMIZE = 1
} DVASPECTINFOFLAG;
typedef struct tagAspectInfo
{
ULONG cb;
DWORD dwFlags;
} DVASPECTINFO;
typedef enum tagVIEWSTATUS
{
VIEWSTATUS_OPAQUE = 1,
VIEWSTATUS_SOLIDBKGND = 2,
VIEWSTATUS_DVASPECTOPAQUE = 4,
VIEWSTATUS_DVASPECTTRANSPARENT = 8
} VIEWSTATUS;
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_GUID(IID_IOleControl, 0xb196b288, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
typedef struct IOleControl IOleControl, *LPOLECONTROL;
DEFINE_GUID(IID_IOleControlSite, 0xb196b289, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
typedef struct IOleControlSite IOleControlSite, *LPOLECONTROLSITE;
DEFINE_GUID(IID_IOleInPlaceSiteEx, 0x9c2cad80L, 0x3424, 0x11cf, 0xb6, 0x70, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8);
typedef struct IOleInPlaceSiteEx IOleInPlaceSiteEx, *LPOLEINPLACESITEEX;
DEFINE_OLEGUID(IID_IOleInPlaceSiteWindowless, 0x00000000L, 0, 0); /* FIXME - NEED GUID */
typedef struct IOleInPlaceSiteWindowless IOleInPlaceSiteWindowless, *LPOLEINPLACESITEWINDOWLESS;
DEFINE_OLEGUID(IID_IOleInPlaceObjectWindowless, 0x00000000L, 0, 0); /* FIXME - NEED GUID */
typedef struct IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless, *LPOLEINPLACEOBJECTWINDOWLESS;
DEFINE_GUID(IID_IClassFactory2, 0xb196b28f, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
typedef struct IClassFactory2 IClassFactory2, *LPCLASSFACTORY2;
DEFINE_GUID(IID_IViewObjectEx, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); /* FIXME need GUID */
typedef struct IViewObjectEx IViewObjectEx, *LPVIEWOBJECTEX;
DEFINE_GUID(IID_IProvideClassInfo, 0xb196b283, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07);
typedef struct IProvideClassInfo IProvideClassInfo, *LPPROVIDECLASSINFO;
DEFINE_GUID(IID_IProvideClassInfo2, 0xa6bc3ac0, 0xdbaa, 0x11ce, 0x9d, 0xe3, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51);
typedef struct IProvideClassInfo2 IProvideClassInfo2, *LPPROVIDECLASSINFO2;
/*****************************************************************************
* IOleControl interface
*/
#define INTERFACE IOleControl
#define IOleControl_METHODS \
IUnknown_METHODS \
STDMETHOD(GetControlInfo)(THIS_ CONTROLINFO *pCI) PURE; \
STDMETHOD(OnMnemonic)(THIS_ struct tagMSG *pMsg) PURE; \
STDMETHOD(OnAmbientPropertyChange)(THIS_ DISPID dispID) PURE; \
STDMETHOD(FreezeEvents)(THIS_ BOOL bFreeze) PURE;
ICOM_DEFINE(IOleControl,IUnknown)
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IOleControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IOleControl_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IOleControl_Release(p) (p)->lpVtbl->Release(p)
/*** IOleControl methods ***/
#define IOleControl_GetControlInfo(p,a) (p)->lpVtbl->GetControlInfo(p,a)
#define IOleControl_OnMnemonic(p,a) (p)->lpVtbl->OnMnemonic(p,a)
#define IOleControl_OnAmbientPropertyChange(p,a) (p)->lpVtbl->OnAmbientPropertyChange(p,a)
#define IOleControl_FreezeEvents(p,a) (p)->lpVtbl->FreezeEvents(p,a)
#endif
/*****************************************************************************
* IOleControlSite interface
*/
#define INTERFACE IOleControlSite
#define IOleControlSite_METHODS \
IUnknown_METHODS \
STDMETHOD(OnControlInfoChanged)(THIS) PURE; \
STDMETHOD(LockInPlaceActive)(THIS_ BOOL fLock) PURE; \
STDMETHOD(GetExtendedControl)(THIS_ IDispatch **ppDisp) PURE; \
STDMETHOD(TransformCoords)(THIS_ POINTL *pPtlHimetric, POINTF *pPtfContainer, DWORD dwFlags) PURE; \
STDMETHOD(TranslateAccelerator)(THIS_ struct tagMSG *pMsg, DWORD grfModifiers) PURE; \
STDMETHOD(OnFocus)(THIS_ BOOL fGotFocus) PURE; \
STDMETHOD(ShowPropertyFrame)(THIS) PURE;
ICOM_DEFINE(IOleControlSite,IUnknown)
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IOleControlSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IOleControlSite_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IOleControlSite_Release(p) (p)->lpVtbl->Release(p)
/*** IOleControlSite methods ***/
#define IOleControlSite_OnControlInfoChanged(p) (p)->lpVtbl->OnControlInfoChanged(p)
#define IOleControlSite_LockInPlaceActive(p,a) (p)->lpVtbl->LockInPlaceActive(p,a)
#define IOleControlSite_GetExtendedControl(p,a) (p)->lpVtbl->GetExtendedControl(p,a)
#define IOleControlSite_TransformCoords(p,a,b,c) (p)->lpVtbl->TransformCoords(p,a,b,c)
#define IOleControlSite_TranslateAccelerator(p,a,b) (p)->lpVtbl->TranslateAccelerator(p,a,b)
#define IOleControlSite_OnFocus(p,a) (p)->lpVtbl->OnFocus(p,a)
#define IOleControlSite_ShowPropertyFrame(p) (p)->lpVtbl->ShowPropertyFrame(p)
#endif
/*****************************************************************************
* IOleInPlaceSiteEx interface
*/
#define INTERFACE IOleInPlaceSiteEx
#define IOleInPlaceSiteEx_METHODS \
IOleInPlaceSite_METHODS \
STDMETHOD(OnInPlaceActivateEx)(THIS_ BOOL *pfNoRedraw, DWORD dwFlags) PURE; \
STDMETHOD(OnInPlaceDeactivateEx)(THIS_ BOOL fNoRedraw) PURE; \
STDMETHOD(RequestUIActivate)(THIS) PURE;
ICOM_DEFINE(IOleInPlaceSiteEx,IOleInPlaceSite)
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IOleInPlaceSiteEx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IOleInPlaceSiteEx_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IOleInPlaceSiteEx_Release(p) (p)->lpVtbl->Release(p)
/*** IOleWindow methods ***/
#define IOleInPlaceSiteEx_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
#define IOleInPlaceSiteEx_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
/*** IOleInPlaceSite methods ***/
#define IOleInPlaceSiteEx_CanInPlaceActivate(p) (p)->lpVtbl->CanInPlaceActivate(p)
#define IOleInPlaceSiteEx_OnInPlaceActivate(p) (p)->lpVtbl->OnInPlaceActivate(p)
#define IOleInPlaceSiteEx_OnUIActivate(p) (p)->lpVtbl->OnUIActivate(p)
#define IOleInPlaceSiteEx_GetWindowContext(p,a,b,c,d,e) (p)->lpVtbl->GetWindowContext(p,a,b,c,d,e)
#define IOleInPlaceSiteEx_Scroll(p,a) (p)->lpVtbl->Scroll(p,a)
#define IOleInPlaceSiteEx_OnUIDeactivate(p,a) (p)->lpVtbl->OnUIDeactivate(p,a)
#define IOleInPlaceSiteEx_OnInPlaceDeactivate(p) (p)->lpVtbl->OnInPlaceDeactivate(p)
#define IOleInPlaceSiteEx_DiscardUndoState(p) (p)->lpVtbl->DiscardUndoState(p)
#define IOleInPlaceSiteEx_DeactivateAndUndo(p) (p)->lpVtbl->DeactivateAndUndo(p)
#define IOleInPlaceSiteEx_OnPosRectChange(p,a) (p)->lpVtbl->OnPosRectChange(p,a)
/*** IOleInPlaceSiteEx methods ***/
#define IOleInPlaceSiteEx_OnInPlaceActivateEx(p,a,b) (p)->lpVtbl->OnInPlaceActivateEx(p,a,b)
#define IOleInPlaceSiteEx_OnInPlaceDeactivateEx(p,a) (p)->lpVtbl->OnInPlaceDeactivateEx(p,a)
#define IOleInPlaceSiteEx_RequestUIActivate(p) (p)->lpVtbl->RequestUIActivate(p)
#endif
/*****************************************************************************
* IOleInPlaceSiteWindowless interface
*/
#define INTERFACE IOleInPlaceSiteWindowless
#define IOleInPlaceSiteWindowless_METHODS \
IOleInPlaceSite_METHODS \
STDMETHOD(CanWindowlessActivate)(THIS) PURE; \
STDMETHOD(GetCapture)(THIS) PURE; \
STDMETHOD(SetCapture)(THIS_ BOOL fCapture) PURE; \
STDMETHOD(GetFocus)(THIS) PURE; \
STDMETHOD(SetFocus)(THIS_ BOOL fFocus) PURE; \
STDMETHOD(GetDC)(THIS_ LPCRECT pRect, DWORD grfFlags, HDC *phDC) PURE; \
STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE; \
STDMETHOD(InvalidateRect)(THIS_ LPCRECT pRect, BOOL fErase) PURE; \
STDMETHOD(InvalidateRgn)(THIS_ HRGN hRgn, BOOL fErase) PURE; \
STDMETHOD(ScrollRect)(THIS_ INT dx, INT dy, LPCRECT pRectScroll, LPCRECT pRectClip) PURE; \
STDMETHOD(AdjustRect)(THIS_ LPRECT prc) PURE; \
STDMETHOD(OnDefWindowMessage)(THIS_ UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult) PURE;
ICOM_DEFINE(IOleInPlaceSiteWindowless,IOleInPlaceSite)
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IOleInPlaceSiteWindowless_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IOleInPlaceSiteWindowless_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IOleInPlaceSiteWindowless_Release(p) (p)->lpVtbl->Release(p)
/*** IOleWindow methods ***/
#define IOleInPlaceSiteWindowless_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
#define IOleInPlaceSiteWindowless_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
/*** IOleInPlaceSitemethods ***/
#define IOleInPlaceSiteWindowless_CanInPlaceActivate(p) (p)->lpVtbl->CanInPlaceActivate(p)
#define IOleInPlaceSiteWindowless_OnInPlaceActivate(p) (p)->lpVtbl->OnInPlaceActivate(p)
#define IOleInPlaceSiteWindowless_OnUIActivate(p) (p)->lpVtbl->OnUIActivate(p)
#define IOleInPlaceSiteWindowless_GetWindowContext(p,a,b,c,d,e) (p)->lpVtbl->GetWindowContext(p,a,b,c,d,e)
#define IOleInPlaceSiteWindowless_Scroll(p,a) (p)->lpVtbl->Scroll(p,a)
#define IOleInPlaceSiteWindowless_OnUIDeactivate(p,a) (p)->lpVtbl->OnUIDeactivate(p,a)
#define IOleInPlaceSiteWindowless_OnInPlaceDeactivate(p) (p)->lpVtbl->OnInPlaceDeactivate(p)
#define IOleInPlaceSiteWindowless_DiscardUndoState(p) (p)->lpVtbl->DiscardUndoState(p)
#define IOleInPlaceSiteWindowless_DeactivateAndUndo(p) (p)->lpVtbl->DeactivateAndUndo(p)
#define IOleInPlaceSiteWindowless_OnPosRectChange(p,a) (p)->lpVtbl->OnPosRectChange(p,a)
/*** IOleInPlaceSitemethods ***/
#define IOleInPlaceSiteWindowless_CanWindowlessActivate(p) (p)->lpVtbl->CanInPlaceActivate(p)
#define IOleInPlaceSiteWindowless_GetCapture(p) (p)->lpVtbl->OnInPlaceActivate(p)
#define IOleInPlaceSiteWindowless_SetCapture(p,a) (p)->lpVtbl->OnUIActivate(p,a)
#define IOleInPlaceSiteWindowless_GetFocus(p) (p)->lpVtbl->GetWindowContext(p)
#define IOleInPlaceSiteWindowless_SetFocus(p,a) (p)->lpVtbl->Scroll(p,a)
#define IOleInPlaceSiteWindowless_GetDC(p,a,b,c) (p)->lpVtbl->OnUIDeactivate(p,a,b,c)
#define IOleInPlaceSiteWindowless_ReleaseDC(p,a) (p)->lpVtbl->OnInPlaceDeactivate(p,a)
#define IOleInPlaceSiteWindowless_InvalidateRect(p,a,b) (p)->lpVtbl->DiscardUndoState(p,a,b)
#define IOleInPlaceSiteWindowless_InvalidateRgn(p,a,b) (p)->lpVtbl->DeactivateAndUndo(p,a,b)
#define IOleInPlaceSiteWindowless_ScrollRect(p,a,b,c,d) (p)->lpVtbl->OnPosRectChange(p,a,b,c,d)
#define IOleInPlaceSiteWindowless_AdjustRect(p,a) (p)->lpVtbl->OnPosRectChange(p,a)
#define IOleInPlaceSiteWindowless_OnDefWindowMessage(p,a,b,c,d) (p)->lpVtbl->OnPosRectChange(p,a,b,c,d)
#endif
/*****************************************************************************
* IOleInPlaceObjectWindowless interface
*/
#define INTERFACE IOleInPlaceObjectWindowless
#define IOleInPlaceObjectWindowless_METHODS \
IOleInPlaceObject_METHODS \
STDMETHOD(OnWindowMessage)(THIS_ UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult) PURE; \
STDMETHOD(GetDropTarget)(THIS_ IDropTarget **ppDropTarget) PURE;
ICOM_DEFINE(IOleInPlaceObjectWindowless,IOleInPlaceObject)
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IOleInPlaceObjectWindowless_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IOleInPlaceObjectWindowless_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IOleInPlaceObjectWindowless_Release(p) (p)->lpVtbl->Release(p)
/*** IOleWindow methods ***/
#define IOleInPlaceObjectWindowless_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
#define IOleInPlaceObjectWindowless_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
/*** IOleInPlaceObject methods ***/
#define IOleInPlaceObjectWindowless_InPlaceDeactivate(p) (p)->lpVtbl->InPlaceDeactivate(p)
#define IOleInPlaceObjectWindowless_UIDeactivate(p) (p)->lpVtbl->UIDeactivate(p)
#define IOleInPlaceObjectWindowless_SetObjectRects(p,a,b) (p)->lpVtbl->SetObjectRects(p,a,b)
#define IOleInPlaceObjectWindowless_ReactivateAndUndo(p) (p)->lpVtbl->ReactivateAndUndo(p)
/*** IOleInPlaceObjectWindowless methods ***/
#define IOleInPlaceObjectWindowless_OnWindowMessage(p,a,b,c,d) (p)->lpVtbl->OnWindowMessage(p,a,b,c,d)
#define IOleInPlaceObjectWindowless_GetDropTarget(p,a) (p)->lpVtbl->GetDropTarget(p,a)
#endif
/*****************************************************************************
* IClassFactory2 interface
*/
#define INTERFACE IClassFactory2
#define IClassFactory2_METHODS \
IClassFactory_METHODS \
STDMETHOD(GetLicInfo)(THIS_ LICINFO *pLicInfo) PURE; \
STDMETHOD(RequestLicKey)(THIS_ DWORD dwReserved, BSTR *pBstrKey) PURE; \
STDMETHOD(CreateInstanceLic)(THIS_ IUnknown *pUnkOuter, IUnknown *pUnkReserved, REFIID riid, BSTR bstrKey, PVOID *ppvObj) PURE;
ICOM_DEFINE(IClassFactory2,IClassFactory)
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IClassFactory2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IClassFactory2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IClassFactory2_Release(p) (p)->lpVtbl->Release(p)
/*** IClassFactory methods ***/
#define IClassFactory2_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
#define IClassFactory2_LockServer(p,a) (p)->lpVtbl->LockServer(p,a)
/*** IClassFactory2 methods ***/
#define IClassFactory2_GetLicInfo(p,a) (p)->lpVtbl->GetLicInfo(p,a)
#define IClassFactory2_RequestLicKey(p,a,b) (p)->lpVtbl->RequestLicKey(p,a,b)
#define IClassFactory2_CreateInstanceLic(p,a,b,c,d,e) (p)->lpVtbl->CreateInstanceLic(p,a,b,c,d,e)
#endif
/*****************************************************************************
* IViewObject interface
*/
#define INTERFACE IViewObjectEx
#define IViewObjectEx_METHODS \
IViewObject2_METHODS \
STDMETHOD(GetRect)(THIS_ DWORD dwAspect, LPRECTL pRect) PURE; \
STDMETHOD(GetViewStatus)(THIS_ DWORD *pdwStatus) PURE; \
STDMETHOD(QueryHitPoint)(THIS_ DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult) PURE; \
STDMETHOD(QueryHitRect)(THIS_ DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult) PURE; \
STDMETHOD(GetNaturalExtent)(THIS_ DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel) PURE;
ICOM_DEFINE(IViewObjectEx,IViewObject2)
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IViewObjectEx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IViewObjectEx_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IViewObjectEx_Release(p) (p)->lpVtbl->Release(p)
/*** IViewObject methods ***/
#define IViewObjectEx_Draw(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Draw(p,a,b,c,d,e,f,g,h,i,j)
#define IViewObjectEx_GetColorSet(p,a,b,c,d,e,f) (p)->lpVtbl->GetColorSet(p,a,b,c,d,e,f)
#define IViewObjectEx_Freeze(p,a,b,c,d) (p)->lpVtbl->Freeze(p,a,b,c,d)
#define IViewObjectEx_Unfreeze(p,a) (p)->lpVtbl->Unfreeze(p,a)
#define IViewObjectEx_SetAdvise(p,a,b,c) (p)->lpVtbl->SetAdvise(p,a,b,c)
#define IViewObjectEx_GetAdvise(p,a,b,c) (p)->lpVtbl->GetAdvise(p,a,b,c)
/*** IViewObject2 methods ***/
#define IViewObjectEx_GetExtent(p,a,b,c,d) (p)->lpVtbl->GetExtent(p,a,b,c,d)
/*** IViewObjectEx methods ***/
#define IViewObjectEx_GetRect(p,a,b) (p)->lpVtbl->GetRect(p,a,b)
#define IViewObjectEx_GetViewStatus(p,a) (p)->lpVtbl->GetViewStatus(p,a)
#define IViewObjectEx_QueryHitPoint(p,a,b,c,d,e) (p)->lpVtbl->QueryHitPoint(p,a,b,c,d,e)
#define IViewObjectEx_QueryHitRect(p,a,b,c,d,e) (p)->lpVtbl->QueryHitRect(p,a,b,c,d,e)
#define IViewObjectEx_GetNaturalExtent(p,a,b,c,d,e,f) (p)->lpVtbl->GetNaturalExtent(p,a,b,c,d,e,f)
#endif
/*****************************************************************************
* IProvideClassInfo interface
*/
#ifdef __WINESRC__
#undef GetClassInfo
#endif
#define INTERFACE IProvideClassInfo
#define IProvideClassInfo_METHODS \
IUnknown_METHODS \
STDMETHOD(GetClassInfo)(THIS_ ITypeInfo **ppTI) PURE;
ICOM_DEFINE(IProvideClassInfo,IUnknown)
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IProvideClassInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IProvideClassInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IProvideClassInfo_Release(p) (p)->lpVtbl->Release(p)
/*** IProvideClassInfo methods ***/
#define IProvideClassInfo_GetClassInfo(p,a) (p)->lpVtbl->GetClassInfo(p,a)
#endif
/*****************************************************************************
* IProvideClassInfo2 interface
*/
#define INTERFACE IProvideClassInfo2
#define IProvideClassInfo2_METHODS \
IProvideClassInfo_METHODS \
STDMETHOD(GetGUID)(THIS_ DWORD dwGuidKind, GUID *pGUID) PURE;
ICOM_DEFINE(IProvideClassInfo2,IProvideClassInfo)
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IProvideClassInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IProvideClassInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IProvideClassInfo2_Release(p) (p)->lpVtbl->Release(p)
/*** IProvideClassInfo methods ***/
#define IProvideClassInfo2_GetClassInfo(p,a) (p)->lpVtbl->GetClassInfo(p,a)
/*** IProvideClassInfo2 methods ***/
#define IProvideClassInfo2_GetGUID(p,a,b) (p)->lpVtbl->GetGUID(p,a,b)
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_WINE_OBJ_CONTROL_H */