| /* | 
 |  * 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 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; | 
 | } | 
 |  | 
 |  | 
 | /***************************************************************************** | 
 |  * 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 ); | 
 | } | 
 |  | 
 |  | 
 | /***************************************************************************** | 
 |  * 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 ); | 
 | } |