Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

959 lines (778 sloc) 22.737 kb
/*
* 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;
cpp_quote("#include <winuser.h>")
/*****************************************************************************
* 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_ONLYUSER = 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);
}
Jump to Line
Something went wrong with that request. Please try again.