source: trunk/include/win/ole.h@ 10367

Last change on this file since 10367 was 5598, checked in by sandervl, 24 years ago

header updates

File size: 9.7 KB
Line 
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
19extern "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
30typedef 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
91typedef enum {
92 OLE_SERVER_MULTI,
93 OLE_SERVER_SINGLE
94} OLE_SERVER_USE;
95
96typedef 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
106typedef enum {
107 olerender_none,
108 olerender_draw,
109 olerender_format
110} OLEOPT_RENDER;
111
112typedef enum {
113 oleupdate_always,
114 oleupdate_onsave,
115 oleupdate_oncall,
116 oleupdate_onclose
117} OLEOPT_UPDATE;
118
119typedef LONG LHSERVER;
120typedef LONG LHSERVERDOC;
121typedef LONG LHCLIENTDOC;
122typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */
123typedef OLEOPT_UPDATE* LPOLEOPT_UPDATE;
124
125typedef 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
150typedef 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;
161typedef struct _OLESTREAM* LPOLESTREAM;
162typedef struct _OLESTREAMVTBL {
163 DWORD (* CALLBACK Get)(LPOLESTREAM,LPSTR,DWORD);
164 DWORD (* CALLBACK Put)(LPOLESTREAM,LPSTR,DWORD);
165} OLESTREAMVTBL;
166typedef OLESTREAMVTBL* LPOLESTREAMVTBL;
167typedef struct _OLESTREAM {
168 LPOLESTREAMVTBL lpstbl;
169} OLESTREAM;
170typedef struct _OLESERVERDOC* LPOLESERVERDOC;
171typedef struct _OLEOBJECT* LPOLEOBJECT;
172typedef struct _OLECLIENT* LPOLECLIENT;
173typedef 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;
188typedef OLESERVERDOCVTBL* LPOLESERVERDOCVTBL;
189typedef struct _OLESERVERDOC {
190 LPOLESERVERDOCVTBL lpvtbl;
191 /* server provided state info */
192} OLESERVERDOC;
193
194typedef struct _OLESERVER* LPOLESERVER;
195typedef 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;
204typedef OLESERVERVTBL *LPOLESERVERVTBL;
205typedef struct _OLESERVER {
206 LPOLESERVERVTBL lpvtbl;
207 /* server specific data */
208} OLESERVER;
209typedef struct _OLECLIENTVTBL {
210 int (* CALLBACK CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT);
211} OLECLIENTVTBL;
212typedef OLECLIENTVTBL *LPOLECLIENTVTBL;
213
214typedef struct _OLECLIENT {
215 LPOLECLIENTVTBL lpvtbl;
216 /* client data... */
217} OLECLIENT;
218
219typedef 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;
259typedef OLEOBJECTVTBL* LPOLEOBJECTVTBL;
260
261typedef struct _OLEOBJECT {
262 LPOLEOBJECTVTBL lpvtbl;
263} OLEOBJECT;
264
265
266OLESTATUS WINAPI OleRegisterServer16(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE16,OLE_SERVER_USE);
267OLESTATUS WINAPI OleUnblockServer16(LHSERVER,BOOL16 *);
268OLESTATUS WINAPI OleRegisterServerDoc16(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *);
269OLESTATUS WINAPI OleRegisterClientDoc16(LPCSTR,LPCSTR,LONG,LHCLIENTDOC *);
270OLESTATUS WINAPI OleRenameClientDoc16(LHCLIENTDOC,LPCSTR);
271OLESTATUS WINAPI OleRevokeServerDoc16(LHSERVERDOC);
272OLESTATUS WINAPI OleRevokeClientDoc16(LHCLIENTDOC);
273OLESTATUS WINAPI OleRevokeServer16(LHSERVER);
274OLESTATUS WINAPI OleRevertClientDoc16(LHCLIENTDOC hServerDoc);
275OLESTATUS WINAPI OleEnumObjects16(LHCLIENTDOC hServerDoc, SEGPTR data);
276OLESTATUS WINAPI OleCreateLinkFromClip16(
277 LPCSTR name, LPOLECLIENT olecli, LHCLIENTDOC hclientdoc, LPCSTR xname,
278 LPOLEOBJECT *lpoleob, UINT16 render, UINT16 clipformat);
279OLESTATUS WINAPI OleQueryLinkFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat);
280OLESTATUS WINAPI OleQueryCreateFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat);
281OLESTATUS WINAPI OleQueryType16(LPOLEOBJECT oleob, SEGPTR xlong);
282OLESTATUS WINAPI OleCreateFromClip16(
283 LPCSTR name, LPOLECLIENT olecli, LHCLIENTDOC hclientdoc, LPCSTR xname,
284 LPOLEOBJECT *lpoleob, UINT16 render, UINT16 clipformat);
285
286/* com functions */
287void WINAPI CoFreeUnusedLibraries(void);
288HINSTANCE WINAPI CoLoadLibrary(LPOLESTR lpszLibName, BOOL bAutoFree);
289void WINAPI CoFreeUnusedLibraries(void);
290void WINAPI CoFreeAllLibraries(void);
291
292#ifdef __cplusplus
293} /*extern*/
294#endif
295
296#endif /* __WINE_OLE_H */
Note: See TracBrowser for help on using the repository browser.