1 | /* $Id: ole.h,v 1.6 2001-04-26 19:23:31 sandervl Exp $ */
|
---|
2 | /*
|
---|
3 | * ole.h - Declarations for OLESVR and OLECLI
|
---|
4 | */
|
---|
5 |
|
---|
6 | #ifndef __WINE_OLE_H
|
---|
7 | #define __WINE_OLE_H
|
---|
8 |
|
---|
9 | #include "wingdi.h" /* LOGPALETTE */
|
---|
10 |
|
---|
11 | /* FIXME: we need to include wtypes.h mainly, it seems, because we need BSTR.
|
---|
12 | * Normally none of the APIs in ole.h depend on it. It is most likey that they should
|
---|
13 | * be moved to ole2.h (which includes objbase.h and thus wtypes.h) or some other
|
---|
14 | * OLE include
|
---|
15 | */
|
---|
16 | #include "wtypes.h"
|
---|
17 |
|
---|
18 | #ifdef __cplusplus
|
---|
19 | extern "C" {
|
---|
20 | #endif
|
---|
21 |
|
---|
22 | /* object types */
|
---|
23 | #define OT_LINK 1
|
---|
24 | #define OT_EMBEDDED 2
|
---|
25 | #define OT_STATIC 3
|
---|
26 |
|
---|
27 | /* activate verbs */
|
---|
28 | #define OLEVERB_PRIMARY 0
|
---|
29 |
|
---|
30 | typedef enum
|
---|
31 | {
|
---|
32 | OLE_OK,
|
---|
33 | OLE_WAIT_FOR_RELEASE,
|
---|
34 | OLE_BUSY,
|
---|
35 | OLE_ERROR_PROTECT_ONLY,
|
---|
36 | OLE_ERROR_MEMORY,
|
---|
37 | OLE_ERROR_STREAM,
|
---|
38 | OLE_ERROR_STATIC,
|
---|
39 | OLE_ERROR_BLANK,
|
---|
40 | OLE_ERROR_DRAW,
|
---|
41 | OLE_ERROR_METAFILE,
|
---|
42 | OLE_ERROR_ABORT,
|
---|
43 | OLE_ERROR_CLIPBOARD,
|
---|
44 | OLE_ERROR_FORMAT,
|
---|
45 | OLE_ERROR_OBJECT,
|
---|
46 | OLE_ERROR_OPTION,
|
---|
47 | OLE_ERROR_PROTOCOL,
|
---|
48 | OLE_ERROR_ADDRESS,
|
---|
49 | OLE_ERROR_NOT_EQUAL,
|
---|
50 | OLE_ERROR_HANDLE,
|
---|
51 | OLE_ERROR_GENERIC,
|
---|
52 | OLE_ERROR_CLASS,
|
---|
53 | OLE_ERROR_SYNTAX,
|
---|
54 | OLE_ERROR_DATATYPE,
|
---|
55 | OLE_ERROR_PALETTE,
|
---|
56 | OLE_ERROR_NOT_LINK,
|
---|
57 | OLE_ERROR_NOT_EMPTY,
|
---|
58 | OLE_ERROR_SIZE,
|
---|
59 | OLE_ERROR_DRIVE,
|
---|
60 | OLE_ERROR_NETWORK,
|
---|
61 | OLE_ERROR_NAME,
|
---|
62 | OLE_ERROR_TEMPLATE,
|
---|
63 | OLE_ERROR_NEW,
|
---|
64 | OLE_ERROR_EDIT,
|
---|
65 | OLE_ERROR_OPEN,
|
---|
66 | OLE_ERROR_NOT_OPEN,
|
---|
67 | OLE_ERROR_LAUNCH,
|
---|
68 | OLE_ERROR_COMM,
|
---|
69 | OLE_ERROR_TERMINATE,
|
---|
70 | OLE_ERROR_COMMAND,
|
---|
71 | OLE_ERROR_SHOW,
|
---|
72 | OLE_ERROR_DOVERB,
|
---|
73 | OLE_ERROR_ADVISE_NATIVE,
|
---|
74 | OLE_ERROR_ADVISE_PICT,
|
---|
75 | OLE_ERROR_ADVISE_RENAME,
|
---|
76 | OLE_ERROR_POKE_NATIVE,
|
---|
77 | OLE_ERROR_REQUEST_NATIVE,
|
---|
78 | OLE_ERROR_REQUEST_PICT,
|
---|
79 | OLE_ERROR_SERVER_BLOCKED,
|
---|
80 | OLE_ERROR_REGISTRATION,
|
---|
81 | OLE_ERROR_ALREADY_REGISTERED,
|
---|
82 | OLE_ERROR_TASK,
|
---|
83 | OLE_ERROR_OUTOFDATE,
|
---|
84 | OLE_ERROR_CANT_UPDATE_CLIENT,
|
---|
85 | OLE_ERROR_UPDATE,
|
---|
86 | OLE_ERROR_SETDATA_FORMAT,
|
---|
87 | OLE_ERROR_STATIC_FROM_OTHER_OS,
|
---|
88 | OLE_WARN_DELETE_DATA = 1000
|
---|
89 | } OLESTATUS;
|
---|
90 |
|
---|
91 | typedef enum {
|
---|
92 | OLE_SERVER_MULTI,
|
---|
93 | OLE_SERVER_SINGLE
|
---|
94 | } OLE_SERVER_USE;
|
---|
95 |
|
---|
96 | typedef enum {
|
---|
97 | OLE_CHANGED,
|
---|
98 | OLE_SAVED,
|
---|
99 | OLE_CLOSED,
|
---|
100 | OLE_RENAMED,
|
---|
101 | OLE_QUERY_PAINT,
|
---|
102 | OLE_RELEASE,
|
---|
103 | OLE_QUERY_RETRY
|
---|
104 | } OLE_NOTIFICATION;
|
---|
105 |
|
---|
106 | typedef enum {
|
---|
107 | olerender_none,
|
---|
108 | olerender_draw,
|
---|
109 | olerender_format
|
---|
110 | } OLEOPT_RENDER;
|
---|
111 |
|
---|
112 | typedef enum {
|
---|
113 | oleupdate_always,
|
---|
114 | oleupdate_onsave,
|
---|
115 | oleupdate_oncall,
|
---|
116 | oleupdate_onclose
|
---|
117 | } OLEOPT_UPDATE;
|
---|
118 |
|
---|
119 | typedef LONG LHSERVER;
|
---|
120 | typedef LONG LHSERVERDOC;
|
---|
121 | typedef LONG LHCLIENTDOC;
|
---|
122 | typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */
|
---|
123 | typedef OLEOPT_UPDATE* LPOLEOPT_UPDATE;
|
---|
124 |
|
---|
125 | typedef enum {
|
---|
126 | OLE_NONE, /* none */
|
---|
127 | OLE_DELETE, /* delete object */
|
---|
128 | OLE_LNKPASTE, /* link paste */
|
---|
129 | OLE_EMBPASTE, /* paste(and update) */
|
---|
130 | OLE_SHOW,
|
---|
131 | OLE_RUN,
|
---|
132 | OLE_ACTIVATE,
|
---|
133 | OLE_UPDATE,
|
---|
134 | OLE_CLOSE,
|
---|
135 | OLE_RECONNECT,
|
---|
136 | OLE_SETUPDATEOPTIONS,
|
---|
137 | OLE_SERVERRUNLAUNCH, /* unlaunch (terminate?) server */
|
---|
138 | OLE_LOADFROMSTREAM, /* (auto reconnect) */
|
---|
139 | OLE_SETDATA, /* OleSetData */
|
---|
140 | OLE_REQUESTDATA, /* OleRequestData */
|
---|
141 | OLE_OTHER,
|
---|
142 | OLE_CREATE,
|
---|
143 | OLE_CREATEFROMTEMPLATE,
|
---|
144 | OLE_CREATELINKFROMFILE,
|
---|
145 | OLE_COPYFROMLNK,
|
---|
146 | OLE_CREATREFROMFILE,
|
---|
147 | OLE_CREATEINVISIBLE
|
---|
148 | } OLE_RELEASE_METHOD;
|
---|
149 |
|
---|
150 | typedef struct _OLETARGETDEVICE {
|
---|
151 | UINT16 otdDeviceNameOffset;
|
---|
152 | UINT16 otdDriverNameOffset;
|
---|
153 | UINT16 otdPortNameOffset;
|
---|
154 | UINT16 otdExtDevmodeOffset;
|
---|
155 | UINT16 otdExtDevmodeSize;
|
---|
156 | UINT16 otdEnvironmentOffset;
|
---|
157 | UINT16 otdEnvironmentSize;
|
---|
158 | BYTE otdData[1];
|
---|
159 | /* ... */
|
---|
160 | } OLETARGETDEVICE;
|
---|
161 | typedef struct _OLESTREAM* LPOLESTREAM;
|
---|
162 | typedef struct _OLESTREAMVTBL {
|
---|
163 | DWORD (* CALLBACK Get)(LPOLESTREAM,LPSTR,DWORD);
|
---|
164 | DWORD (* CALLBACK Put)(LPOLESTREAM,LPSTR,DWORD);
|
---|
165 | } OLESTREAMVTBL;
|
---|
166 | typedef OLESTREAMVTBL* LPOLESTREAMVTBL;
|
---|
167 | typedef struct _OLESTREAM {
|
---|
168 | LPOLESTREAMVTBL lpstbl;
|
---|
169 | } OLESTREAM;
|
---|
170 | typedef struct _OLESERVERDOC* LPOLESERVERDOC;
|
---|
171 | typedef struct _OLEOBJECT* LPOLEOBJECT;
|
---|
172 | typedef struct _OLECLIENT* LPOLECLIENT;
|
---|
173 | typedef struct _OLESERVERDOCVTBL {
|
---|
174 | OLESTATUS (* CALLBACK Save)(LPOLESERVERDOC);
|
---|
175 | OLESTATUS (* CALLBACK Close)(LPOLESERVERDOC);
|
---|
176 | OLESTATUS (* CALLBACK SetHostNames)(LPOLESERVERDOC,LPCOLESTR16,LPCOLESTR16);
|
---|
177 | OLESTATUS (* CALLBACK SetDocDimensions)(LPOLESERVERDOC,LPRECT16);
|
---|
178 | #ifdef __WINE__
|
---|
179 | /* GetObject is a WINELIB_NAME macro so it cannot be used in Wine itself */
|
---|
180 | OLESTATUS (* CALLBACK pGetObject)(LPOLESERVERDOC,LPCOLESTR16,LPOLEOBJECT*,LPOLECLIENT);
|
---|
181 | #else
|
---|
182 | OLESTATUS (* CALLBACK GetObject)(LPOLESERVERDOC,LPCOLESTR16,LPOLEOBJECT*,LPOLECLIENT);
|
---|
183 | #endif
|
---|
184 | OLESTATUS (* CALLBACK Release)(LPOLESERVERDOC);
|
---|
185 | OLESTATUS (* CALLBACK SetColorScheme)(LPOLESERVERDOC,LPLOGPALETTE);
|
---|
186 | OLESTATUS (* CALLBACK Execute)(LPOLESERVERDOC,HGLOBAL16);
|
---|
187 | } OLESERVERDOCVTBL;
|
---|
188 | typedef OLESERVERDOCVTBL* LPOLESERVERDOCVTBL;
|
---|
189 | typedef struct _OLESERVERDOC {
|
---|
190 | LPOLESERVERDOCVTBL lpvtbl;
|
---|
191 | /* server provided state info */
|
---|
192 | } OLESERVERDOC;
|
---|
193 |
|
---|
194 | typedef struct _OLESERVER* LPOLESERVER;
|
---|
195 | typedef struct _OLESERVERVTBL {
|
---|
196 | OLESTATUS (* CALLBACK Open)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPOLESERVERDOC *);
|
---|
197 | OLESTATUS (* CALLBACK Create)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC*);
|
---|
198 | OLESTATUS (* CALLBACK CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC *);
|
---|
199 | OLESTATUS (* CALLBACK Edit)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC *);
|
---|
200 | OLESTATUS (* CALLBACK Exit)(LPOLESERVER);
|
---|
201 | OLESTATUS (* CALLBACK Release)(LPOLESERVER);
|
---|
202 | OLESTATUS (* CALLBACK Execute)(LPOLESERVER);
|
---|
203 | } OLESERVERVTBL;
|
---|
204 | typedef OLESERVERVTBL *LPOLESERVERVTBL;
|
---|
205 | typedef struct _OLESERVER {
|
---|
206 | LPOLESERVERVTBL lpvtbl;
|
---|
207 | /* server specific data */
|
---|
208 | } OLESERVER;
|
---|
209 | typedef struct _OLECLIENTVTBL {
|
---|
210 | int (* CALLBACK CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT);
|
---|
211 | } OLECLIENTVTBL;
|
---|
212 | typedef OLECLIENTVTBL *LPOLECLIENTVTBL;
|
---|
213 |
|
---|
214 | typedef struct _OLECLIENT {
|
---|
215 | LPOLECLIENTVTBL lpvtbl;
|
---|
216 | /* client data... */
|
---|
217 | } OLECLIENT;
|
---|
218 |
|
---|
219 | typedef struct _OLEOBJECTVTBL {
|
---|
220 | void * (* CALLBACK QueryProtocol)(LPOLEOBJECT,LPCOLESTR16);
|
---|
221 | OLESTATUS (* CALLBACK Release)(LPOLEOBJECT);
|
---|
222 | OLESTATUS (* CALLBACK Show)(LPOLEOBJECT,BOOL16);
|
---|
223 | OLESTATUS (* CALLBACK DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16);
|
---|
224 | OLESTATUS (* CALLBACK GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
|
---|
225 | OLESTATUS (* CALLBACK SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
|
---|
226 | OLESTATUS (* CALLBACK SetTargetDevice)(LPOLEOBJECT,HGLOBAL16);
|
---|
227 | OLESTATUS (* CALLBACK SetBounds)(LPOLEOBJECT,LPRECT16);
|
---|
228 | OLESTATUS (* CALLBACK EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
|
---|
229 | OLESTATUS (* CALLBACK SetColorScheme)(LPOLEOBJECT,LPLOGPALETTE);
|
---|
230 | OLESTATUS (* CALLBACK Delete)(LPOLEOBJECT);
|
---|
231 | OLESTATUS (* CALLBACK SetHostNames)(LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
|
---|
232 | OLESTATUS (* CALLBACK SaveToStream)(LPOLEOBJECT,LPOLESTREAM);
|
---|
233 | OLESTATUS (* CALLBACK Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
|
---|
234 | OLESTATUS (* CALLBACK CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
|
---|
235 | OLESTATUS (* CALLBACK Equal)(LPOLEOBJECT,LPOLEOBJECT);
|
---|
236 | OLESTATUS (* CALLBACK CopyToClipBoard)(LPOLEOBJECT);
|
---|
237 | OLESTATUS (* CALLBACK Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
|
---|
238 | OLESTATUS (* CALLBACK Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
|
---|
239 | OLESTATUS (* CALLBACK Execute)(LPOLEOBJECT,HGLOBAL16,UINT16);
|
---|
240 | OLESTATUS (* CALLBACK Close)(LPOLEOBJECT);
|
---|
241 | OLESTATUS (* CALLBACK Update)(LPOLEOBJECT);
|
---|
242 | OLESTATUS (* CALLBACK Reconnect)(LPOLEOBJECT);
|
---|
243 | OLESTATUS (* CALLBACK ObjectConvert)(LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT*);
|
---|
244 | OLESTATUS (* CALLBACK GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE);
|
---|
245 | OLESTATUS (* CALLBACK SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
|
---|
246 | OLESTATUS (* CALLBACK Rename)(LPOLEOBJECT,LPCOLESTR16);
|
---|
247 | OLESTATUS (* CALLBACK QueryName)(LPOLEOBJECT,LPSTR,LPUINT16);
|
---|
248 | OLESTATUS (* CALLBACK QueryType)(LPOLEOBJECT,LPLONG);
|
---|
249 | OLESTATUS (* CALLBACK QueryBounds)(LPOLEOBJECT,LPRECT16);
|
---|
250 | OLESTATUS (* CALLBACK QuerySize)(LPOLEOBJECT,LPDWORD);
|
---|
251 | OLESTATUS (* CALLBACK QueryOpen)(LPOLEOBJECT);
|
---|
252 | OLESTATUS (* CALLBACK QueryOutOfDate)(LPOLEOBJECT);
|
---|
253 | OLESTATUS (* CALLBACK QueryReleaseStatus)(LPOLEOBJECT);
|
---|
254 | OLESTATUS (* CALLBACK QueryReleaseError)(LPOLEOBJECT);
|
---|
255 | OLE_RELEASE_METHOD (* CALLBACK QueryReleaseMethod)(LPOLEOBJECT);
|
---|
256 | OLESTATUS (* CALLBACK RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
|
---|
257 | OLESTATUS (* CALLBACK ObjectLong)(LPOLEOBJECT,UINT16,LPLONG);
|
---|
258 | } OLEOBJECTVTBL;
|
---|
259 | typedef OLEOBJECTVTBL* LPOLEOBJECTVTBL;
|
---|
260 |
|
---|
261 | typedef struct _OLEOBJECT {
|
---|
262 | LPOLEOBJECTVTBL lpvtbl;
|
---|
263 | } OLEOBJECT;
|
---|
264 |
|
---|
265 |
|
---|
266 | OLESTATUS WINAPI OleRegisterServer16(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE16,OLE_SERVER_USE);
|
---|
267 | OLESTATUS WINAPI OleUnblockServer16(LHSERVER,BOOL16 *);
|
---|
268 | OLESTATUS WINAPI OleRegisterServerDoc16(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *);
|
---|
269 | OLESTATUS WINAPI OleRegisterClientDoc16(LPCSTR,LPCSTR,LONG,LHCLIENTDOC *);
|
---|
270 | OLESTATUS WINAPI OleRenameClientDoc16(LHCLIENTDOC,LPCSTR);
|
---|
271 | OLESTATUS WINAPI OleRevokeServerDoc16(LHSERVERDOC);
|
---|
272 | OLESTATUS WINAPI OleRevokeClientDoc16(LHCLIENTDOC);
|
---|
273 | OLESTATUS WINAPI OleRevokeServer16(LHSERVER);
|
---|
274 | OLESTATUS WINAPI OleRevertClientDoc16(LHCLIENTDOC hServerDoc);
|
---|
275 | OLESTATUS WINAPI OleEnumObjects16(LHCLIENTDOC hServerDoc, SEGPTR data);
|
---|
276 | OLESTATUS WINAPI OleCreateLinkFromClip16(
|
---|
277 | LPCSTR name, LPOLECLIENT olecli, LHCLIENTDOC hclientdoc, LPCSTR xname,
|
---|
278 | LPOLEOBJECT *lpoleob, UINT16 render, UINT16 clipformat);
|
---|
279 | OLESTATUS WINAPI OleQueryLinkFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat);
|
---|
280 | OLESTATUS WINAPI OleQueryCreateFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat);
|
---|
281 | OLESTATUS WINAPI OleQueryType16(LPOLEOBJECT oleob, SEGPTR xlong);
|
---|
282 | OLESTATUS WINAPI OleCreateFromClip16(
|
---|
283 | LPCSTR name, LPOLECLIENT olecli, LHCLIENTDOC hclientdoc, LPCSTR xname,
|
---|
284 | LPOLEOBJECT *lpoleob, UINT16 render, UINT16 clipformat);
|
---|
285 |
|
---|
286 | /* com functions */
|
---|
287 | void WINAPI CoFreeUnusedLibraries(void);
|
---|
288 | HINSTANCE WINAPI CoLoadLibrary(LPOLESTR lpszLibName, BOOL bAutoFree);
|
---|
289 | void WINAPI CoFreeUnusedLibraries(void);
|
---|
290 | void WINAPI CoFreeAllLibraries(void);
|
---|
291 |
|
---|
292 | #ifdef __cplusplus
|
---|
293 | } /*extern*/
|
---|
294 | #endif
|
---|
295 |
|
---|
296 | #endif /* __WINE_OLE_H */
|
---|