OSDN Git Service

cd46d745ee016b67dabfad04140890875375094c
[mingw/mingw-org-wsl.git] / include / richole.h
1 /**
2  * @file richole.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _RICHOLE_H
25 #define _RICHOLE_H
26 #pragma GCC system_header
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 #pragma pack(push,4)
32 #define REO_GETOBJ_NO_INTERFACES        0
33 #define REO_GETOBJ_POLEOBJ      1
34 #define REO_GETOBJ_PSTG 2
35 #define REO_GETOBJ_POLESITE     4
36 #define REO_GETOBJ_ALL_INTERFACES       7
37 #define REO_CP_SELECTION ((ULONG)-1)
38 #define REO_IOB_SELECTION ((ULONG)-1)
39 #define REO_IOB_USE_CP ((ULONG)-2)
40 #define REO_NULL        0
41 #define REO_READWRITEMASK       0x3FL
42 #define REO_DONTNEEDPALETTE     32
43 #define REO_BLANK       16
44 #define REO_DYNAMICSIZE         8
45 #define REO_INVERTEDSELECT      4
46 #define REO_BELOWBASELINE       2
47 #define REO_RESIZABLE   1
48 #define REO_LINK        0x80000000
49 #define REO_STATIC      0x40000000
50 #define REO_SELECTED    0x08000000
51 #define REO_OPEN        0x4000000
52 #define REO_INPLACEACTIVE       0x2000000
53 #define REO_HILITED     0x1000000
54 #define REO_LINKAVAILABLE       0x800000
55 #define REO_GETMETAFILE 0x400000
56 #define RECO_PASTE      0
57 #define RECO_DROP       1
58 #define RECO_COPY       2
59 #define RECO_CUT        3
60 #define RECO_DRAG       4
61
62 extern const GUID IID_IRichEditOle;
63 extern const GUID IID_IRichEditOleCallback;
64 #ifndef INITGUID
65 typedef struct _reobject {
66         DWORD cbStruct;
67         LONG    cp;
68         CLSID   clsid;
69         LPOLEOBJECT     poleobj;
70         LPSTORAGE       pstg;
71         LPOLECLIENTSITE polesite;
72         SIZEL   sizel;
73         DWORD   dvaspect;
74         DWORD   dwFlags;
75         DWORD   dwUser;
76 } REOBJECT;
77
78 #define INTERFACE IRichEditOle
79 DECLARE_INTERFACE_(IRichEditOle, IUnknown)
80 {
81         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
82         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
83         STDMETHOD_(ULONG,Release)(THIS) PURE;
84         STDMETHOD(GetClientSite)(THIS_ LPOLECLIENTSITE*) PURE;
85         STDMETHOD_(LONG,GetObjectCount)(THIS) PURE;
86         STDMETHOD_(LONG,GetLinkCount)(THIS) PURE;
87         STDMETHOD(GetObject)(THIS_ LONG, REOBJECT*,DWORD) PURE;
88         STDMETHOD(InsertObject)(THIS_ REOBJECT*) PURE;
89         STDMETHOD(ConvertObject)(THIS_ LONG,REFCLSID,LPCSTR) PURE;
90         STDMETHOD(ActivateAs)(THIS_ REFCLSID,REFCLSID) PURE;
91         STDMETHOD(SetHostNames)(THIS_ LPCSTR,LPCSTR) PURE;
92         STDMETHOD(SetLinkAvailable)(THIS_ LONG,BOOL) PURE;
93         STDMETHOD(SetDvaspect)(THIS_ LONG,DWORD) PURE;
94         STDMETHOD(HandsOffStorage)(THIS_ LONG) PURE;
95         STDMETHOD(SaveCompleted)(THIS_ LONG,LPSTORAGE) PURE;
96         STDMETHOD(InPlaceDeactivate)(THIS) PURE;
97         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
98         STDMETHOD(GetClipboardData)(THIS_ CHARRANGE*,DWORD,LPDATAOBJECT*) PURE;
99         STDMETHOD(ImportDataObject)(THIS_ LPDATAOBJECT,CLIPFORMAT,HGLOBAL) PURE;
100 };
101 #undef INTERFACE
102 typedef IRichEditOle *LPRICHEDITOLE;
103
104 #define INTERFACE IRichEditOleCallback
105 DECLARE_INTERFACE_(IRichEditOleCallback, IUnknown)
106 {
107         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
108         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
109         STDMETHOD_(ULONG,Release)(THIS) PURE;
110         STDMETHOD(GetNewStorage)(THIS_ LPSTORAGE*) PURE;
111         STDMETHOD(GetInPlaceContext)(THIS_ LPOLEINPLACEFRAME*,LPOLEINPLACEUIWINDOW*,LPOLEINPLACEFRAMEINFO) PURE;
112         STDMETHOD(ShowContainerUI)(THIS_ BOOL) PURE;
113         STDMETHOD(QueryInsertObject)(THIS_ LPCLSID,LPSTORAGE,LONG) PURE;
114         STDMETHOD(DeleteObject)(THIS_ LPOLEOBJECT) PURE;
115         STDMETHOD(QueryAcceptData) (THIS_ LPDATAOBJECT,CLIPFORMAT*,DWORD,BOOL,HGLOBAL) PURE;
116         STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL) PURE;
117         STDMETHOD(GetClipboardData) (THIS_ CHARRANGE*,DWORD,LPDATAOBJECT*) PURE;
118         STDMETHOD(GetDragDropEffect) (THIS_ BOOL,DWORD,PDWORD) PURE;
119         STDMETHOD(GetContextMenu) (THIS_ WORD,LPOLEOBJECT,CHARRANGE*,HMENU*) PURE;
120 };
121 #undef INTERFACE
122 typedef IRichEditOleCallback FAR * LPRICHEDITOLECALLBACK;
123 #endif
124 #pragma pack(pop)
125 #ifdef __cplusplus
126 }
127 #endif
128 #endif