1 /**
2  * @file docobj.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 _DOCOBJ_H
25 #define _DOCOBJ_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 #define OLECMDERR_E_UNKNOWNGROUP (-2147221244)
34 #define OLECMDERR_E_DISABLED (-2147221247)
35 #define OLECMDERR_E_NOHELP (-2147221246)
36 #define OLECMDERR_E_CANCELED (-2147221245)
37 #define OLECMDERR_E_NOTSUPPORTED (-2147221248)
38 
39 typedef enum {
40 	OLECMDID_OPEN = 1,
41 	OLECMDID_NEW = 2,
42 	OLECMDID_SAVE = 3,
43 	OLECMDID_SAVEAS = 4,
44 	OLECMDID_SAVECOPYAS = 5,
45 	OLECMDID_PRINT = 6,
46 	OLECMDID_PRINTPREVIEW = 7,
47 	OLECMDID_PAGESETUP = 8,
48 	OLECMDID_SPELL = 9,
49 	OLECMDID_PROPERTIES = 10,
50 	OLECMDID_CUT = 11,
51 	OLECMDID_COPY = 12,
52 	OLECMDID_PASTE = 13,
53 	OLECMDID_PASTESPECIAL = 14,
54 	OLECMDID_UNDO = 15,
55 	OLECMDID_REDO = 16,
56 	OLECMDID_SELECTALL = 17,
57 	OLECMDID_CLEARSELECTION = 18,
58 	OLECMDID_ZOOM = 19,
59 	OLECMDID_GETZOOMRANGE = 20,
60 	OLECMDID_UPDATECOMMANDS = 21,
61 	OLECMDID_REFRESH = 22,
62 	OLECMDID_STOP = 23,
63 	OLECMDID_HIDETOOLBARS = 24,
64 	OLECMDID_SETPROGRESSMAX = 25,
65 	OLECMDID_SETPROGRESSPOS = 26,
66 	OLECMDID_SETPROGRESSTEXT = 27,
67 	OLECMDID_SETTITLE = 28,
68 	OLECMDID_SETDOWNLOADSTATE = 29,
69 	OLECMDID_STOPDOWNLOAD = 30
70 } OLECMDID;
71 typedef enum {
72 	OLECMDF_SUPPORTED = 1,
73 	OLECMDF_ENABLED = 2,
74 	OLECMDF_LATCHED = 4,
75 	OLECMDF_NINCHED = 8
76 } OLECMDF;
77 typedef enum {
78 	OLECMDEXECOPT_DODEFAULT = 0,
79 	OLECMDEXECOPT_PROMPTUSER = 1,
80 	OLECMDEXECOPT_DONTPROMPTUSER = 2,
81 	OLECMDEXECOPT_SHOWHELP = 3
82 } OLECMDEXECOPT;
83 
84 typedef struct _tagOLECMDTEXT {
85 	DWORD cmdtextf;
86 	ULONG cwActual;
87 	ULONG cwBuf;
88 	wchar_t rgwz[1];
89 } OLECMDTEXT;
90 typedef struct _tagOLECMD {
91 	ULONG cmdID;
92 	DWORD cmdf;
93 } OLECMD;
94 
95 typedef _COM_interface IOleInPlaceSite *LPOLEINPLACESITE;
96 typedef _COM_interface IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS;
97 
98 EXTERN_C const IID IID_IContinueCallback;
99 EXTERN_C const IID IID_IEnumOleDocumentViews;
100 EXTERN_C const IID IID_IPrint;
101 
102 EXTERN_C const IID IID_IOleDocumentView;
103 #define INTERFACE IOleDocumentView
DECLARE_INTERFACE_(IOleDocumentView,IUnknown)104 DECLARE_INTERFACE_(IOleDocumentView,IUnknown)
105 {
106 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
107 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
108 	STDMETHOD_(ULONG,Release)(THIS) PURE;
109 
110 	STDMETHOD(SetInPlaceSite)(THIS_ LPOLEINPLACESITE) PURE;
111 	STDMETHOD(GetInPlaceSite)(THIS_ LPOLEINPLACESITE*) PURE;
112 	STDMETHOD(GetDocument)(THIS_ IUnknown**) PURE;
113 	STDMETHOD(SetRect)(THIS_ LPRECT) PURE;
114 	STDMETHOD(GetRect)(THIS_ LPRECT) PURE;
115 	STDMETHOD(SetRectComplex)(THIS_ LPRECT,LPRECT,LPRECT,LPRECT) PURE;
116 	STDMETHOD(Show)(THIS_ BOOL) PURE;
117 	STDMETHOD(UIActivate)(THIS_ BOOL) PURE;
118 	STDMETHOD(Open)(THIS) PURE;
119 	STDMETHOD(Close)(THIS_ DWORD) PURE;
120 	STDMETHOD(SaveViewState)(THIS_ IStream*) PURE;
121 	STDMETHOD(ApplyViewState)(THIS_ IStream*) PURE;
122 	STDMETHOD(Clone)(THIS_ LPOLEINPLACESITE,IOleDocumentView**) PURE;
123 };
124 #undef INTERFACE
125 DECLARE_ENUMERATOR_(IEnumOleDocumentViews,IOleDocumentView);
126 
127 EXTERN_C const IID IID_IOleDocument;
128 #define INTERFACE IOleDocument
DECLARE_INTERFACE_(IOleDocument,IUnknown)129 DECLARE_INTERFACE_(IOleDocument,IUnknown)
130 {
131 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
132 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
133 	STDMETHOD_(ULONG,Release)(THIS) PURE;
134 
135 	STDMETHOD(CreateView)(THIS_ LPOLEINPLACESITE,IStream*,DWORD,IOleDocumentView**) PURE;
136 	STDMETHOD(GetDocMiscStatus)(THIS_ DWORD*) PURE;
137 	STDMETHOD(EnumViews)(THIS_ LPENUMOLEDOCUMENTVIEWS*,IOleDocumentView**) PURE;
138 };
139 #undef INTERFACE
140 
141 EXTERN_C const IID IID_IOleCommandTarget;
142 #define INTERFACE IOleCommandTarget
DECLARE_INTERFACE_(IOleCommandTarget,IUnknown)143 DECLARE_INTERFACE_(IOleCommandTarget,IUnknown)
144 {
145 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
146 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
147 	STDMETHOD_(ULONG,Release)(THIS) PURE;
148 
149 	STDMETHOD(QueryStatus)(THIS_ const GUID*,ULONG,OLECMD*,OLECMDTEXT*) PURE;
150 	STDMETHOD(Exec)(THIS_ const GUID*,DWORD,DWORD,VARIANTARG*,VARIANTARG*) PURE;
151 };
152 #undef INTERFACE
153 
154 EXTERN_C const IID IID_IOleDocumentSite;
155 #define INTERFACE IOleDocumentSite
DECLARE_INTERFACE_(IOleDocumentSite,IUnknown)156 DECLARE_INTERFACE_(IOleDocumentSite,IUnknown)
157 {
158 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
159 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
160 	STDMETHOD_(ULONG,Release)(THIS) PURE;
161 
162 	STDMETHOD(ActivateMe)(THIS_ IOleDocumentView*) PURE;
163 };
164 #undef INTERFACE
165 
166 #ifdef __cplusplus
167 }
168 #endif
169 #endif
170