wine/include/ocidl.idl
2005-10-27 10:19:54 +00:00

1333 lines
32 KiB
Plaintext

/*
* Copyright (C) 1999 Paul Quinn
* Copyright (C) 1999 Francis Beaudet
* Copyright (C) 2003 Alexandre Julliard
*
* 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
*/
import "oleidl.idl";
import "oaidl.idl";
import "servprov.idl";
import "urlmon.idl";
/*****************************************************************************
* IOleControlTypes interface
*/
[
pointer_default(unique)
]
interface IOleControlTypes
{
typedef [v1_enum] enum tagUASFLAGS
{
UAS_NORMAL = 0x0,
UAS_BLOCKED = 0x1,
UAS_NOPARENTABLE = 0x2,
UAS_MASK = 0x3
} UASFLAGS;
typedef enum tagREADYSTATE
{
READYSTATE_UNINITIALIZED = 0,
READYSTATE_LOADING = 1,
READYSTATE_LOADED = 2,
READYSTATE_INTERACTIVE = 3,
READYSTATE_COMPLETE = 4
} READYSTATE;
typedef struct tagVARIANT_BLOB
{
DWORD clSize;
DWORD rpcReserved;
[size_is(clSize-1)] ULONGLONG ahData[];
} wireVARIANT_BLOB;
typedef struct tagUserVARIANT
{
wireVARIANT_BLOB pVarBlob;
} UserVARIANT;
}
/*****************************************************************************
* IFont interface
*/
[
object,
uuid(bef6e002-a874-101a-8bba-00aa00300cab),
pointer_default(unique)
]
interface IFont : IUnknown
{
typedef IFont *LPFONT;
typedef TEXTMETRICW TEXTMETRICOLE, *LPTEXTMETRICOLE;
[propget] HRESULT Name( [out] BSTR *pname);
[propput] HRESULT Name( [in] BSTR name );
[propget] HRESULT Size( [out] CY *psize );
[propput] HRESULT Size( [in] CY size );
[propget] HRESULT Bold( [out] BOOL *pbold );
[propput] HRESULT Bold( [in] BOOL bold );
[propget] HRESULT Italic( [out] BOOL *pitalic );
[propput] HRESULT Italic( [in] BOOL italic );
[propget] HRESULT Underline( [out] BOOL *punderline );
[propput] HRESULT Underline( [in] BOOL underline );
[propget] HRESULT Strikethrough( [out] BOOL *pstrikethrough );
[propput] HRESULT Strikethrough( [in] BOOL strikethrough );
[propget] HRESULT Weight( [out] SHORT *pweight );
[propput] HRESULT Weight( [in] SHORT weight );
[propget] HRESULT Charset( [out] SHORT *pcharset );
[propput] HRESULT Charset( [in] SHORT charset );
[propget] HRESULT hFont( [out] HFONT *phfont );
HRESULT Clone( [out] IFont **ppfont );
HRESULT IsEqual( [in] IFont *pFontOther );
HRESULT SetRatio( [in] LONG cyLogical, [in] LONG cyHimetric );
HRESULT QueryTextMetrics( [out] TEXTMETRICOLE * ptm );
HRESULT AddRefHfont( [in] HFONT hfont );
HRESULT ReleaseHfont( [in] HFONT hfont );
HRESULT SetHdc( [in] HDC hdc );
}
/*****************************************************************************
* IFontDisp interface
*/
[
object,
uuid(bef6e003-a874-101a-8bba-00aa00300cab),
pointer_default(unique)
]
interface IFontDisp : IDispatch
{
typedef IFontDisp *LPFONTDISP;
}
/*****************************************************************************
* IFontEventsDisp interface
*/
[
object,
uuid(4ef6100a-af88-11d0-9846-00c04fc29993),
pointer_default(unique)
]
interface IFontEventsDisp : IDispatch
{
typedef IFontEventsDisp *LPFONTEVENTS;
}
/*****************************************************************************
* IPicture interface
*/
[
object,
uuid(7bf80980-bf32-101a-8bbb-00aa00300cab),
pointer_default(unique)
]
interface IPicture : IUnknown
{
typedef IPicture *LPPICTURE;
typedef enum tagPicture
{
PICTURE_SCALABLE = 0x1,
PICTURE_TRANSPARENT = 0x2
} PICTUREATTRIBUTES;
typedef UINT OLE_HANDLE;
typedef LONG OLE_XPOS_HIMETRIC;
typedef LONG OLE_YPOS_HIMETRIC;
typedef LONG OLE_XSIZE_HIMETRIC;
typedef LONG OLE_YSIZE_HIMETRIC;
[propget] HRESULT Handle( [out] OLE_HANDLE *pHandle );
[propget] HRESULT hPal( [out] OLE_HANDLE *phPal );
[propget] HRESULT Type( [out] SHORT *pType );
[propget] HRESULT Width( [out] OLE_XSIZE_HIMETRIC *pWidth );
[propget] HRESULT Height( [out] OLE_YSIZE_HIMETRIC *pHeight );
HRESULT Render(
[in] HDC hdc,
[in] LONG x,
[in] LONG y,
[in] LONG cx,
[in] LONG cy,
[in] OLE_XPOS_HIMETRIC xSrc,
[in] OLE_YPOS_HIMETRIC ySrc,
[in] OLE_XSIZE_HIMETRIC cxSrc,
[in] OLE_YSIZE_HIMETRIC cySrc,
[in] LPCRECT pRcWBounds);
HRESULT set_hPal( [in] OLE_HANDLE hPal );
[propget] HRESULT CurDC( [out] HDC *phDC );
HRESULT SelectPicture(
[in] HDC hDCIn,
[out] HDC * phDCOut,
[out] OLE_HANDLE * phBmpOut);
[propget] HRESULT KeepOriginalFormat( [out] BOOL *pKeep );
[propput] HRESULT KeepOriginalFormat( [in] BOOL keep );
HRESULT PictureChanged();
HRESULT SaveAsFile(
[in] LPSTREAM pStream,
[in] BOOL fSaveMemCopy,
[out] LONG *pCbSize);
[propget] HRESULT Attributes( [out] DWORD *pDwAttr );
}
/*****************************************************************************
* IPictureDisp interface
*/
[
object,
uuid(7bf80981-bf32-101a-8bbb-00aa00300cab),
pointer_default(unique)
]
interface IPictureDisp : IDispatch
{
typedef IPictureDisp *LPPICTUREDISP;
}
/*****************************************************************************
* IOleControl interface
*/
[
object,
uuid(b196b288-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IOleControl : IUnknown
{
typedef IOleControl *LPOLECONTROL;
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;
HRESULT GetControlInfo( [out] CONTROLINFO *pCI );
HRESULT OnMnemonic( [in] MSG *pMsg );
HRESULT OnAmbientPropertyChange( [in] DISPID dispID );
HRESULT FreezeEvents( [in] BOOL bFreeze );
}
/*****************************************************************************
* IOleControlSite interface
*/
[
object,
uuid(b196b289-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IOleControlSite : IUnknown
{
typedef IOleControlSite *LPOLECONTROLSITE;
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_EVENTCOMPAT = 0x10
} XFORMCOORDS;
HRESULT OnControlInfoChanged();
HRESULT LockInPlaceActive( [in] BOOL fLock );
HRESULT GetExtendedControl( [out] IDispatch ** ppDisp );
HRESULT TransformCoords(
[in, out] POINTL *pPtlHimetric,
[in, out] POINTF *pPtfContainer,
[in] DWORD dwFlags);
HRESULT TranslateAccelerator( [in] MSG *pMsg, [in] DWORD grfModifiers );
HRESULT OnFocus( [in] BOOL fGotFocus );
HRESULT ShowPropertyFrame();
}
/*****************************************************************************
* IOleInPlaceSiteEx interface
*/
[
object,
uuid(9c2cad80-3424-11cf-b670-00aa004cd6d8),
pointer_default(unique)
]
interface IOleInPlaceSiteEx : IOleInPlaceSite
{
typedef IOleInPlaceSiteEx *LPOLEINPLACESITEEX;
typedef enum tagACTIVATEFLAGS
{
ACTIVATE_WINDOWLESS = 1
} ACTIVATE_FLAGS;
HRESULT OnInPlaceActivateEx( [out] BOOL * pfNoRedraw, [in] DWORD dwFlags );
HRESULT OnInPlaceDeactivateEx( [in] BOOL fNoRedraw );
HRESULT RequestUIActivate();
}
/*****************************************************************************
* IOleInPlaceSiteWindowless interface
*/
[
local,
object,
uuid(922eada0-3424-11cf-b670-00aa004cd6d8),
pointer_default(unique)
]
interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx
{
typedef IOleInPlaceSiteWindowless *LPOLEINPLACESITEWINDOWLESS;
typedef enum tagOLEDCFLAGS
{
OLEDC_NODRAW = 0x1,
OLEDC_PAINTBKGND = 0x2,
OLEDC_OFFSCREEN = 0x4
} OLEDCFLAGS;
HRESULT CanWindowlessActivate();
HRESULT GetCapture();
HRESULT SetCapture( [in] BOOL fCapture );
HRESULT GetFocus();
HRESULT SetFocus( [in] BOOL fFocus );
HRESULT GetDC(
[in] LPCRECT pRect,
[in] DWORD grfFlags,
[out] HDC *phDC);
HRESULT ReleaseDC( [in] HDC hDC );
HRESULT InvalidateRect(
[in] LPCRECT pRect,
[in] BOOL fErase);
HRESULT InvalidateRgn(
[in] HRGN hRGN,
[in] BOOL fErase);
HRESULT ScrollRect(
[in] INT dx,
[in] INT dy,
[in] LPCRECT pRectScroll,
[in] LPCRECT pRectClip);
HRESULT AdjustRect( [in, out] LPRECT prc );
HRESULT OnDefWindowMessage(
[in] UINT msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[out] LRESULT *plResult);
}
/*****************************************************************************
* IOleInPlaceObjectWindowless interface
*/
[
local,
object,
uuid(1c2056cc-5ef4-101b-8bc8-00aa003e3b29),
pointer_default(unique)
]
interface IOleInPlaceObjectWindowless : IOleInPlaceObject
{
typedef IOleInPlaceObjectWindowless *LPOLEINPLACEOBJECTWINDOWLESS;
HRESULT OnWindowMessage(
[in] UINT msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[out] LRESULT *plResult);
HRESULT GetDropTarget( [out] IDropTarget **ppDropTarget );
}
/*****************************************************************************
* IClassFactory2 interface
*/
[
object,
uuid(b196b28f-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IClassFactory2 : IClassFactory
{
typedef IClassFactory2 *LPCLASSFACTORY2;
typedef struct tagLICINFO
{
LONG cbLicInfo;
BOOL fRuntimeKeyAvail;
BOOL fLicVerified;
} LICINFO, *LPLICINFO;
HRESULT GetLicInfo( [out] LICINFO *pLicInfo );
HRESULT RequestLicKey(
[in] DWORD dwReserved,
[out] BSTR *pBstrKey);
[local]
HRESULT CreateInstanceLic(
[in] IUnknown *pUnkOuter,
[in] IUnknown *pUnkReserved,
[in] REFIID riid,
[in] BSTR bstrKey,
[out, iid_is(riid)] PVOID *ppvObj);
[call_as(CreateInstanceLic)]
HRESULT RemoteCreateInstanceLic(
[in] REFIID riid,
[in] BSTR bstrKey,
[out, iid_is(riid)] IUnknown **ppvObj);
}
/*****************************************************************************
* IViewObject interface
*/
[
local,
object,
uuid(3af24292-0c96-11ce-a0cf-00aa00600ab8),
pointer_default(unique)
]
interface IViewObjectEx : IViewObject2
{
typedef IViewObjectEx *LPVIEWOBJECTEX;
typedef enum tagVIEWSTATUS
{
VIEWSTATUS_OPAQUE = 1,
VIEWSTATUS_SOLIDBKGND = 2,
VIEWSTATUS_DVASPECTOPAQUE = 4,
VIEWSTATUS_DVASPECTTRANSPARENT = 8,
VIEWSTATUS_SURFACE = 16,
VIEWSTATUS_3DSURFACE = 32
} VIEWSTATUS;
typedef enum tagHITRESULT
{
HITRESULT_OUTSIDE = 0,
HITRESULT_TRANSPARENT = 1,
HITRESULT_CLOSE = 2,
HITRESULT_HIT = 3
} HITRESULT;
typedef enum tagDVASPECT2
{
DVASPECT_OPAQUE = 16,
DVASPECT_TRANSPARENT = 32
} DVASPECT2;
typedef struct tagExtentInfo
{
ULONG cb;
DWORD dwExtentMode;
SIZEL sizelProposed;
} DVEXTENTINFO;
typedef enum tagAspectInfoFlag
{
DVASPECTINFOFLAG_CANOPTIMIZE = 1
} DVASPECTINFOFLAG;
typedef struct tagAspectInfo
{
ULONG cb;
DWORD dwFlags;
} DVASPECTINFO;
HRESULT GetRect(
[in] DWORD dwAspect,
[out] LPRECTL pRect);
HRESULT GetViewStatus( [out] DWORD *pdwStatus );
HRESULT QueryHitPoint(
[in] DWORD dwAspect,
[in] LPCRECT pRectBounds,
[in] POINT ptlLoc,
[in] LONG lCloseHint,
[out] DWORD *pHitResult);
HRESULT QueryHitRect(
[in] DWORD dwAspect,
[in] LPCRECT pRectBounds,
[in] LPCRECT pRectLoc,
[in] LONG lCloseHint,
[out] DWORD *pHitResult);
HRESULT GetNaturalExtent (
[in] DWORD dwAspect,
[in] LONG lindex,
[in] DVTARGETDEVICE *ptd,
[in] HDC hicTargetDev,
[in] DVEXTENTINFO *pExtentInfo,
[out] LPSIZEL pSizel);
}
/*****************************************************************************
* IProvideClassInfo interface
*/
[
object,
uuid(b196b283-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IProvideClassInfo : IUnknown
{
typedef IProvideClassInfo *LPPROVIDECLASSINFO;
cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
cpp_quote("#undef GetClassInfo")
cpp_quote("#endif")
HRESULT GetClassInfo( [out] ITypeInfo ** ppTI );
}
/*****************************************************************************
* IProvideClassInfo2 interface
*/
[
object,
uuid(a6bc3ac0-dbaa-11ce-9de3-00aa004bb851),
pointer_default(unique)
]
interface IProvideClassInfo2 : IProvideClassInfo
{
typedef IProvideClassInfo2 *LPPROVIDECLASSINFO2;
typedef enum tagGUIDKIND
{
GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1
} GUIDKIND;
HRESULT GetGUID(
[in] DWORD dwGuidKind,
[out] GUID *pGUID );
}
[
object,
uuid(a7aba9c1-8983-11cf-8f20-00805f2cd064),
pointer_default(unique)
]
interface IProvideMultipleClassInfo : IProvideClassInfo2
{
cpp_quote("#define MULTICLASSINFO_GETTYPEINFO 0x00000001")
cpp_quote("#define MULTICLASSINFO_GETNUMRESERVEDDISPIDS 0x00000002")
cpp_quote("#define MULTICLASSINFO_GETIIDPRIMARY 0x00000004")
cpp_quote("#define MULTICLASSINFO_GETIIDSOURCE 0x00000008")
cpp_quote("#define TIFLAGS_EXTENDDISPATCHONLY 0x00000001")
typedef IProvideMultipleClassInfo *LPPROVIDEMULTIPLECLASSINFO;
HRESULT GetMultiTypeInfoCount(
[out] ULONG *pcti);
HRESULT GetInfoOfIndex(
[in] ULONG iti,
[in] DWORD dwFlags,
[out] ITypeInfo **pptiCoClass,
[out] DWORD *pdwTIFlags,
[out] ULONG *pcdispidReserved,
[out] IID *piidPrimary,
[out] IID *piidSource);
}
/*****************************************************************************
* IConnectionPoint interface
*/
interface IConnectionPointContainer; /* forward declarations */
interface IEnumConnections;
[
object,
uuid(b196b286-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IConnectionPoint : IUnknown
{
typedef IConnectionPoint *PCONNECTIONPOINT, *LPCONNECTIONPOINT;
HRESULT GetConnectionInterface( [out] IID *pIID );
HRESULT GetConnectionPointContainer( [out] IConnectionPointContainer **ppCPC );
HRESULT Advise( [in] IUnknown *pUnkSink, [out] DWORD *pdwCookie );
HRESULT Unadvise( [in] DWORD dwCookie );
HRESULT EnumConnections( [out] IEnumConnections **ppEnum );
}
/*****************************************************************************
* IConnectionPointContainer interface
*/
interface IEnumConnectionPoints; /* forward declaration */
[
object,
uuid(b196b284-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IConnectionPointContainer : IUnknown
{
typedef IConnectionPointContainer *PCONNECTIONPOINTCONTAINER, *LPCONNECTIONPOINTCONTAINER;
HRESULT EnumConnectionPoints( [out] IEnumConnectionPoints **ppEnum );
HRESULT FindConnectionPoint( [in] REFIID riid, [out] IConnectionPoint **ppCP );
}
/*****************************************************************************
* IEnumConnections interface
*/
[
object,
uuid(b196b287-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IEnumConnections : IUnknown
{
typedef IEnumConnections *PENUMCONNECTIONS, *LPENUMCONNECTIONS;
typedef struct tagCONNECTDATA
{
IUnknown *pUnk;
DWORD dwCookie;
} CONNECTDATA, *PCONNECTDATA, *LPCONNECTDATA;
[local]
HRESULT Next(
[in] ULONG cConnections,
[out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTDATA rgcd,
[out] ULONG *pcFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG cConnections,
[out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTDATA rgcd,
[out] ULONG *pcFetched);
HRESULT Skip( [in] ULONG cConnections );
HRESULT Reset();
HRESULT Clone( [out] IEnumConnections **ppEnum );
}
/*****************************************************************************
* IEnumConnectionPoints interface
*/
[
object,
uuid(b196b285-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IEnumConnectionPoints : IUnknown
{
typedef IEnumConnectionPoints *PENUMCONNECTIONPOINTS, *LPENUMCONNECTIONPOINTS;
[local]
HRESULT Next(
[in] ULONG cConnections,
[out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTIONPOINT *ppCP,
[out] ULONG *pcFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG cConnections,
[out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTIONPOINT *ppCP,
[out] ULONG *pcFetched);
HRESULT Skip( [in] ULONG cConnections );
HRESULT Reset();
HRESULT Clone( [out] IEnumConnectionPoints **ppEnum );
}
/*****************************************************************************
* IPropertyPage interface
*/
interface IPropertyPageSite; /* forward declaration */
[
object,
uuid(b196b28d-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IPropertyPage : IUnknown
{
typedef IPropertyPage *LPPROPERTYPAGE;
typedef struct tagPROPPAGEINFO
{
ULONG cb;
LPOLESTR pszTitle;
SIZE size;
LPOLESTR pszDocString;
LPOLESTR pszHelpFile;
DWORD dwHelpContext;
} PROPPAGEINFO, *LPPROPPAGEINFO;
HRESULT SetPageSite( [in] IPropertyPageSite *pPageSite );
HRESULT Activate(
[in] HWND hWndParent,
[in] LPCRECT pRect,
[in] BOOL bModal);
HRESULT Deactivate();
HRESULT GetPageInfo( [out] PROPPAGEINFO *pPageInfo );
HRESULT SetObjects(
[in] ULONG cObjects,
[in, size_is(cObjects)] IUnknown **ppUnk);
HRESULT Show( [in] UINT nCmdShow );
HRESULT Move( [in] LPCRECT pRect );
HRESULT IsPageDirty();
HRESULT Apply();
HRESULT Help( [in] LPCOLESTR pszHelpDir );
HRESULT TranslateAccelerator( [in] MSG *pMsg );
}
/*****************************************************************************
* IPropertyPage2 interface
*/
[
object,
uuid(01e44665-24ac-101b-84ed-08002b2ec713),
pointer_default(unique)
]
interface IPropertyPage2 : IPropertyPage
{
typedef IPropertyPage2 *LPPROPERTYPAGE2;
HRESULT EditProperty( [in] DISPID dispID );
}
/*****************************************************************************
* IPropertyPageSite interface
*/
[
object,
uuid(b196b28c-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface IPropertyPageSite : IUnknown
{
typedef IPropertyPageSite *LPPROPERTYPAGESITE;
typedef enum tagPROPPAGESTATUS
{
PROPPAGESTATUS_DIRTY = 0x1,
PROPPAGESTATUS_VALIDATE = 0x2,
PROPPAGESTATUS_CLEAN = 0x4
} PROPPAGESTATUS;
HRESULT OnStatusChange( [in] DWORD dwFlags );
HRESULT GetLocaleID( [out] LCID *pLocaleID );
HRESULT GetPageContainer( [out] IUnknown **ppUnk );
HRESULT TranslateAccelerator( [in] MSG *pMsg );
}
/*****************************************************************************
* IPropertyNotifySink interface
*/
[
object,
uuid(9bfbbc02-eff1-101a-84ed-00aa00341d07),
pointer_default(unique)
]
interface IPropertyNotifySink : IUnknown
{
typedef IPropertyNotifySink *LPPROPERTYNOTIFYSINK;
HRESULT OnChanged( [in] DISPID dispID );
HRESULT OnRequestEdit( [in] DISPID dispID );
}
/*****************************************************************************
* ISimpleFrameSite interface
*/
[
object,
uuid(742b0e01-14e6-101b-914e-00aa00300cab),
pointer_default(unique)
]
interface ISimpleFrameSite : IUnknown
{
typedef ISimpleFrameSite *LPSIMPLEFRAMESITE;
HRESULT PreMessageFilter(
[in] HWND hWnd,
[in] UINT msg,
[in] WPARAM wp,
[in] LPARAM lp,
[out] LRESULT *plResult,
[out] DWORD *pdwCookie);
HRESULT PostMessageFilter(
[in] HWND hWnd,
[in] UINT msg,
[in] WPARAM wp,
[in] LPARAM lp,
[out] LRESULT *plResult,
[in] DWORD dwCookie);
}
/*****************************************************************************
* IPersistStreamInit interface
*/
[
object,
uuid(7fd52380-4e07-101b-ae2d-08002b2ec713),
pointer_default(unique)
]
interface IPersistStreamInit : IPersist
{
typedef IPersistStreamInit *LPPERSISTSTREAMINIT;
HRESULT IsDirty();
HRESULT Load( [in] LPSTREAM pStm );
HRESULT Save( [in] LPSTREAM pStm, [in] BOOL fClearDirty );
HRESULT GetSizeMax( [out] ULARGE_INTEGER *pcbSize );
HRESULT InitNew();
}
/*****************************************************************************
* IPersistMemory interface
*/
[
object,
uuid(bd1ae5e0-a6ae-11ce-bd37-504200c10000),
pointer_default(unique)
]
interface IPersistMemory : IPersist
{
typedef IPersistMemory *LPPERSISTMEMORY;
HRESULT IsDirty();
[local]
HRESULT Load(
[in, size_is(cbSize)] LPVOID pMem,
[in] ULONG cbSize);
[call_as(Load)]
HRESULT RemoteLoad(
[in, size_is(cbSize)] BYTE *pMem,
[in] ULONG cbSize);
[local]
HRESULT Save(
[out, size_is(cbSize)] LPVOID pMem,
[in] BOOL fClearDirty,
[in] ULONG cbSize);
[call_as(Save)]
HRESULT RemoteSave(
[out, size_is(cbSize)] BYTE *pMem,
[in] BOOL fClearDirty,
[in] ULONG cbSize);
HRESULT GetSizeMax( [out] ULONG *pCbSize );
HRESULT InitNew();
}
/*****************************************************************************
* IPersistPropertyBag interface
*/
[
object,
uuid(37d84f60-42cb-11ce-8135-00aa004bb851),
pointer_default(unique)
]
interface IPersistPropertyBag : IPersist
{
typedef IPersistPropertyBag *LPPERSISTPROPERTYBAG;
HRESULT InitNew();
HRESULT Load(
[in] IPropertyBag *pPropBag,
[in] IErrorLog *pErrorLog);
HRESULT Save(
[in] IPropertyBag *pPropBag,
[in] BOOL fClearDirty,
[in] BOOL fSaveAllProperties);
}
/*****************************************************************************
* IPropertyBag2 interface
*/
[
object,
uuid(22f55882-280b-11d0-a8a9-00a0c90c2004),
pointer_default(unique)
]
interface IPropertyBag2 : IUnknown
{
typedef IPropertyBag2 *LPPROPERTYBAG2;
typedef enum tagPROPBAG2_TYPE
{
PROPBAG2_TYPE_UNDEFINED = 0,
PROPBAG2_TYPE_DATA = 1,
PROPBAG2_TYPE_URL = 2,
PROPBAG2_TYPE_OBJECT = 3,
PROPBAG2_TYPE_STREAM = 4,
PROPBAG2_TYPE_STORAGE = 5,
PROPBAG2_TYPE_MONIKER = 6
} PROPBAG2_TYPE;
typedef struct tagPROPBAG2
{
DWORD dwType;
VARTYPE vt;
CLIPFORMAT cfType;
DWORD dwHint;
LPOLESTR pstrName;
CLSID clsid;
} PROPBAG2;
HRESULT Read(
[in] ULONG cProperties,
[in] PROPBAG2 *pPropBag,
[in] IErrorLog *pErrLog,
[out] VARIANT *pvarValue,
[out] HRESULT *phrError);
HRESULT Write(
[in] ULONG cProperties,
[in] PROPBAG2 *pPropBag,
[in] VARIANT *pvarValue);
HRESULT CountProperties(
[out] ULONG *pcProperties );
HRESULT GetPropertyInfo(
[in] ULONG iProperty,
[in] ULONG cProperties,
[out] PROPBAG2 *pPropBag,
[out] ULONG *pcProperties);
HRESULT LoadObject(
[in] LPCOLESTR pstrName,
[in] DWORD dwHint,
[in] IUnknown *pUnkObject,
[in] IErrorLog *pErrLog);
}
/*****************************************************************************
* IPersistPropertyBag2 interface
*/
[
object,
uuid(22f55881-280b-11d0-a8a9-00a0c90c2004),
pointer_default(unique)
]
interface IPersistPropertyBag2 : IPersist
{
typedef IPersistPropertyBag2 *LPPERSISTPROPERTYBAG2;
HRESULT InitNew();
HRESULT Load(
[in] IPropertyBag2 *pPropBag,
[in] IErrorLog *pErrorLog);
HRESULT Save(
[in] IPropertyBag2 *pPropBag,
[in] BOOL fClearDirty,
[in] BOOL fSaveAllProperties);
HRESULT IsDirty();
}
/*****************************************************************************
* ISpecifyPropertyPages interface
*/
[
object,
uuid(b196b28b-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]
interface ISpecifyPropertyPages : IUnknown
{
typedef ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES;
typedef struct tagCAUUID
{
ULONG cElems;
[size_is(cElems)] GUID *pElems;
} CAUUID, *LPCAUUID;
HRESULT GetPages( [out] CAUUID *pPages );
}
/*****************************************************************************
* IPerPropertyBrowsing interface
*/
[
object,
uuid(376bd3aa-3845-101b-84ed-08002b2ec713),
pointer_default(unique)
]
interface IPerPropertyBrowsing : IUnknown
{
typedef IPerPropertyBrowsing *LPPERPROPERTYBROWSING;
typedef struct tagCALPOLESTR
{
ULONG cElems;
[size_is(cElems)] LPOLESTR *pElems;
} CALPOLESTR, *LPCALPOLESTR;
typedef struct tagCADWORD
{
ULONG cElems;
[size_is(cElems)] DWORD *pElems;
} CADWORD, *LPCADWORD;
HRESULT GetDisplayString(
[in] DISPID dispID,
[out] BSTR *pBstr);
HRESULT MapPropertyToPage(
[in] DISPID dispID,
[out] CLSID *pClsid);
HRESULT GetPredefinedStrings(
[in] DISPID dispID,
[out] CALPOLESTR *pCaStringsOut,
[out] CADWORD *pCaCookiesOut);
HRESULT GetPredefinedValue(
[in] DISPID dispID,
[in] DWORD dwCookie,
[out] VARIANT *pVarOut);
}
/*****************************************************************************
* IAdviseSinkEx interface
*/
[
object,
uuid(3af24290-0c96-11ce-a0cf-00aa00600ab8),
pointer_default(unique)
]
interface IAdviseSinkEx : IAdviseSink
{
typedef IAdviseSinkEx *LPADVISESINKEX;
[local]
void OnViewStatusChange( [in] DWORD dwViewStatus );
[call_as(OnViewStatusChange)]
HRESULT RemoteOnViewStatusChange( [in] DWORD dwViewStatus );
}
/*****************************************************************************
* IPointerInactive interface
*/
[
object,
uuid(55980ba0-35aa-11cf-b671-00aa004cd6d8),
pointer_default(unique)
]
interface IPointerInactive : IUnknown
{
typedef IPointerInactive *LPPOINTERINACTIVE;
HRESULT GetActivationPolicy(
[out] DWORD *pdwPolicy);
HRESULT OnInactiveMouseMove(
[in] LPCRECT pRectBounds,
[in] LONG x,
[in] LONG y,
[in] DWORD grfKeyState);
HRESULT OnInactiveSetCursor(
[in] LPCRECT pRectBounds,
[in] LONG x,
[in] LONG y,
[in] DWORD dwMouseMsg,
[in] BOOL fSetAlways);
}
/*****************************************************************************
* IObjectWithSite interface
*/
[
object,
uuid(fc4801a3-2ba9-11cf-a229-00aa003d7352),
pointer_default(unique)
]
interface IObjectWithSite : IUnknown
{
typedef IObjectWithSite *LPOBJECTWITHSITE;
HRESULT SetSite(
[in] IUnknown * pUnkSite);
HRESULT GetSite(
[in] REFIID riid,
[out, iid_is(riid)] PVOID *ppvSite);
}
/*****************************************************************************
* IOleUndoUnit interface
*/
interface IOleUndoManager; /* forward declaration */
[
object,
uuid(894ad3b0-ef97-11ce-9bc9-00aa00608e01),
pointer_default(unique)
]
interface IOleUndoUnit : IUnknown
{
typedef IOleUndoUnit *LPOLEUNDOUNIT;
HRESULT Do( [in] IOleUndoManager *pUndoManager );
HRESULT GetDescription( [out] BSTR *pBstr );
HRESULT GetUnitType( [out] CLSID *pClsid, [out] LONG *plID );
HRESULT OnNextAdd();
}
/*****************************************************************************
* IOleParentUndoUnit interface
*/
[
object,
uuid(a1faf330-ef97-11ce-9bc9-00aa00608e01),
pointer_default(unique)
]
interface IOleParentUndoUnit : IOleUndoUnit
{
typedef IOleParentUndoUnit *LPOLEPARENTUNDOUNIT;
HRESULT Open( [in] IOleParentUndoUnit *pPUU );
HRESULT Close( [in] IOleParentUndoUnit *pPUU, [in] BOOL fCommit );
HRESULT Add( [in] IOleUndoUnit *pUU );
HRESULT FindUnit( [in] IOleUndoUnit *pUU );
HRESULT GetParentState( [out] DWORD *pdwState );
}
/*****************************************************************************
* IEnumOleUndoUnits interface
*/
[
object,
uuid(b3e7c340-ef97-11ce-9bc9-00aa00608e01),
pointer_default(unique)
]
interface IEnumOleUndoUnits : IUnknown
{
typedef IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
[local]
HRESULT Next(
[in] ULONG cElt,
[out, size_is(cElt), length_is(*pcEltFetched)] IOleUndoUnit **rgElt,
[out] ULONG *pcEltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG cElt,
[out, size_is(cElt), length_is(*pcEltFetched)] IOleUndoUnit **rgElt,
[out] ULONG *pcEltFetched);
HRESULT Skip( [in] ULONG cElt );
HRESULT Reset();
HRESULT Clone( [out] IEnumOleUndoUnits **ppEnum );
}
/*****************************************************************************
* IOleUndoManager interface
*/
[
object,
uuid(d001f200-ef97-11ce-9bc9-00aa00608e01),
pointer_default(unique)
]
interface IOleUndoManager : IUnknown
{
typedef IOleUndoManager *LPOLEUNDOMANAGER;
HRESULT Open( [in] IOleParentUndoUnit *pPUU );
HRESULT Close( [in] IOleParentUndoUnit *pPUU, [in] BOOL fCommit );
HRESULT Add( [in] IOleUndoUnit *pUU );
HRESULT GetOpenParentState( [out] DWORD *pdwState );
HRESULT DiscardFrom( [in] IOleUndoUnit *pUU );
HRESULT UndoTo( [in] IOleUndoUnit *pUU );
HRESULT RedoTo( [in] IOleUndoUnit *pUU );
HRESULT EnumUndoable( [out] IEnumOleUndoUnits **ppEnum );
HRESULT EnumRedoable( [out] IEnumOleUndoUnits **ppEnum );
HRESULT GetLastUndoDescription( [out] BSTR *pBstr );
HRESULT GetLastRedoDescription( [out] BSTR *pBstr );
HRESULT Enable( [in] BOOL fEnable );
}
/*****************************************************************************
* IQuickActivate interface
*/
[
object,
uuid(cf51ed10-62fe-11cf-bf86-00a0c9034836),
pointer_default(unique)
]
interface IQuickActivate : IUnknown
{
typedef IQuickActivate *LPQUICKACTIVATE;
typedef enum tagQACONTAINERFLAGS
{
QACONTAINER_SHOWHATCHING = 0x1,
QACONTAINER_SHOWGRABHANDLES = 0x2,
QACONTAINER_USERMODE = 0x4,
QACONTAINER_DISPLAYASDEFAULT = 0x8,
QACONTAINER_UIDEAD = 0x10,
QACONTAINER_AUTOCLIP = 0x20,
QACONTAINER_MESSAGEREFLECT = 0x40,
QACONTAINER_SUPPORTSMNEMONICS = 0x80
} QACONTAINERFLAGS;
typedef DWORD OLE_COLOR;
typedef struct tagQACONTAINER
{
ULONG cbSize;
IOleClientSite *pClientSite;
IAdviseSinkEx *pAdviseSink;
IPropertyNotifySink *pPropertyNotifySink;
IUnknown *pUnkEventSink;
DWORD dwAmbientFlags;
OLE_COLOR colorFore;
OLE_COLOR colorBack;
IFont *pFont;
IOleUndoManager *pUndoMgr;
DWORD dwAppearance;
LONG lcid;
HPALETTE hpal;
IBindHost *pBindHost;
IOleControlSite *pOleControlSite;
IServiceProvider *pServiceProvider;
} QACONTAINER;
typedef struct tagQACONTROL
{
ULONG cbSize;
DWORD dwMiscStatus;
DWORD dwViewStatus;
DWORD dwEventCookie;
DWORD dwPropNotifyCookie;
DWORD dwPointerActivationPolicy;
} QACONTROL;
[local]
HRESULT QuickActivate(
[in] QACONTAINER *pQaContainer,
[in,out] QACONTROL *pQaControl);
[call_as(QuickActivate)]
HRESULT RemoteQuickActivate(
[in] QACONTAINER *pQaContainer,
[out] QACONTROL *pQaControl);
HRESULT SetContentExtent( [in] LPSIZEL pSizel );
HRESULT GetContentExtent( [out] LPSIZEL pSizel );
}