|  | /* | 
|  | * 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 "objidl.idl"; | 
|  | #endif | 
|  |  | 
|  | interface IOleInPlaceActiveObject; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleTypes interface | 
|  | */ | 
|  | [ | 
|  | uuid(b0916c84-7416-101a-bcea-08002b2b79ef) | 
|  | ] | 
|  | interface IOLETypes | 
|  | { | 
|  | typedef enum tagOLERENDER | 
|  | { | 
|  | OLERENDER_NONE = 0, | 
|  | OLERENDER_DRAW = 1, | 
|  | OLERENDER_FORMAT = 2, | 
|  | OLERENDER_ASIS = 3 | 
|  | } OLERENDER, *LPOLERENDER; | 
|  |  | 
|  | typedef struct tagOBJECTDESCRIPTOR | 
|  | { | 
|  | ULONG cbSize; | 
|  | CLSID clsid; | 
|  | DWORD dwDrawAspect; | 
|  | SIZEL sizel; | 
|  | POINTL pointl; | 
|  | DWORD dwStatus; | 
|  | DWORD dwFullUserTypeName; | 
|  | DWORD dwSrcOfCopy; | 
|  | } OBJECTDESCRIPTOR,  *POBJECTDESCRIPTOR,   *LPOBJECTDESCRIPTOR, | 
|  | LINKSRCDESCRIPTOR, *PLINKSRCDESCRIPTOR,  *LPLINKSRCDESCRIPTOR; | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleWindow interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000114-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleWindow : IUnknown | 
|  | { | 
|  | typedef [unique] IOleWindow *LPOLEWINDOW; | 
|  |  | 
|  | HRESULT GetWindow( | 
|  | [out] HWND *phwnd); | 
|  |  | 
|  | HRESULT ContextSensitiveHelp( | 
|  | [in] BOOL fEnterMode); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleInPlaceObject interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000113-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleInPlaceObject : IOleWindow | 
|  | { | 
|  | typedef [unique] IOleInPlaceObject *LPOLEINPLACEOBJECT; | 
|  |  | 
|  | HRESULT InPlaceDeactivate(); | 
|  |  | 
|  | HRESULT UIDeactivate(); | 
|  |  | 
|  | HRESULT SetObjectRects( | 
|  | [in] LPCRECT lprcPosRect, | 
|  | [in] LPCRECT lprcClipRect); | 
|  |  | 
|  | HRESULT ReactivateAndUndo(); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleInPlaceUIWindow interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000115-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  |  | 
|  | interface IOleInPlaceUIWindow : IOleWindow | 
|  | { | 
|  | typedef [unique] IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW; | 
|  |  | 
|  | typedef RECT BORDERWIDTHS; | 
|  | typedef LPRECT LPBORDERWIDTHS; | 
|  | typedef LPCRECT LPCBORDERWIDTHS; | 
|  |  | 
|  | HRESULT GetBorder( | 
|  | [out] LPRECT lprectBorder); | 
|  |  | 
|  | HRESULT RequestBorderSpace( | 
|  | [in, unique] LPCBORDERWIDTHS pborderwidths); | 
|  |  | 
|  | HRESULT SetBorderSpace( | 
|  | [in, unique] LPCBORDERWIDTHS pborderwidths); | 
|  |  | 
|  | HRESULT SetActiveObject( | 
|  | [in, unique] IOleInPlaceActiveObject *pActiveObject, | 
|  | [in, string, unique] LPCOLESTR pszObjName); | 
|  | } | 
|  |  | 
|  |  | 
|  | /* avoid conflict with Wine Unicode macros */ | 
|  | cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") | 
|  | cpp_quote("#undef TranslateAccelerator") | 
|  | cpp_quote("#endif") | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleInPlaceFrame interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000116-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleInPlaceFrame : IOleInPlaceUIWindow | 
|  | { | 
|  | typedef [unique] IOleInPlaceFrame *LPOLEINPLACEFRAME; | 
|  |  | 
|  | typedef struct tagOleInPlaceFrameInfo | 
|  | { | 
|  | UINT cb; | 
|  | BOOL fMDIApp; | 
|  | HWND hwndFrame; | 
|  | HACCEL haccel; | 
|  | UINT cAccelEntries; | 
|  | } OLEINPLACEFRAMEINFO, *LPOLEINPLACEFRAMEINFO; | 
|  |  | 
|  | typedef struct  tagOleMenuGroupWidths | 
|  | { | 
|  | LONG width[ 6 ]; | 
|  | } OLEMENUGROUPWIDTHS, *LPOLEMENUGROUPWIDTHS; | 
|  |  | 
|  | typedef HGLOBAL HOLEMENU; | 
|  |  | 
|  | HRESULT InsertMenus( | 
|  | [in] HMENU hmenuShared, | 
|  | [in,out] LPOLEMENUGROUPWIDTHS lpMenuWidths); | 
|  |  | 
|  | HRESULT SetMenu( | 
|  | [in] HMENU hmenuShared, | 
|  | [in] HOLEMENU holemenu, | 
|  | [in] HWND hwndActiveObject); | 
|  |  | 
|  | HRESULT RemoveMenus( | 
|  | [in] HMENU hmenuShared); | 
|  |  | 
|  | HRESULT SetStatusText( | 
|  | [in, unique] LPCOLESTR pszStatusText); | 
|  |  | 
|  | HRESULT EnableModeless( | 
|  | [in] BOOL fEnable); | 
|  |  | 
|  | HRESULT TranslateAccelerator( | 
|  | [in] LPMSG lpmsg, | 
|  | [in] WORD wID); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleInPlaceActiveObject interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000117-0000-0000-c000-000000000046) | 
|  | ] | 
|  | interface IOleInPlaceActiveObject : IOleWindow | 
|  | { | 
|  | typedef [unique] IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT; | 
|  |  | 
|  | [local] | 
|  | HRESULT TranslateAccelerator( | 
|  | [in] LPMSG lpmsg); | 
|  |  | 
|  | [call_as(TranslateAccelerator)] | 
|  | HRESULT RemoteTranslateAccelerator(); | 
|  |  | 
|  | HRESULT OnFrameWindowActivate( | 
|  | [in] BOOL fActivate); | 
|  |  | 
|  | HRESULT OnDocWindowActivate( | 
|  | [in] BOOL fActivate); | 
|  |  | 
|  | [local] | 
|  | HRESULT ResizeBorder( | 
|  | [in] LPCRECT prcBorder, | 
|  | [in, unique] IOleInPlaceUIWindow *pUIWindow, | 
|  | [in] BOOL fFrameWindow); | 
|  |  | 
|  | [call_as(ResizeBorder)] | 
|  | HRESULT RemoteResizeBorder( | 
|  | [in] LPCRECT prcBorder, | 
|  | [in] REFIID riid, | 
|  | [in, unique, iid_is(riid)] IOleInPlaceUIWindow *pUIWindow, | 
|  | [in] BOOL fFrameWindow); | 
|  |  | 
|  | HRESULT EnableModeless( | 
|  | [in] BOOL fEnable); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleInPlaceSite interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000119-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleInPlaceSite : IOleWindow | 
|  | { | 
|  | typedef [unique] IOleInPlaceSite *LPOLEINPLACESITE; | 
|  |  | 
|  | HRESULT CanInPlaceActivate(); | 
|  | HRESULT OnInPlaceActivate(); | 
|  | HRESULT OnUIActivate(); | 
|  |  | 
|  | HRESULT GetWindowContext( | 
|  | [out] IOleInPlaceFrame **ppFrame, | 
|  | [out] IOleInPlaceUIWindow **ppDoc, | 
|  | [out] LPRECT lprcPosRect, | 
|  | [out] LPRECT lprcClipRect, | 
|  | [in, out] LPOLEINPLACEFRAMEINFO lpFrameInfo); | 
|  |  | 
|  | HRESULT Scroll( | 
|  | [in] SIZE scrollExtent); | 
|  |  | 
|  | HRESULT OnUIDeactivate( | 
|  | [in] BOOL fUndoable); | 
|  |  | 
|  | HRESULT OnInPlaceDeactivate(); | 
|  | HRESULT DiscardUndoState(); | 
|  | HRESULT DeactivateAndUndo(); | 
|  |  | 
|  | HRESULT OnPosRectChange( | 
|  | [in] LPCRECT lprcPosRect); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IParseDisplayName interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(0000011a-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IParseDisplayName : IUnknown | 
|  | { | 
|  | typedef [unique] IParseDisplayName *LPPARSEDISPLAYNAME; | 
|  |  | 
|  | HRESULT ParseDisplayName( | 
|  | [in, unique] IBindCtx *pbc, | 
|  | [in] LPOLESTR pszDisplayName, | 
|  | [out] ULONG *pchEaten, | 
|  | [out] IMoniker **ppmkOut); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleContainer interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(0000011b-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleContainer : IParseDisplayName | 
|  | { | 
|  | typedef [unique] IOleContainer *LPOLECONTAINER; | 
|  |  | 
|  | HRESULT EnumObjects( | 
|  | [in] DWORD grfFlags, | 
|  | [out] IEnumUnknown **ppenum); | 
|  |  | 
|  | HRESULT LockContainer( | 
|  | [in] BOOL fLock); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleItemContainer interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(0000011c-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleItemContainer : IOleContainer | 
|  | { | 
|  | typedef [unique] IOleItemContainer *LPOLEITEMCONTAINER; | 
|  |  | 
|  | typedef enum tagBINDSPEED | 
|  | { | 
|  | BINDSPEED_INDEFINITE = 1, | 
|  | BINDSPEED_MODERATE = 2, | 
|  | BINDSPEED_IMMEDIATE = 3 | 
|  | } BINDSPEED; | 
|  |  | 
|  | typedef enum tagOLECONTF | 
|  | { | 
|  | OLECONTF_EMBEDDINGS = 1, | 
|  | OLECONTF_LINKS = 2, | 
|  | OLECONTF_OTHERS = 4, | 
|  | OLECONTF_OLNYUSER = 8, | 
|  | OLECONTF_ONLYIFRUNNING = 16 | 
|  | } OLECONTF; | 
|  |  | 
|  | cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") | 
|  | cpp_quote("#undef GetObject") | 
|  | cpp_quote("#endif") | 
|  | HRESULT GetObject( | 
|  | [in] LPOLESTR pszItem, | 
|  | [in] DWORD dwSpeedNeeded, | 
|  | [in, unique] IBindCtx *pbc, | 
|  | [in] REFIID riid, | 
|  | [out, iid_is(riid)] void **ppvObject); | 
|  |  | 
|  | HRESULT GetObjectStorage( | 
|  | [in] LPOLESTR pszItem, | 
|  | [in, unique] IBindCtx *pbc, | 
|  | [in] REFIID riid, | 
|  | [out, iid_is(riid)] void **ppvStorage); | 
|  |  | 
|  | HRESULT IsRunning( | 
|  | [in] LPOLESTR pszItem); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleLink interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(0000011d-0000-0000-c000-000000000046) | 
|  | ] | 
|  | interface IOleLink : IUnknown | 
|  | { | 
|  | typedef [unique] IOleLink *LPOLELINK; | 
|  |  | 
|  | typedef enum tagOLEUPDATE | 
|  | { | 
|  | OLEUPDATE_ALWAYS = 1, | 
|  | OLEUPDATE_ONCALL = 3 | 
|  | } OLEUPDATE, *POLEUPDATE, *LPOLEUPDATE; | 
|  |  | 
|  | typedef enum tagOLELINKBIND | 
|  | { | 
|  | OLELINKBIND_EVENIFCLASSDIFF = 1 | 
|  | } OLELINKBIND; | 
|  |  | 
|  | HRESULT SetUpdateOptions( | 
|  | [in] DWORD dwUpdateOpt); | 
|  |  | 
|  | HRESULT GetUpdateOptions( | 
|  | [out] DWORD *pdwUpdateOpt); | 
|  |  | 
|  | HRESULT SetSourceMoniker( | 
|  | [in, unique] IMoniker *pmk, | 
|  | [in] REFCLSID rclsid); | 
|  |  | 
|  | HRESULT GetSourceMoniker( | 
|  | [out] IMoniker **ppmk); | 
|  |  | 
|  | HRESULT SetSourceDisplayName( | 
|  | [in]LPCOLESTR pszStatusText); | 
|  |  | 
|  | HRESULT GetSourceDisplayName( | 
|  | [out] LPOLESTR *ppszDisplayName); | 
|  |  | 
|  | HRESULT BindToSource( | 
|  | [in] DWORD bindflags, | 
|  | [in, unique] IBindCtx *pbc); | 
|  |  | 
|  | HRESULT BindIfRunning(); | 
|  |  | 
|  | HRESULT GetBoundSource( | 
|  | [out] IUnknown **ppunk); | 
|  |  | 
|  | HRESULT UnbindSource(); | 
|  |  | 
|  | HRESULT Update( | 
|  | [in, unique] IBindCtx *pbc); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleClientSite interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000118-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleClientSite : IUnknown | 
|  | { | 
|  | typedef [unique] IOleClientSite * LPOLECLIENTSITE; | 
|  |  | 
|  | HRESULT SaveObject(); | 
|  |  | 
|  | HRESULT GetMoniker( | 
|  | [in] DWORD dwAssign, | 
|  | [in] DWORD dwWhichMoniker, | 
|  | [out] IMoniker **ppmk); | 
|  |  | 
|  | HRESULT GetContainer( | 
|  | [out] IOleContainer **ppContainer); | 
|  |  | 
|  | HRESULT ShowObject(); | 
|  |  | 
|  | HRESULT OnShowWindow( | 
|  | [in] BOOL fShow); | 
|  |  | 
|  | HRESULT RequestNewObjectLayout(); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleCache interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(0000011e-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleCache : IUnknown | 
|  | { | 
|  | typedef [unique] IOleCache *LPOLECACHE; | 
|  |  | 
|  | HRESULT Cache( | 
|  | [in, unique] FORMATETC *pformatetc, | 
|  | [in] DWORD advf, | 
|  | [out] DWORD *pdwConnection); | 
|  |  | 
|  | HRESULT Uncache( | 
|  | [in] DWORD dwConnection); | 
|  |  | 
|  | HRESULT EnumCache( | 
|  | [out] IEnumSTATDATA **ppenumSTATDATA); | 
|  |  | 
|  | HRESULT InitCache( | 
|  | [in, unique] IDataObject *pDataObject); | 
|  |  | 
|  | HRESULT SetData( | 
|  | [in, unique] FORMATETC *pformatetc, | 
|  | [in, unique] STGMEDIUM *pmedium, | 
|  | [in] BOOL fRelease); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleCache2 interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000128-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleCache2 : IOleCache | 
|  | { | 
|  | typedef [unique] IOleCache2 *LPOLECACHE2; | 
|  |  | 
|  | const DWORD UPDFCACHE_NODATACACHE = 0x00000001; | 
|  | const DWORD UPDFCACHE_ONSAVECACHE = 0x00000002; | 
|  | const DWORD UPDFCACHE_ONSTOPCACHE = 0x00000004; | 
|  | const DWORD UPDFCACHE_NORMALCACHE = 0x00000008; | 
|  | const DWORD UPDFCACHE_IFBLANK     = 0x00000010; | 
|  | const DWORD UPDFCACHE_ONLYIFBLANK = 0x80000000; | 
|  |  | 
|  | const DWORD UPDFCACHE_IFBLANKORONSAVECACHE = (UPDFCACHE_IFBLANK | UPDFCACHE_ONSAVECACHE); | 
|  | const DWORD UPDFCACHE_ALL = ((DWORD)(~(UPDFCACHE_ONLYIFBLANK))); | 
|  | const DWORD UPDFCACHE_ALLBUTNODATACACHE = (UPDFCACHE_ALL & ((DWORD)(~UPDFCACHE_NODATACACHE))); | 
|  |  | 
|  | typedef enum tagDISCARDCACHE | 
|  | { | 
|  | DISCARDCACHE_SAVEIFDIRTY = 0, | 
|  | DISCARDCACHE_NOSAVE =  1 | 
|  | } DISCARDCACHE; | 
|  |  | 
|  | [local] | 
|  | HRESULT UpdateCache( | 
|  | [in] LPDATAOBJECT pDataObject, | 
|  | [in] DWORD grfUpdf, | 
|  | [in] LPVOID pReserved); | 
|  |  | 
|  | [call_as(UpdateCache)] | 
|  | HRESULT RemoteUpdateCache( | 
|  | [in] LPDATAOBJECT pDataObject, | 
|  | [in] DWORD grfUpdf, | 
|  | [in] LONG_PTR pReserved); | 
|  |  | 
|  | HRESULT DiscardCache( | 
|  | [in] DWORD dwDiscardOptions); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleCacheControl interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000129-0000-0000-c000-000000000046) | 
|  | ] | 
|  | interface IOleCacheControl : IUnknown | 
|  | { | 
|  | typedef [unique] IOleCacheControl *LPOLECACHECONTROL; | 
|  |  | 
|  | HRESULT OnRun( | 
|  | LPDATAOBJECT pDataObject); | 
|  |  | 
|  | HRESULT OnStop(); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | *  IEnumOLEVERB interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000104-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IEnumOLEVERB : IUnknown | 
|  | { | 
|  | typedef [unique] IEnumOLEVERB *LPENUMOLEVERB; | 
|  |  | 
|  | typedef struct tagOLEVERB | 
|  | { | 
|  | LONG lVerb; | 
|  | LPOLESTR lpszVerbName; | 
|  | DWORD fuFlags; | 
|  | DWORD grfAttribs; | 
|  | } OLEVERB, *LPOLEVERB; | 
|  |  | 
|  | typedef enum tagOLEVERBATTRIB | 
|  | { | 
|  | OLEVERBATTRIB_NEVERDIRTIES = 1, | 
|  | OLEVERBATTRIB_ONCONTAINERMENU = 2 | 
|  | } OLEVERBATTRIB; | 
|  |  | 
|  | [local] | 
|  | HRESULT Next( | 
|  | [in] ULONG celt, | 
|  | [out, size_is(celt), length_is(*pceltFetched)] LPOLEVERB rgelt, | 
|  | [out] ULONG *pceltFetched); | 
|  |  | 
|  | [call_as(Next)] | 
|  | HRESULT RemoteNext( | 
|  | [in] ULONG celt, | 
|  | [out, size_is(celt), length_is(*pceltFetched)] LPOLEVERB rgelt, | 
|  | [out] ULONG *pceltFetched); | 
|  |  | 
|  | HRESULT Skip( | 
|  | [in] ULONG celt); | 
|  |  | 
|  | HRESULT Reset(); | 
|  |  | 
|  | HRESULT Clone( | 
|  | [out] IEnumOLEVERB **ppenum); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleObject interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000112-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleObject : IUnknown | 
|  | { | 
|  | typedef [unique] IOleObject *LPOLEOBJECT; | 
|  |  | 
|  | typedef enum tagOLEGETMONIKER | 
|  | { | 
|  | OLEGETMONIKER_ONLYIFTHERE = 1, | 
|  | OLEGETMONIKER_FORCEASSIGN = 2, | 
|  | OLEGETMONIKER_UNASSIGN = 3, | 
|  | OLEGETMONIKER_TEMPFORUSER = 4 | 
|  | } OLEGETMONIKER; | 
|  |  | 
|  | typedef enum tagOLEWHICHMK | 
|  | { | 
|  | OLEWHICHMK_CONTAINER = 1, | 
|  | OLEWHICHMK_OBJREL = 2, | 
|  | OLEWHICHMK_OBJFULL = 3 | 
|  | } OLEWHICHMK; | 
|  |  | 
|  | typedef enum tagUSERCLASSTYPE | 
|  | { | 
|  | USERCLASSTYPE_FULL = 1, | 
|  | USERCLASSTYPE_SHORT = 2, | 
|  | USERCLASSTYPE_APPNAME = 3 | 
|  | } USERCLASSTYPE; | 
|  |  | 
|  | typedef enum tagOLEMISC | 
|  | { | 
|  | OLEMISC_RECOMPOSEONRESIZE = 0x1, | 
|  | OLEMISC_ONLYICONIC = 0x2, | 
|  | OLEMISC_INSERTNOTREPLACE = 0x4, | 
|  | OLEMISC_STATIC = 0x8, | 
|  | OLEMISC_CANTLINKINSIDE = 0x10, | 
|  | OLEMISC_CANLINKBYOLE1 = 0x20, | 
|  | OLEMISC_ISLINKOBJECT = 0x40, | 
|  | OLEMISC_INSIDEOUT = 0x80, | 
|  | OLEMISC_ACTIVATEWHENVISIBLE = 0x100, | 
|  | OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x200, | 
|  | OLEMISC_INVISIBLEATRUNTIME = 0x400, | 
|  | OLEMISC_ALWAYSRUN = 0x800, | 
|  | OLEMISC_ACTSLIKEBUTTON = 0x1000, | 
|  | OLEMISC_ACTSLIKELABEL = 0x2000, | 
|  | OLEMISC_NOUIACTIVATE = 0x4000, | 
|  | OLEMISC_ALIGNABLE = 0x8000, | 
|  | OLEMISC_SIMPLEFRAME = 0x10000, | 
|  | OLEMISC_SETCLIENTSITEFIRST = 0x20000, | 
|  | OLEMISC_IMEMODE = 0x40000, | 
|  | OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x80000, | 
|  | OLEMISC_WANTSTOMENUMERGE = 0x100000, | 
|  | OLEMISC_SUPPORTSMULTILEVELUNDO = 0x200000 | 
|  | } OLEMISC; | 
|  |  | 
|  | typedef enum tagOLECLOSE | 
|  | { | 
|  | OLECLOSE_SAVEIFDIRTY = 0, | 
|  | OLECLOSE_NOSAVE = 1, | 
|  | OLECLOSE_PROMPTSAVE = 2 | 
|  | } OLECLOSE; | 
|  |  | 
|  | HRESULT SetClientSite( | 
|  | [in, unique] IOleClientSite *pClientSite); | 
|  |  | 
|  | HRESULT GetClientSite( | 
|  | [out] IOleClientSite **ppClientSite); | 
|  |  | 
|  | HRESULT SetHostNames( | 
|  | [in] LPCOLESTR szContainerApp, | 
|  | [in, unique] LPCOLESTR szContainerObj); | 
|  |  | 
|  | HRESULT Close( | 
|  | [in] DWORD dwSaveOption); | 
|  |  | 
|  | HRESULT SetMoniker( | 
|  | [in] DWORD dwWhichMoniker, | 
|  | [in, unique] IMoniker *pmk); | 
|  |  | 
|  | HRESULT GetMoniker( | 
|  | [in] DWORD dwAssign, | 
|  | [in] DWORD dwWhichMoniker, | 
|  | [out] IMoniker **ppmk); | 
|  |  | 
|  | HRESULT InitFromData( | 
|  | [in, unique] IDataObject *pDataObject, | 
|  | [in] BOOL fCreation, | 
|  | [in] DWORD dwReserved); | 
|  |  | 
|  | HRESULT GetClipboardData( | 
|  | [in] DWORD dwReserved, | 
|  | [out] IDataObject **ppDataObject); | 
|  |  | 
|  | HRESULT DoVerb( | 
|  | [in] LONG iVerb, | 
|  | [in, unique] LPMSG lpmsg, | 
|  | [in, unique] IOleClientSite *pActiveSite, | 
|  | [in] LONG lindex, | 
|  | [in] HWND hwndParent, | 
|  | [in, unique] LPCRECT lprcPosRect); | 
|  |  | 
|  | HRESULT EnumVerbs( | 
|  | [out] IEnumOLEVERB **ppEnumOleVerb); | 
|  |  | 
|  | HRESULT Update(); | 
|  |  | 
|  | HRESULT IsUpToDate(); | 
|  |  | 
|  | HRESULT GetUserClassID( | 
|  | [out] CLSID *pClsid); | 
|  |  | 
|  | HRESULT GetUserType( | 
|  | [in] DWORD dwFormOfType, | 
|  | [out] LPOLESTR *pszUserType); | 
|  |  | 
|  | HRESULT SetExtent( | 
|  | [in] DWORD dwDrawAspect, | 
|  | [in] SIZEL *psizel); | 
|  |  | 
|  | HRESULT GetExtent( | 
|  | [in] DWORD dwDrawAspect, | 
|  | [out] SIZEL *psizel); | 
|  |  | 
|  | HRESULT Advise( | 
|  | [in, unique] IAdviseSink *pAdvSink, | 
|  | [out] DWORD *pdwConnection); | 
|  |  | 
|  | HRESULT Unadvise( | 
|  | [in] DWORD dwConnection); | 
|  |  | 
|  | HRESULT EnumAdvise( | 
|  | [out] IEnumSTATDATA **ppenumAdvise); | 
|  |  | 
|  | HRESULT GetMiscStatus( | 
|  | [in] DWORD dwAspect, | 
|  | [out] DWORD *pdwStatus); | 
|  |  | 
|  | HRESULT SetColorScheme( | 
|  | [in] LOGPALETTE *pLogpal); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleAdviseHolder interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(00000111-0000-0000-c000-000000000046) | 
|  | ] | 
|  | interface IOleAdviseHolder : IUnknown | 
|  | { | 
|  | typedef [unique] IOleAdviseHolder * LPOLEADVISEHOLDER; | 
|  |  | 
|  | HRESULT Advise( | 
|  | [in, unique] IAdviseSink *pAdvise, | 
|  | [out] DWORD *pdwConnection); | 
|  |  | 
|  | HRESULT Unadvise( | 
|  | [in] DWORD dwConnection); | 
|  |  | 
|  | HRESULT EnumAdvise( | 
|  | [out] IEnumSTATDATA **ppenumAdvise); | 
|  |  | 
|  | HRESULT SendOnRename( | 
|  | [in, unique] IMoniker *pmk); | 
|  |  | 
|  | HRESULT SendOnSave(); | 
|  | HRESULT SendOnClose(); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IContinue interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(0000012a-0000-0000-c000-000000000046) | 
|  | ] | 
|  | interface IContinue : IUnknown | 
|  | { | 
|  | HRESULT FContinue(); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IViewObject interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(0000010d-0000-0000-c000-000000000046) | 
|  | ] | 
|  | interface IViewObject : IUnknown | 
|  | { | 
|  | typedef [unique] IViewObject *LPVIEWOBJECT; | 
|  |  | 
|  | [local] | 
|  | HRESULT Draw( | 
|  | [in] DWORD dwDrawAspect, | 
|  | [in] LONG lindex, | 
|  | [in, unique] void * pvAspect, | 
|  | [in, unique] DVTARGETDEVICE *ptd, | 
|  | [in] HDC hdcTargetDev, | 
|  | [in] HDC hdcDraw, | 
|  | [in] LPCRECTL lprcBounds, | 
|  | [in, unique] LPCRECTL lprcWBounds, | 
|  | [in] BOOL (*pfnContinue)(ULONG_PTR dwContinue), | 
|  | [in] ULONG_PTR dwContinue); | 
|  |  | 
|  | [call_as(Draw)] | 
|  | HRESULT RemoteDraw( | 
|  | [in] DWORD dwDrawAspect, | 
|  | [in] LONG lindex, | 
|  | [in] ULONG_PTR pvAspect, | 
|  | [in, unique] DVTARGETDEVICE *ptd, | 
|  | [in] ULONG_PTR hdcTargetDev, | 
|  | [in] ULONG_PTR hdcDraw, | 
|  | [in] LPCRECTL lprcBounds, | 
|  | [in, unique] LPCRECTL lprcWBounds, | 
|  | [in] IContinue *pContinue); | 
|  |  | 
|  | [local] | 
|  | HRESULT GetColorSet( | 
|  | [in] DWORD dwDrawAspect, | 
|  | [in] LONG lindex, | 
|  | [in, unique] void *pvAspect, | 
|  | [in, unique] DVTARGETDEVICE *ptd, | 
|  | [in] HDC hicTargetDev, | 
|  | [out] LOGPALETTE **ppColorSet); | 
|  |  | 
|  | [call_as(GetColorSet)] | 
|  | HRESULT RemoteGetColorSet( | 
|  | [in] DWORD dwDrawAspect, | 
|  | [in] LONG lindex, | 
|  | [in] ULONG_PTR pvAspect, | 
|  | [in, unique] DVTARGETDEVICE *ptd, | 
|  | [in] ULONG_PTR hicTargetDev, | 
|  | [out] LOGPALETTE **ppColorSet); | 
|  |  | 
|  | [local] | 
|  | HRESULT Freeze( | 
|  | [in] DWORD dwDrawAspect, | 
|  | [in] LONG lindex, | 
|  | [in, unique] void *pvAspect, | 
|  | [out] DWORD *pdwFreeze); | 
|  |  | 
|  | [call_as(Freeze)] | 
|  | HRESULT RemoteFreeze( | 
|  | [in] DWORD dwDrawAspect, | 
|  | [in] LONG lindex, | 
|  | [in] ULONG_PTR pvAspect, | 
|  | [out] DWORD *pdwFreeze); | 
|  |  | 
|  | HRESULT Unfreeze( | 
|  | [in] DWORD dwFreeze); | 
|  |  | 
|  | HRESULT SetAdvise( | 
|  | [in] DWORD aspects, | 
|  | [in] DWORD advf, | 
|  | [in, unique] IAdviseSink *pAdvSink); | 
|  |  | 
|  | [local] | 
|  | HRESULT GetAdvise( | 
|  | [out, unique] DWORD *pAspects, | 
|  | [out, unique] DWORD *pAdvf, | 
|  | [out] IAdviseSink **ppAdvSink); | 
|  |  | 
|  | [call_as(GetAdvise)] | 
|  | HRESULT RemoteGetAdvise( | 
|  | [out] DWORD *pAspects, | 
|  | [out] DWORD *pAdvf, | 
|  | [out] IAdviseSink **ppAdvSink); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IViewObject2 interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000127-0000-0000-c000-000000000046) | 
|  | ] | 
|  | interface IViewObject2 : IViewObject | 
|  | { | 
|  | typedef [unique] IViewObject2 *LPVIEWOBJECT2; | 
|  |  | 
|  | HRESULT GetExtent( | 
|  | [in]  DWORD dwDrawAspect, | 
|  | [in]  LONG lindex, | 
|  | [in, unique]  DVTARGETDEVICE* ptd, | 
|  | [out] LPSIZEL lpsizel); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDropSource interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(00000121-0000-0000-c000-000000000046) | 
|  | ] | 
|  | interface IDropSource : IUnknown | 
|  | { | 
|  | typedef [unique] IDropSource *LPDROPSOURCE; | 
|  |  | 
|  | HRESULT QueryContinueDrag( | 
|  | [in] BOOL fEscapePressed, | 
|  | [in] DWORD grfKeyState); | 
|  |  | 
|  | HRESULT GiveFeedback( | 
|  | [in] DWORD dwEffect); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDropTarget interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(00000122-0000-0000-c000-000000000046), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IDropTarget : IUnknown | 
|  | { | 
|  | typedef [unique] IDropTarget *LPDROPTARGET; | 
|  |  | 
|  | const DWORD MK_ALT = 0x20; | 
|  | const DWORD DROPEFFECT_NONE = 0; | 
|  | const DWORD DROPEFFECT_COPY = 1; | 
|  | const DWORD DROPEFFECT_MOVE = 2; | 
|  | const DWORD DROPEFFECT_LINK = 4; | 
|  | const DWORD DROPEFFECT_SCROLL = 0x80000000; | 
|  | const DWORD DD_DEFSCROLLINSET = 11; | 
|  | const DWORD DD_DEFSCROLLDELAY = 50; | 
|  | const DWORD DD_DEFSCROLLINTERVAL = 50; | 
|  | const DWORD DD_DEFDRAGDELAY = 200; | 
|  | const DWORD DD_DEFDRAGMINDIST = 2; | 
|  |  | 
|  | HRESULT DragEnter( | 
|  | [in, unique] IDataObject *pDataObj, | 
|  | [in] DWORD grfKeyState, | 
|  | [in] POINTL pt, | 
|  | [in, out] DWORD *pdwEffect); | 
|  |  | 
|  | HRESULT DragOver( | 
|  | [in] DWORD grfKeyState, | 
|  | [in] POINTL pt, | 
|  | [in, out] DWORD *pdwEffect); | 
|  |  | 
|  | HRESULT DragLeave(); | 
|  |  | 
|  | HRESULT Drop( | 
|  | [in, unique] IDataObject *pDataObj, | 
|  | [in] DWORD grfKeyState, | 
|  | [in] POINTL pt, | 
|  | [in, out] DWORD *pdwEffect); | 
|  | } |