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