/* * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef DO_NO_IMPORTS import "oleidl.idl"; import "oaidl.idl"; import "servprov.idl"; import "urlmon.idl"; #endif /***************************************************************************** * 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 { cpp_quote("#define SID_SOleUndoManager IID_IOleUndoManager") 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 ); }