windows-nt/Source/XPSP1/NT/com/published/idlole/public/oleidl.idl
2020-09-26 16:20:57 +08:00

1252 lines
26 KiB
Plaintext

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