summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/Graphics/shaderlib/wine/include/oleidl.idl
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/oleidl.idl')
-rw-r--r--src/VBox/Devices/Graphics/shaderlib/wine/include/oleidl.idl967
1 files changed, 967 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/oleidl.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/oleidl.idl
new file mode 100644
index 00000000..2e36db9d
--- /dev/null
+++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/oleidl.idl
@@ -0,0 +1,967 @@
+/*
+ * 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
+ */
+
+/*
+ * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
+ * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
+ * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
+ * a choice of LGPL license versions is made available with the language indicating
+ * that LGPLv2 or any later version may be used, or where a choice of which version
+ * of the LGPL is applied is otherwise unspecified.
+ */
+
+#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);
+}