Fills the name of the arguments of the COM methods, else MSVC doesn't
[wine/multimedia.git] / include / ole.h
blob1277a9151cd615dd12b6379c14635d9146f6bb26
1 /*
2 * Declarations for OLESVR and OLECLI
4 * Copyright (C) the Wine project
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef __WINE_OLE_H
22 #define __WINE_OLE_H
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
28 #include "windef.h"
29 #include "wine/windef16.h"
30 #include "objbase.h"
32 struct tagLOGPALETTE;
34 /* object types */
35 #define OT_LINK 1
36 #define OT_EMBEDDED 2
37 #define OT_STATIC 3
39 /* activate verbs */
40 #define OLEVERB_PRIMARY 0
42 typedef enum
44 OLE_OK,
45 OLE_WAIT_FOR_RELEASE,
46 OLE_BUSY,
47 OLE_ERROR_PROTECT_ONLY,
48 OLE_ERROR_MEMORY,
49 OLE_ERROR_STREAM,
50 OLE_ERROR_STATIC,
51 OLE_ERROR_BLANK,
52 OLE_ERROR_DRAW,
53 OLE_ERROR_METAFILE,
54 OLE_ERROR_ABORT,
55 OLE_ERROR_CLIPBOARD,
56 OLE_ERROR_FORMAT,
57 OLE_ERROR_OBJECT,
58 OLE_ERROR_OPTION,
59 OLE_ERROR_PROTOCOL,
60 OLE_ERROR_ADDRESS,
61 OLE_ERROR_NOT_EQUAL,
62 OLE_ERROR_HANDLE,
63 OLE_ERROR_GENERIC,
64 OLE_ERROR_CLASS,
65 OLE_ERROR_SYNTAX,
66 OLE_ERROR_DATATYPE,
67 OLE_ERROR_PALETTE,
68 OLE_ERROR_NOT_LINK,
69 OLE_ERROR_NOT_EMPTY,
70 OLE_ERROR_SIZE,
71 OLE_ERROR_DRIVE,
72 OLE_ERROR_NETWORK,
73 OLE_ERROR_NAME,
74 OLE_ERROR_TEMPLATE,
75 OLE_ERROR_NEW,
76 OLE_ERROR_EDIT,
77 OLE_ERROR_OPEN,
78 OLE_ERROR_NOT_OPEN,
79 OLE_ERROR_LAUNCH,
80 OLE_ERROR_COMM,
81 OLE_ERROR_TERMINATE,
82 OLE_ERROR_COMMAND,
83 OLE_ERROR_SHOW,
84 OLE_ERROR_DOVERB,
85 OLE_ERROR_ADVISE_NATIVE,
86 OLE_ERROR_ADVISE_PICT,
87 OLE_ERROR_ADVISE_RENAME,
88 OLE_ERROR_POKE_NATIVE,
89 OLE_ERROR_REQUEST_NATIVE,
90 OLE_ERROR_REQUEST_PICT,
91 OLE_ERROR_SERVER_BLOCKED,
92 OLE_ERROR_REGISTRATION,
93 OLE_ERROR_ALREADY_REGISTERED,
94 OLE_ERROR_TASK,
95 OLE_ERROR_OUTOFDATE,
96 OLE_ERROR_CANT_UPDATE_CLIENT,
97 OLE_ERROR_UPDATE,
98 OLE_ERROR_SETDATA_FORMAT,
99 OLE_ERROR_STATIC_FROM_OTHER_OS,
100 OLE_WARN_DELETE_DATA = 1000
101 } OLESTATUS;
103 typedef enum {
104 OLE_SERVER_MULTI,
105 OLE_SERVER_SINGLE
106 } OLE_SERVER_USE;
108 typedef enum {
109 OLE_CHANGED,
110 OLE_SAVED,
111 OLE_CLOSED,
112 OLE_RENAMED,
113 OLE_QUERY_PAINT,
114 OLE_RELEASE,
115 OLE_QUERY_RETRY
116 } OLE_NOTIFICATION;
118 typedef enum {
119 olerender_none,
120 olerender_draw,
121 olerender_format
122 } OLEOPT_RENDER;
124 typedef enum {
125 oleupdate_always,
126 oleupdate_onsave,
127 oleupdate_oncall,
128 oleupdate_onclose
129 } OLEOPT_UPDATE;
131 typedef LONG LHSERVER;
132 typedef LONG LHSERVERDOC;
133 typedef LONG LHCLIENTDOC;
134 typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */
135 typedef OLEOPT_UPDATE* LPOLEOPT_UPDATE;
137 typedef enum {
138 OLE_NONE, /* none */
139 OLE_DELETE, /* delete object */
140 OLE_LNKPASTE, /* link paste */
141 OLE_EMBPASTE, /* paste(and update) */
142 OLE_SHOW,
143 OLE_RUN,
144 OLE_ACTIVATE,
145 OLE_UPDATE,
146 OLE_CLOSE,
147 OLE_RECONNECT,
148 OLE_SETUPDATEOPTIONS,
149 OLE_SERVERRUNLAUNCH, /* unlaunch (terminate?) server */
150 OLE_LOADFROMSTREAM, /* (auto reconnect) */
151 OLE_SETDATA, /* OleSetData */
152 OLE_REQUESTDATA, /* OleRequestData */
153 OLE_OTHER,
154 OLE_CREATE,
155 OLE_CREATEFROMTEMPLATE,
156 OLE_CREATELINKFROMFILE,
157 OLE_COPYFROMLNK,
158 OLE_CREATREFROMFILE,
159 OLE_CREATEINVISIBLE
160 } OLE_RELEASE_METHOD;
162 typedef struct _OLETARGETDEVICE {
163 UINT16 otdDeviceNameOffset;
164 UINT16 otdDriverNameOffset;
165 UINT16 otdPortNameOffset;
166 UINT16 otdExtDevmodeOffset;
167 UINT16 otdExtDevmodeSize;
168 UINT16 otdEnvironmentOffset;
169 UINT16 otdEnvironmentSize;
170 BYTE otdData[1];
171 /* ... */
172 } OLETARGETDEVICE;
174 typedef struct _OLESERVERDOC* LPOLESERVERDOC;
175 typedef struct _OLEOBJECT* LPOLEOBJECT;
176 typedef struct _OLECLIENT* LPOLECLIENT;
177 typedef struct _OLESERVERDOCVTBL {
178 OLESTATUS (CALLBACK *Save)(LPOLESERVERDOC);
179 OLESTATUS (CALLBACK *Close)(LPOLESERVERDOC);
180 OLESTATUS (CALLBACK *SetHostNames)(LPOLESERVERDOC,LPCOLESTR16,LPCOLESTR16);
181 OLESTATUS (CALLBACK *SetDocDimensions)(LPOLESERVERDOC,LPRECT16);
182 #ifdef __WINE__
183 /* GetObject is a WINELIB_NAME macro so it cannot be used in Wine itself */
184 OLESTATUS (CALLBACK *pGetObject)(LPOLESERVERDOC,LPCOLESTR16,LPOLEOBJECT*,LPOLECLIENT);
185 #else
186 OLESTATUS (CALLBACK *GetObject)(LPOLESERVERDOC,LPCOLESTR16,LPOLEOBJECT*,LPOLECLIENT);
187 #endif
188 OLESTATUS (CALLBACK *Release)(LPOLESERVERDOC);
189 OLESTATUS (CALLBACK *SetColorScheme)(LPOLESERVERDOC,struct tagLOGPALETTE*);
190 OLESTATUS (CALLBACK *Execute)(LPOLESERVERDOC,HGLOBAL16);
191 } OLESERVERDOCVTBL;
192 typedef OLESERVERDOCVTBL* LPOLESERVERDOCVTBL;
193 typedef struct _OLESERVERDOC {
194 LPOLESERVERDOCVTBL lpvtbl;
195 /* server provided state info */
196 } OLESERVERDOC;
198 typedef struct _OLESERVER* LPOLESERVER;
199 typedef struct _OLESERVERVTBL {
200 OLESTATUS (CALLBACK *Open)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPOLESERVERDOC *);
201 OLESTATUS (CALLBACK *Create)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC*);
202 OLESTATUS (CALLBACK *CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC *);
203 OLESTATUS (CALLBACK *Edit)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC *);
204 OLESTATUS (CALLBACK *Exit)(LPOLESERVER);
205 OLESTATUS (CALLBACK *Release)(LPOLESERVER);
206 OLESTATUS (CALLBACK *Execute)(LPOLESERVER);
207 } OLESERVERVTBL;
208 typedef OLESERVERVTBL *LPOLESERVERVTBL;
209 typedef struct _OLESERVER {
210 LPOLESERVERVTBL lpvtbl;
211 /* server specific data */
212 } OLESERVER;
213 typedef struct _OLECLIENTVTBL {
214 int (CALLBACK *CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT);
215 } OLECLIENTVTBL;
216 typedef OLECLIENTVTBL *LPOLECLIENTVTBL;
218 typedef struct _OLECLIENT {
219 LPOLECLIENTVTBL lpvtbl;
220 /* client data... */
221 } OLECLIENT;
223 struct _OLESTREAM;
225 typedef struct _OLEOBJECTVTBL {
226 void CALLBACK *(*QueryProtocol)(LPOLEOBJECT,LPCOLESTR16);
227 OLESTATUS (CALLBACK *Release)(LPOLEOBJECT);
228 OLESTATUS (CALLBACK *Show)(LPOLEOBJECT,BOOL16);
229 OLESTATUS (CALLBACK *DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16);
230 OLESTATUS (CALLBACK *GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
231 OLESTATUS (CALLBACK *SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
232 OLESTATUS (CALLBACK *SetTargetDevice)(LPOLEOBJECT,HGLOBAL16);
233 OLESTATUS (CALLBACK *SetBounds)(LPOLEOBJECT,LPRECT16);
234 OLESTATUS (CALLBACK *EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
235 OLESTATUS (CALLBACK *SetColorScheme)(LPOLEOBJECT,struct tagLOGPALETTE*);
236 OLESTATUS (CALLBACK *Delete)(LPOLEOBJECT);
237 OLESTATUS (CALLBACK *SetHostNames)(LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
238 OLESTATUS (CALLBACK *SaveToStream)(LPOLEOBJECT,struct _OLESTREAM*);
239 OLESTATUS (CALLBACK *Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
240 OLESTATUS (CALLBACK *CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
241 OLESTATUS (CALLBACK *Equal)(LPOLEOBJECT,LPOLEOBJECT);
242 OLESTATUS (CALLBACK *CopyToClipBoard)(LPOLEOBJECT);
243 OLESTATUS (CALLBACK *Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
244 OLESTATUS (CALLBACK *Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
245 OLESTATUS (CALLBACK *Execute)(LPOLEOBJECT,HGLOBAL16,UINT16);
246 OLESTATUS (CALLBACK *Close)(LPOLEOBJECT);
247 OLESTATUS (CALLBACK *Update)(LPOLEOBJECT);
248 OLESTATUS (CALLBACK *Reconnect)(LPOLEOBJECT);
249 OLESTATUS (CALLBACK *ObjectConvert)(LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT*);
250 OLESTATUS (CALLBACK *GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE);
251 OLESTATUS (CALLBACK *SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
252 OLESTATUS (CALLBACK *Rename)(LPOLEOBJECT,LPCOLESTR16);
253 OLESTATUS (CALLBACK *QueryName)(LPOLEOBJECT,LPSTR,LPUINT16);
254 OLESTATUS (CALLBACK *QueryType)(LPOLEOBJECT,LPLONG);
255 OLESTATUS (CALLBACK *QueryBounds)(LPOLEOBJECT,LPRECT16);
256 OLESTATUS (CALLBACK *QuerySize)(LPOLEOBJECT,LPDWORD);
257 OLESTATUS (CALLBACK *QueryOpen)(LPOLEOBJECT);
258 OLESTATUS (CALLBACK *QueryOutOfDate)(LPOLEOBJECT);
259 OLESTATUS (CALLBACK *QueryReleaseStatus)(LPOLEOBJECT);
260 OLESTATUS (CALLBACK *QueryReleaseError)(LPOLEOBJECT);
261 OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(LPOLEOBJECT);
262 OLESTATUS (CALLBACK *RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
263 OLESTATUS (CALLBACK *ObjectLong)(LPOLEOBJECT,UINT16,LPLONG);
264 } OLEOBJECTVTBL;
265 typedef OLEOBJECTVTBL* LPOLEOBJECTVTBL;
267 typedef struct _OLEOBJECT {
268 LPOLEOBJECTVTBL lpvtbl;
269 } OLEOBJECT;
271 #ifdef __cplusplus
272 } /*extern*/
273 #endif
275 #endif /* __WINE_OLE_H */