OSDN Git Service

* NEWS: Add and adjust release notes for 4.0.
[mingw/mingw-org-wsl.git] / include / richole.h
1 /**
2  * @file richole.h
3  * Copyright 2012, 2013 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 #include <_mingw.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 #pragma pack(push,4)
34
35 #define REO_GETOBJ_NO_INTERFACES        0
36 #define REO_GETOBJ_POLEOBJ      1
37 #define REO_GETOBJ_PSTG 2
38 #define REO_GETOBJ_POLESITE     4
39 #define REO_GETOBJ_ALL_INTERFACES       7
40 #define REO_CP_SELECTION ((ULONG)-1)
41 #define REO_IOB_SELECTION ((ULONG)-1)
42 #define REO_IOB_USE_CP ((ULONG)-2)
43 #define REO_NULL        0
44 #define REO_READWRITEMASK       0x3FL
45 #define REO_DONTNEEDPALETTE     32
46 #define REO_BLANK       16
47 #define REO_DYNAMICSIZE         8
48 #define REO_INVERTEDSELECT      4
49 #define REO_BELOWBASELINE       2
50 #define REO_RESIZABLE   1
51 #define REO_LINK        0x80000000
52 #define REO_STATIC      0x40000000
53 #define REO_SELECTED    0x08000000
54 #define REO_OPEN        0x4000000
55 #define REO_INPLACEACTIVE       0x2000000
56 #define REO_HILITED     0x1000000
57 #define REO_LINKAVAILABLE       0x800000
58 #define REO_GETMETAFILE 0x400000
59 #define RECO_PASTE      0
60 #define RECO_DROP       1
61 #define RECO_COPY       2
62 #define RECO_CUT        3
63 #define RECO_DRAG       4
64
65 extern const GUID IID_IRichEditOle;
66 extern const GUID IID_IRichEditOleCallback;
67
68 #ifndef INITGUID
69 typedef struct _reobject {
70         DWORD cbStruct;
71         LONG    cp;
72         CLSID   clsid;
73         LPOLEOBJECT     poleobj;
74         LPSTORAGE       pstg;
75         LPOLECLIENTSITE polesite;
76         SIZEL   sizel;
77         DWORD   dvaspect;
78         DWORD   dwFlags;
79         DWORD   dwUser;
80 } REOBJECT;
81
82 #define INTERFACE IRichEditOle
83 DECLARE_INTERFACE_(IRichEditOle, IUnknown)
84 {
85         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
86         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
87         STDMETHOD_(ULONG,Release)(THIS) PURE;
88         STDMETHOD(GetClientSite)(THIS_ LPOLECLIENTSITE*) PURE;
89         STDMETHOD_(LONG,GetObjectCount)(THIS) PURE;
90         STDMETHOD_(LONG,GetLinkCount)(THIS) PURE;
91         STDMETHOD(GetObject)(THIS_ LONG, REOBJECT*,DWORD) PURE;
92         STDMETHOD(InsertObject)(THIS_ REOBJECT*) PURE;
93         STDMETHOD(ConvertObject)(THIS_ LONG,REFCLSID,LPCSTR) PURE;
94         STDMETHOD(ActivateAs)(THIS_ REFCLSID,REFCLSID) PURE;
95         STDMETHOD(SetHostNames)(THIS_ LPCSTR,LPCSTR) PURE;
96         STDMETHOD(SetLinkAvailable)(THIS_ LONG,BOOL) PURE;
97         STDMETHOD(SetDvaspect)(THIS_ LONG,DWORD) PURE;
98         STDMETHOD(HandsOffStorage)(THIS_ LONG) PURE;
99         STDMETHOD(SaveCompleted)(THIS_ LONG,LPSTORAGE) PURE;
100         STDMETHOD(InPlaceDeactivate)(THIS) PURE;
101         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
102         STDMETHOD(GetClipboardData)(THIS_ CHARRANGE*,DWORD,LPDATAOBJECT*) PURE;
103         STDMETHOD(ImportDataObject)(THIS_ LPDATAOBJECT,CLIPFORMAT,HGLOBAL) PURE;
104 };
105 #undef INTERFACE
106 typedef IRichEditOle *LPRICHEDITOLE;
107
108 #define INTERFACE IRichEditOleCallback
109 DECLARE_INTERFACE_(IRichEditOleCallback, IUnknown)
110 {
111         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
112         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
113         STDMETHOD_(ULONG,Release)(THIS) PURE;
114         STDMETHOD(GetNewStorage)(THIS_ LPSTORAGE*) PURE;
115         STDMETHOD(GetInPlaceContext)(THIS_ LPOLEINPLACEFRAME*,LPOLEINPLACEUIWINDOW*,LPOLEINPLACEFRAMEINFO) PURE;
116         STDMETHOD(ShowContainerUI)(THIS_ BOOL) PURE;
117         STDMETHOD(QueryInsertObject)(THIS_ LPCLSID,LPSTORAGE,LONG) PURE;
118         STDMETHOD(DeleteObject)(THIS_ LPOLEOBJECT) PURE;
119         STDMETHOD(QueryAcceptData) (THIS_ LPDATAOBJECT,CLIPFORMAT*,DWORD,BOOL,HGLOBAL) PURE;
120         STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL) PURE;
121         STDMETHOD(GetClipboardData) (THIS_ CHARRANGE*,DWORD,LPDATAOBJECT*) PURE;
122         STDMETHOD(GetDragDropEffect) (THIS_ BOOL,DWORD,PDWORD) PURE;
123         STDMETHOD(GetContextMenu) (THIS_ WORD,LPOLEOBJECT,CHARRANGE*,HMENU*) PURE;
124 };
125 #undef INTERFACE
126 typedef IRichEditOleCallback FAR * LPRICHEDITOLECALLBACK;
127 #endif
128
129 #pragma pack(pop)
130
131 #ifdef __cplusplus
132 }
133 #endif
134 #endif