1 /***********************************************************************\
2 * richole.d *
3 * *
4 * Windows API header module *
5 * *
6 * Translated from MinGW Windows headers *
7 * *
8 * Placed into public domain *
9 \***********************************************************************/
10 module win32.richole;
11 version(Windows):
12
13 private import win32.objfwd, win32.objidl, win32.ole2, win32.unknwn,
14 win32.windef;
15 private import win32.richedit; // for CHARRANGE
16
17 align(4):
18
19 const ULONG
20 REO_GETOBJ_NO_INTERFACES = 0,
21 REO_GETOBJ_POLEOBJ = 1,
22 REO_GETOBJ_PSTG = 2,
23 REO_GETOBJ_POLESITE = 4,
24 REO_GETOBJ_ALL_INTERFACES = 7,
25 REO_CP_SELECTION = -1,
26 REO_IOB_SELECTION = -1,
27 REO_IOB_USE_CP = -2,
28 REO_NULL = 0,
29 REO_READWRITEMASK = 0x3F,
30 REO_DONTNEEDPALETTE = 32,
31 REO_BLANK = 16,
32 REO_DYNAMICSIZE = 8,
33 REO_INVERTEDSELECT = 4,
34 REO_BELOWBASELINE = 2,
35 REO_RESIZABLE = 1,
36 REO_LINK = 0x80000000,
37 REO_STATIC = 0x40000000,
38 REO_SELECTED = 0x08000000,
39 REO_OPEN = 0x4000000,
40 REO_INPLACEACTIVE = 0x2000000,
41 REO_HILITED = 0x1000000,
42 REO_LINKAVAILABLE = 0x800000,
43 REO_GETMETAFILE = 0x400000;
44
45 enum {
46 RECO_PASTE = 0,
47 RECO_DROP,
48 RECO_COPY,
49 RECO_CUT,
50 RECO_DRAG // = 4
51 }
52
53 extern (C) extern const GUID
54 IID_IRichEditOle,
55 IID_IRichEditOleCallback;
56
57 struct REOBJECT {
58 DWORD cbStruct = REOBJECT.sizeof;
59 LONG cp;
60 CLSID clsid;
61 LPOLEOBJECT poleobj;
62 LPSTORAGE pstg;
63 LPOLECLIENTSITE polesite;
64 SIZEL sizel;
65 DWORD dvaspect;
66 DWORD dwFlags;
67 DWORD dwUser;
68 }
69
70 interface IRichEditOle : IUnknown {
71 HRESULT GetClientSite(LPOLECLIENTSITE*);
72 LONG GetObjectCount();
73 LONG GetLinkCount();
74 HRESULT GetObject(LONG, REOBJECT*, DWORD);
75 HRESULT InsertObject(REOBJECT*);
76 HRESULT ConvertObject(LONG, REFCLSID, LPCSTR);
77 HRESULT ActivateAs(REFCLSID, REFCLSID);
78 HRESULT SetHostNames(LPCSTR, LPCSTR);
79 HRESULT SetLinkAvailable(LONG, BOOL);
80 HRESULT SetDvaspect(LONG, DWORD);
81 HRESULT HandsOffStorage(LONG);
82 HRESULT SaveCompleted(LONG, LPSTORAGE);
83 HRESULT InPlaceDeactivate();
84 HRESULT ContextSensitiveHelp(BOOL);
85 HRESULT GetClipboardData(CHARRANGE*, DWORD, LPDATAOBJECT*);
86 HRESULT ImportDataObject(LPDATAOBJECT, CLIPFORMAT, HGLOBAL);
87 };
88 alias IRichEditOle LPRICHEDITOLE;
89
90 interface IRichEditOleCallback : IUnknown {
91 HRESULT GetNewStorage(LPSTORAGE*);
92 HRESULT GetInPlaceContext(LPOLEINPLACEFRAME*, LPOLEINPLACEUIWINDOW*, LPOLEINPLACEFRAMEINFO);
93 HRESULT ShowContainerUI(BOOL);
94 HRESULT QueryInsertObject(LPCLSID, LPSTORAGE, LONG);
95 HRESULT DeleteObject(LPOLEOBJECT);
96 HRESULT QueryAcceptData(LPDATAOBJECT, CLIPFORMAT*, DWORD, BOOL, HGLOBAL);
97 HRESULT ContextSensitiveHelp(BOOL);
98 HRESULT GetClipboardData(CHARRANGE*, DWORD, LPDATAOBJECT*);
99 HRESULT GetDragDropEffect(BOOL, DWORD, PDWORD);
100 HRESULT GetContextMenu(WORD, LPOLEOBJECT, CHARRANGE*, HMENU*);
101 };
102 alias IRichEditOleCallback LPRICHEDITOLECALLBACK;