2020-09-30 17:12:29 +02:00

412 lines
10 KiB
Plaintext

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1993 - 1995.
//
// File: ocx96.idl
//
// Contents: 96 extensions to OLE and OLE Controls.
//
//----------------------------------------------------------------------------
import "oaidl.idl";
import "oleidl.idl";
import "olectl.idl";
import "datapath.idl";
cpp_quote("#define OLEMISC_IGNOREACTIVATEWHENVISIBLE 0x00080000")
cpp_quote("#define OLEMISC_SUPPORTSMULTILEVELUNDO 0x00200000")
[
local,
object,
pointer_default(unique),
uuid(3af24290-0c96-11ce-a0cf-00aa00600ab8)
]
interface IAdviseSinkEx : IAdviseSink
{
typedef IAdviseSinkEx * LPADVISESINKEX;
void OnViewStatusChange([in] DWORD dwViewStatus);
}
cpp_quote("typedef IAdviseSinkEx * LPADVISESINKEX;")
[
local,
object,
pointer_default(unique),
uuid(1c2056cc-5ef4-101b-8bc8-00aa003e3b29)
]
interface IOleInPlaceObjectWindowless : IOleInPlaceObject
{
typedef IOleInPlaceObjectWindowless * LPOLEINPLACEOBJECTWINDOWLESS;
HRESULT OnWindowMessage([in] UINT msg, [in] WPARAM wParam, [in] LPARAM lparam, [out] LRESULT *plResult);
HRESULT GetDropTarget([out] IDropTarget **ppDropTarget);
}
cpp_quote("typedef IOleInPlaceObjectWindowless * LPOLEINPLACEOBJECTWINDOWLESS;")
[
local,
object,
pointer_default(unique),
uuid(9c2cad80-3424-11cf-b670-00aa004cd6d8)
]
interface IOleInPlaceSiteEx : IOleInPlaceSite
{
typedef
enum _ACTIVATEFLAGS
{
ACTIVATE_WINDOWLESS = 1,
}
ACTIVATEFLAGS;
HRESULT OnInPlaceActivateEx([out] BOOL *pfNoRedraw, [in] DWORD dwFlags);
HRESULT OnInPlaceDeactivateEx([in] BOOL fNoRedraw);
HRESULT RequestUIActivate();
}
cpp_quote("typedef IOleInPlaceSiteEx * LPOLEINPLACESITEEX;")
[
local,
object,
pointer_default(unique),
uuid(922eada0-3424-11cf-b670-00aa004cd6d8)
]
interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx
{
typedef IOleInPlaceSiteWindowless * LPOLEINPLACESITEWINDOWLESS;
cpp_quote("#define OLEDC_NODRAW 1")
cpp_quote("#define OLEDC_PAINTBKGND 2")
cpp_quote("#define OLEDC_OFFSCREEN 4")
HRESULT CanWindowlessActivate();
HRESULT GetCapture();
HRESULT SetCapture([in] BOOL fCapture);
HRESULT GetFocus();
HRESULT SetFocus([in] BOOL fFocus);
HRESULT GetDC([in] LPCRECT prc, [in] DWORD grfFlags, [out] HDC * phDC);
HRESULT ReleaseDC([in] HDC hDC);
HRESULT InvalidateRect([in] LPCRECT prc, [in] BOOL fErase);
HRESULT InvalidateRgn([in] HRGN hrgn, [in] BOOL fErase);
HRESULT ScrollRect([in] int dx,
[in] int dy,
[in] LPCRECT prcScroll,
[in] LPCRECT prcClip);
HRESULT AdjustRect([in, out] LPRECT prc);
HRESULT OnDefWindowMessage([in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult);
}
cpp_quote("typedef IOleInPlaceSiteWindowless * LPOLEINPLACESITEWINDOWLESS;")
[
local,
object,
pointer_default(unique),
uuid(3af24292-0c96-11ce-a0cf-00aa00600ab8)
]
interface IViewObjectEx : IViewObject2
{
typedef IViewObjectEx * LPVIEWOBJECTEX;
typedef
enum _VIEWSTATUS
{
VIEWSTATUS_OPAQUE = 1,
VIEWSTATUS_SOLIDBKGND = 2,
VIEWSTATUS_DVASPECTOPAQUE = 4,
VIEWSTATUS_DVASPECTTRANSPARENT = 8,
}
VIEWSTATUS;
typedef enum _HITRESULT
{
HITRESULT_OUTSIDE = 0,
HITRESULT_TRANSPARENT = 1,
HITRESULT_CLOSE = 2,
HITRESULT_HIT = 3
}
HITRESULT;
typedef
enum _DVASPECT2
{
DVASPECT_OPAQUE = 16,
DVASPECT_TRANSPARENT = 32,
}
DVASPECT2;
typedef struct tagExtentInfo
{
UINT cb;
DWORD dwExtentMode;
SIZEL sizelProposed;
} DVEXTENTINFO;
typedef enum tagExtentMode
{
DVEXTENT_CONTENT,
DVEXTENT_INTEGRAL
} DVEXTENTMODE;
typedef enum tagAspectInfoFlag
{
DVASPECTINFOFLAG_CANOPTIMIZE = 1
} DVASPECTINFOFLAG;
typedef struct tagAspectInfo
{
UINT cb;
DWORD dwFlags;
} DVASPECTINFO;
HRESULT GetRect([in] DWORD dwAspect, [out] LPRECTL pRect);
HRESULT GetViewStatus([out] DWORD * pdwStatus);
HRESULT QueryHitPoint(
[in] DWORD dwAspect,
[in] LPCRECT pRectBounds,
[in] POINT ptlLoc,
[in] LONG lCloseHint,
[out] DWORD * pHitResult);
HRESULT QueryHitRect(
[in] DWORD dwAspect,
[in] LPCRECT pRectBounds,
[in] LPCRECT prcLoc,
[in] LONG lCloseHint,
[out] DWORD * pHitResult);
HRESULT GetNaturalExtent (
[in] DWORD dwAspect,
[in] LONG lindex,
[in] DVTARGETDEVICE * ptd,
[in] HDC hicTargetDev,
[in] DVEXTENTINFO * pExtentInfo,
[out] LPSIZEL psizel);
}
cpp_quote("typedef IViewObjectEx * LPVIEWOBJECTEX;")
// --------------------------------------------------------------------------
//
// Undo interfaces
//
// --------------------------------------------------------------------------
interface IOleUndoManager;
cpp_quote("#define UAS_NORMAL 0")
cpp_quote("#define UAS_BLOCKED 1")
cpp_quote("#define UAS_NOPARENTENABLE 2")
cpp_quote("#define UAS_MASK 0x03")
[
object,
pointer_default(unique),
uuid(894ad3b0-ef97-11ce-9bc9-00aa00608e01)
]
interface IOleUndoUnit : IUnknown
{
HRESULT Do([in] IOleUndoManager * pUndoManager);
HRESULT GetDescription([out] BSTR *pbstr);
HRESULT GetUnitType([out] CLSID *pclsid, [out] LONG * plID);
HRESULT OnNextAdd(void);
}
cpp_quote("typedef IOleUndoUnit * LPOLEUNDOUNIT;")
[
object,
pointer_default(unique),
uuid(a1faf330-ef97-11ce-9bc9-00aa00608e01)
]
interface IOleParentUndoUnit : IOleUndoUnit
{
HRESULT Open([in] IOleParentUndoUnit * pPUU);
HRESULT Close([in] IOleParentUndoUnit * pPUU, [in] BOOL fCommit);
HRESULT Add([in] IOleUndoUnit * pUU);
HRESULT FindUnit([in] IOleUndoUnit * pUU);
HRESULT GetParentState([out] DWORD * pdwState);
}
cpp_quote("typedef IOleParentUndoUnit * LPOLEPARENTUNDOUNIT;")
[
object,
pointer_default(unique),
uuid(b3e7c340-ef97-11ce-9bc9-00aa00608e01)
]
interface IEnumOleUndoUnits : IUnknown
{
HRESULT Next
(
[in] ULONG celt,
#ifndef __MKTYPLIB__
[out, size_is(celt), length_is((ULONG) (pceltFetched != 0) ? *pceltFetched : celt)]
#endif
[out] IOleUndoUnit ** rgelt,
[in, out] ULONG *pceltFetched
);
HRESULT Skip([in] ULONG celt);
HRESULT Reset(void);
HRESULT Clone([out] IEnumOleUndoUnits **ppenum);
}
cpp_quote("typedef IEnumOleUndoUnits * LPENUMOLEUNDOUNITS;")
cpp_quote("#define SID_SOleUndoManager IID_IOleUndoManager")
[
object,
pointer_default(unique),
uuid(d001f200-ef97-11ce-9bc9-00aa00608e01)
]
interface IOleUndoManager : IUnknown
{
HRESULT Open([in] IOleParentUndoUnit * pPUU);
HRESULT Close([in] IOleParentUndoUnit *pPUU, [in] BOOL fCommit);
HRESULT Add([in] IOleUndoUnit * pUU);
HRESULT GetOpenParentState([out] DWORD * pdwState);
HRESULT DiscardFrom([in] IOleUndoUnit * pUU);
HRESULT UndoTo([in] IOleUndoUnit * pUU);
HRESULT RedoTo([in] IOleUndoUnit * pUU);
HRESULT EnumUndoable([out] IEnumOleUndoUnits **ppEnum);
HRESULT EnumRedoable([out] IEnumOleUndoUnits **ppEnum);
HRESULT GetLastUndoDescription([out] BSTR *pbstr);
HRESULT GetLastRedoDescription([out] BSTR *pbstr);
HRESULT Enable([in] BOOL fEnable);
}
cpp_quote("typedef IOleUndoManager * LPOLEUNDOMANAGER;")
cpp_quote("#define QACONTAINER_SHOWHATCHING 0x0001")
cpp_quote("#define QACONTAINER_SHOWGRABHANDLES 0x0002")
cpp_quote("#define QACONTAINER_USERMODE 0x0004")
cpp_quote("#define QACONTAINER_DISPLAYASDEFAULT 0x0008")
cpp_quote("#define QACONTAINER_UIDEAD 0x0010")
cpp_quote("#define QACONTAINER_AUTOCLIP 0x0020")
cpp_quote("#define QACONTAINER_MESSAGEREFLECT 0x0040")
cpp_quote("#define QACONTAINER_SUPPORTSMNEMONICS 0x0080")
typedef struct _QACONTAINER
{
ULONG cbSize;
IOleClientSite * pClientSite;
IAdviseSinkEx * pAdviseSink;
IPropertyNotifySink* pPropertyNotifySink;
IUnknown * pUnkEventSink;
DWORD dwAmbientFlags;
OLE_COLOR colorFore;
OLE_COLOR colorBack;
IFont * pFont;
IOleUndoManager * pUndoMgr;
DWORD dwAppearance;
LONG lcid;
HPALETTE hpal;
IBindHost * pBindHost;
} QACONTAINER;
typedef struct _QACONTROL
{
ULONG cbSize;
DWORD dwMiscStatus;
DWORD dwViewStatus;
DWORD dwEventCookie;
DWORD dwPropNotifyCookie;
DWORD dwPointerActivationPolicy;
} QACONTROL;
[local, object, pointer_default(unique), uuid(cf51ed10-62fe-11cf-bf86-00a0c9034836)]
interface IQuickActivate : IUnknown
{
HRESULT QuickActivate(
[in] QACONTAINER *pqacontainer,
[out] QACONTROL *pqacontrol);
HRESULT SetContentExtent(LPSIZEL lpsizel);
HRESULT GetContentExtent(LPSIZEL lpsizel);
}
cpp_quote("typedef IQuickActivate * LPQUICKACTIVATE;")
typedef enum _POINTERINACTIVE
{
POINTERINACTIVE_ACTIVATEONENTRY = 1,
POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
POINTERINACTIVE_ACTIVATEONDRAG = 4
} POINTERINACTIVE;
[
local,
object,
pointer_default(unique),
uuid(55980ba0-35aa-11cf-b671-00aa004cd6d8)
]
interface IPointerInactive : IUnknown
{
HRESULT GetActivationPolicy
(
[out] DWORD * pdwPolicy
);
HRESULT OnInactiveMouseMove
(
[in] LPCRECT pRectBounds,
[in] long x,
[in] long y,
[in] DWORD grfKeyState
);
HRESULT OnInactiveSetCursor
(
[in] LPCRECT pRectBounds,
[in] long x,
[in] long y,
[in] DWORD dwMouseMsg,
[in] BOOL fSetAlways
);
}
cpp_quote("typedef IPointerInactive * LPPOINTERINACTIVE;")