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