//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: oadvhr.idl // //-------------------------------------------------------------------------- cpp_quote("//+-------------------------------------------------------------------------") cpp_quote("//") cpp_quote("// Microsoft Windows") cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") cpp_quote("//") cpp_quote("//--------------------------------------------------------------------------") cpp_quote("#if ( _MSC_VER >= 1020 )") cpp_quote("#pragma once") cpp_quote("#endif") #ifndef DO_NO_IMPORTS import "objidl.idl"; #endif interface IOleInPlaceActiveObject; interface IEnumOLEVERB; [ 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 ( void ); HRESULT SendOnClose ( void ); } [ 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 ); } [ object, uuid(00000128-0000-0000-C000-000000000046), pointer_default(unique) ] interface IOleCache2 : IOleCache { typedef [unique] IOleCache2 *LPOLECACHE2; // Cache update Flags 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))); // IOleCache2::DiscardCache options typedef [v1_enum] enum tagDISCARDCACHE { DISCARDCACHE_SAVEIFDIRTY = 0, // Save all dirty cache before discarding DISCARDCACHE_NOSAVE = 1 // Don't save dirty caches before // discarding } 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 ); } [ object, uuid(00000129-0000-0000-C000-000000000046) ] interface IOleCacheControl : IUnknown { typedef [unique] IOleCacheControl *LPOLECACHECONTROL; HRESULT OnRun ( LPDATAOBJECT pDataObject ); HRESULT OnStop (void); } [ 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 ); } [ 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 ); } [ object, uuid(00000118-0000-0000-C000-000000000046), pointer_default(unique) ] interface IOleClientSite : IUnknown { typedef [unique] IOleClientSite * LPOLECLIENTSITE; HRESULT SaveObject ( void ); HRESULT GetMoniker ( [in] DWORD dwAssign, [in] DWORD dwWhichMoniker, [out] IMoniker **ppmk ); HRESULT GetContainer ( [out] IOleContainer **ppContainer ); HRESULT ShowObject ( void ); HRESULT OnShowWindow ( [in] BOOL fShow ); HRESULT RequestNewObjectLayout ( void ); } [ 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 = 0x00000001, OLEMISC_ONLYICONIC = 0x00000002, OLEMISC_INSERTNOTREPLACE = 0x00000004, OLEMISC_STATIC = 0x00000008, OLEMISC_CANTLINKINSIDE = 0x00000010, OLEMISC_CANLINKBYOLE1 = 0x00000020, OLEMISC_ISLINKOBJECT = 0x00000040, OLEMISC_INSIDEOUT = 0x00000080, OLEMISC_ACTIVATEWHENVISIBLE = 0x00000100, OLEMISC_RENDERINGISDEVICEINDEPENDENT= 0x00000200, OLEMISC_INVISIBLEATRUNTIME = 0x00000400, OLEMISC_ALWAYSRUN = 0x00000800, OLEMISC_ACTSLIKEBUTTON = 0x00001000, OLEMISC_ACTSLIKELABEL = 0x00002000, OLEMISC_NOUIACTIVATE = 0x00004000, OLEMISC_ALIGNABLE = 0x00008000, OLEMISC_SIMPLEFRAME = 0x00010000, OLEMISC_SETCLIENTSITEFIRST = 0x00020000, OLEMISC_IMEMODE = 0x00040000, OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x00080000, OLEMISC_WANTSTOMENUMERGE = 0x00100000, OLEMISC_SUPPORTSMULTILEVELUNDO = 0x00200000 } OLEMISC; typedef enum tagOLECLOSE { OLECLOSE_SAVEIFDIRTY = 0, OLECLOSE_NOSAVE = 1, OLECLOSE_PROMPTSAVE = 2 } OLECLOSE; //IOleObject methods 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 ( void ); HRESULT IsUpToDate ( void ); 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 ); } [uuid(B0916C84-7416-101A-BCEA-08002B2B79EF)] interface IOLETypes { /****** OLE value types ***********************************************/ /* rendering options */ typedef enum tagOLERENDER { OLERENDER_NONE = 0, OLERENDER_DRAW = 1, OLERENDER_FORMAT = 2, OLERENDER_ASIS = 3 } OLERENDER; typedef OLERENDER * LPOLERENDER; /****** Clipboard Data structures *****************************************/ typedef struct tagOBJECTDESCRIPTOR { ULONG cbSize; // Size of structure in bytes CLSID clsid; // CLSID of data being transferred DWORD dwDrawAspect; // Display aspect of the object // normally DVASPECT_CONTENT or ICON. // dwDrawAspect will be 0 (which is NOT // DVASPECT_CONTENT) if the copier or // dragsource didn't draw the object to // begin with. SIZEL sizel; // size of the object in HIMETRIC // sizel is opt.: will be (0,0) for apps // which don't draw the object being // transferred POINTL pointl; // Offset in HIMETRIC units from the // upper-left corner of the obj where the // mouse went down for the drag. // NOTE: y coordinates increase downward. // x coordinates increase to right // pointl is opt.; it is only meaningful // if object is transfered via drag/drop. // (0, 0) if mouse position is unspecified // (eg. when obj transfered via clipboard) DWORD dwStatus; // Misc. status flags for object. Flags are // defined by OLEMISC enum. these flags // are as would be returned // by IOleObject::GetMiscStatus. DWORD dwFullUserTypeName; // Offset from beginning of structure to // null-terminated string that specifies // Full User Type Name of the object. // 0 indicates string not present. DWORD dwSrcOfCopy; // Offset from beginning of structure to // null-terminated string that specifies // source of the transfer. // dwSrcOfCOpy is normally implemented as // the display name of the temp-for-user // moniker which identifies the source of // the data. // 0 indicates string not present. // NOTE: moniker assignment is NOT forced. // see IOleObject::GetMoniker( // OLEGETMONIKER_TEMPFORUSER) /* variable sized string data may appear here */ } OBJECTDESCRIPTOR, *POBJECTDESCRIPTOR, *LPOBJECTDESCRIPTOR, LINKSRCDESCRIPTOR, *PLINKSRCDESCRIPTOR, *LPLINKSRCDESCRIPTOR; } [ object, uuid(00000114-0000-0000-C000-000000000046), pointer_default(unique) ] interface IOleWindow : IUnknown { typedef [unique] IOleWindow *LPOLEWINDOW; [input_sync] HRESULT GetWindow ( [out] HWND *phwnd ); HRESULT ContextSensitiveHelp ( [in] BOOL fEnterMode ); } [ object, uuid(0000011d-0000-0000-C000-000000000046) ] interface IOleLink : IUnknown { typedef [unique] IOleLink *LPOLELINK; /* Link update options */ typedef enum tagOLEUPDATE { OLEUPDATE_ALWAYS=1, OLEUPDATE_ONCALL=3 } OLEUPDATE; typedef OLEUPDATE *LPOLEUPDATE; typedef OLEUPDATE *POLEUPDATE; // for IOleLink::BindToSource 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 ( void ); HRESULT GetBoundSource ( [out] IUnknown **ppunk ); HRESULT UnbindSource ( void ); HRESULT Update ( [in, unique] IBindCtx *pbc ); } [ 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 [v1_enum] enum tagOLECONTF { OLECONTF_EMBEDDINGS = 1, OLECONTF_LINKS = 2, OLECONTF_OTHERS = 4, OLECONTF_ONLYUSER = 8, OLECONTF_ONLYIFRUNNING = 16 } OLECONTF; 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); } [ 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; [input_sync] HRESULT GetBorder ( [out] LPRECT lprectBorder ); [input_sync] HRESULT RequestBorderSpace ( [in, unique] LPCBORDERWIDTHS pborderwidths ); [input_sync] HRESULT SetBorderSpace ( [in, unique] LPCBORDERWIDTHS pborderwidths ); HRESULT SetActiveObject ( [in, unique] IOleInPlaceActiveObject *pActiveObject, [in, string, unique] LPCOLESTR pszObjName ); } [ 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(); [input_sync] HRESULT OnFrameWindowActivate ( [in] BOOL fActivate ); [input_sync] HRESULT OnDocWindowActivate ( [in] BOOL fActivate ); [local] HRESULT ResizeBorder ( [in] LPCRECT prcBorder, [in, unique] IOleInPlaceUIWindow *pUIWindow, [in] BOOL fFrameWindow ); [call_as(ResizeBorder), input_sync] HRESULT RemoteResizeBorder ( [in] LPCRECT prcBorder, [in] REFIID riid, [in, unique, iid_is(riid)] IOleInPlaceUIWindow *pUIWindow, [in] BOOL fFrameWindow ); HRESULT EnableModeless ( [in] BOOL fEnable ); } [ object, uuid(00000116-0000-0000-C000-000000000046), pointer_default(unique) ] interface IOleInPlaceFrame : IOleInPlaceUIWindow { typedef [unique] IOleInPlaceFrame *LPOLEINPLACEFRAME; typedef struct tagOIFI // OleInPlaceFrameInfo { 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 ); [input_sync] HRESULT SetMenu ( [in] HMENU hmenuShared, [in] HOLEMENU holemenu, [in] HWND hwndActiveObject ); HRESULT RemoveMenus ( [in] HMENU hmenuShared ); [input_sync] HRESULT SetStatusText ( [in, unique] LPCOLESTR pszStatusText ); HRESULT EnableModeless ( [in] BOOL fEnable ); HRESULT TranslateAccelerator ( [in] LPMSG lpmsg, [in] WORD wID ); } [ object, uuid(00000113-0000-0000-C000-000000000046), pointer_default(unique) ] interface IOleInPlaceObject : IOleWindow { typedef [unique] IOleInPlaceObject *LPOLEINPLACEOBJECT; HRESULT InPlaceDeactivate ( void ); HRESULT UIDeactivate ( void ); [input_sync] HRESULT SetObjectRects ( [in] LPCRECT lprcPosRect, [in] LPCRECT lprcClipRect ); HRESULT ReactivateAndUndo ( void ); } [ object, uuid(00000119-0000-0000-C000-000000000046), pointer_default(unique) ] interface IOleInPlaceSite : IOleWindow { typedef [unique] IOleInPlaceSite *LPOLEINPLACESITE; HRESULT CanInPlaceActivate ( void ); HRESULT OnInPlaceActivate ( void ); HRESULT OnUIActivate ( void ); HRESULT GetWindowContext ( [out] IOleInPlaceFrame **ppFrame, [out] IOleInPlaceUIWindow **ppDoc, [out] LPRECT lprcPosRect, [out] LPRECT lprcClipRect, [in, out] LPOLEINPLACEFRAMEINFO lpFrameInfo ); HRESULT Scroll ( [in] SIZE scrollExtant ); HRESULT OnUIDeactivate ( [in] BOOL fUndoable ); HRESULT OnInPlaceDeactivate ( void ); HRESULT DiscardUndoState ( void ); HRESULT DeactivateAndUndo ( void ); HRESULT OnPosRectChange ( [in] LPCRECT lprcPosRect ); } [ object, uuid(0000012a-0000-0000-C000-000000000046) ] interface IContinue : IUnknown { HRESULT FContinue(); } [ 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 ); } [ 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 ); } [ 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 ); } [ object, uuid(00000122-0000-0000-C000-000000000046), pointer_default(unique) ] interface IDropTarget : IUnknown { typedef [unique] IDropTarget *LPDROPTARGET; const DWORD MK_ALT = 0x0020; 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; cpp_quote("// default inset-width of the hot zone, in pixels") cpp_quote("// typical use: GetProfileInt(\"windows\",\"DragScrollInset\",DD_DEFSCROLLINSET)") const DWORD DD_DEFSCROLLINSET = 11; cpp_quote("// default delay before scrolling, in milliseconds") cpp_quote("// typical use: GetProfileInt(\"windows\",\"DragScrollDelay\",DD_DEFSCROLLDELAY)") const DWORD DD_DEFSCROLLDELAY = 50; cpp_quote("// default scroll interval, in milliseconds") cpp_quote("// typical use: GetProfileInt(\"windows\",\"DragScrollInterval\", DD_DEFSCROLLINTERVAL)") const DWORD DD_DEFSCROLLINTERVAL = 50; cpp_quote("// default delay before dragging should start, in milliseconds") cpp_quote("// typical use: GetProfileInt(\"windows\", \"DragDelay\", DD_DEFDRAGDELAY)") const DWORD DD_DEFDRAGDELAY = 200; cpp_quote("// default minimum distance (radius) before dragging should start, in pixels") cpp_quote("// typical use: GetProfileInt(\"windows\", \"DragMinDist\", DD_DEFDRAGMINDIST)") 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 ( void ); HRESULT Drop ( [in, unique] IDataObject *pDataObj, [in] DWORD grfKeyState, [in] POINTL pt, [in, out] DWORD *pdwEffect ); } [ 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; // Bitwise verb attributes used in OLEVERB.grfAttribs typedef [v1_enum] enum tagOLEVERBATTRIB // bitwise { 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); }