Release 971130
[wine/hacks.git] / include / ole.h
blob0d909600db0f47be0c1f99a65dc49042176fb612
1 /*
2 * ole.h - Declarations for OLESVR and OLECLI
3 */
5 #ifndef __WINE_OLE_H
6 #define __WINE_OLE_H
8 #include "windows.h"
10 typedef LPCSTR OLE_LPCSTR;
11 typedef LPSTR LPOLESTR;
12 typedef LPCSTR LPCOLESTR;
14 /* object types */
15 #define OT_LINK 1
16 #define OT_EMBEDDED 2
17 #define OT_STATIC 3
19 /* activate verbs */
20 #define OLEVERB_PRIMARY 0
22 typedef enum
24 OLE_OK,
25 OLE_WAIT_FOR_RELEASE,
26 OLE_BUSY,
27 OLE_ERROR_PROTECT_ONLY,
28 OLE_ERROR_MEMORY,
29 OLE_ERROR_STREAM,
30 OLE_ERROR_STATIC,
31 OLE_ERROR_BLANK,
32 OLE_ERROR_DRAW,
33 OLE_ERROR_METAFILE,
34 OLE_ERROR_ABORT,
35 OLE_ERROR_CLIPBOARD,
36 OLE_ERROR_FORMAT,
37 OLE_ERROR_OBJECT,
38 OLE_ERROR_OPTION,
39 OLE_ERROR_PROTOCOL,
40 OLE_ERROR_ADDRESS,
41 OLE_ERROR_NOT_EQUAL,
42 OLE_ERROR_HANDLE,
43 OLE_ERROR_GENERIC,
44 OLE_ERROR_CLASS,
45 OLE_ERROR_SYNTAX,
46 OLE_ERROR_DATATYPE,
47 OLE_ERROR_PALETTE,
48 OLE_ERROR_NOT_LINK,
49 OLE_ERROR_NOT_EMPTY,
50 OLE_ERROR_SIZE,
51 OLE_ERROR_DRIVE,
52 OLE_ERROR_NETWORK,
53 OLE_ERROR_NAME,
54 OLE_ERROR_TEMPLATE,
55 OLE_ERROR_NEW,
56 OLE_ERROR_EDIT,
57 OLE_ERROR_OPEN,
58 OLE_ERROR_NOT_OPEN,
59 OLE_ERROR_LAUNCH,
60 OLE_ERROR_COMM,
61 OLE_ERROR_TERMINATE,
62 OLE_ERROR_COMMAND,
63 OLE_ERROR_SHOW,
64 OLE_ERROR_DOVERB,
65 OLE_ERROR_ADVISE_NATIVE,
66 OLE_ERROR_ADVISE_PICT,
67 OLE_ERROR_ADVISE_RENAME,
68 OLE_ERROR_POKE_NATIVE,
69 OLE_ERROR_REQUEST_NATIVE,
70 OLE_ERROR_REQUEST_PICT,
71 OLE_ERROR_SERVER_BLOCKED,
72 OLE_ERROR_REGISTRATION,
73 OLE_ERROR_ALREADY_REGISTERED,
74 OLE_ERROR_TASK,
75 OLE_ERROR_OUTOFDATE,
76 OLE_ERROR_CANT_UPDATE_CLIENT,
77 OLE_ERROR_UPDATE,
78 OLE_ERROR_SETDATA_FORMAT,
79 OLE_ERROR_STATIC_FROM_OTHER_OS,
80 OLE_WARN_DELETE_DATA = 1000
81 } OLESTATUS;
83 typedef enum {
84 OLE_SERVER_MULTI,
85 OLE_SERVER_SINGLE
86 } OLE_SERVER_USE;
88 typedef enum {
89 OLE_CHANGED,
90 OLE_SAVED,
91 OLE_CLOSED,
92 OLE_RENAMED,
93 OLE_QUERY_PAINT,
94 OLE_RELEASE,
95 OLE_QUERY_RETRY
96 } OLE_NOTIFICATION;
98 typedef enum {
99 olerender_none,
100 olerender_draw,
101 olerender_format
102 } OLEOPT_RENDER;
104 typedef enum {
105 oleupdate_always,
106 oleupdate_onsave,
107 oleupdate_oncall,
108 oleupdate_onclose,
109 } OLEOPT_UPDATE;
111 typedef LONG LHSERVER;
112 typedef LONG LHSERVERDOC;
113 typedef LONG LHCLIENTDOC;
114 typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */
115 typedef OLEOPT_UPDATE* LPOLEOPT_UPDATE;
117 typedef enum {
118 OLE_NONE, /* none */
119 OLE_DELETE, /* delete object */
120 OLE_LNKPASTE, /* link paste */
121 OLE_EMBPASTE, /* paste(and update) */
122 OLE_SHOW,
123 OLE_RUN,
124 OLE_ACTIVATE,
125 OLE_UPDATE,
126 OLE_CLOSE,
127 OLE_RECONNECT,
128 OLE_SETUPDATEOPTIONS,
129 OLE_SERVERRUNLAUNCH, /* unlaunch (terminate?) server */
130 OLE_LOADFROMSTREAM, /* (auto reconnect) */
131 OLE_SETDATA, /* OleSetData */
132 OLE_REQUESTDATA, /* OleRequestData */
133 OLE_OTHER,
134 OLE_CREATE,
135 OLE_CREATEFROMTEMPLATE,
136 OLE_CREATELINKFROMFILE,
137 OLE_COPYFROMLNK,
138 OLE_CREATREFROMFILE,
139 OLE_CREATEINVISIBLE
140 } OLE_RELEASE_METHOD;
142 typedef struct _OLETARGETDEVICE {
143 UINT16 otdDeviceNameOffset;
144 UINT16 otdDriverNameOffset;
145 UINT16 otdPortNameOffset;
146 UINT16 otdExtDevmodeOffset;
147 UINT16 otdExtDevmodeSize;
148 UINT16 otdEnvironmentOffset;
149 UINT16 otdEnvironmentSize;
150 BYTE otdData[1];
151 /* ... */
152 } OLETARGETDEVICE;
153 typedef struct _OLESTREAM* LPOLESTREAM;
154 typedef struct _OLESTREAMVTBL {
155 DWORD (CALLBACK *Get)(LPOLESTREAM,LPSTR,DWORD);
156 DWORD (CALLBACK *Put)(LPOLESTREAM,LPSTR,DWORD);
157 } OLESTREAMVTBL;
158 typedef OLESTREAMVTBL* LPOLESTREAMVTBL;
159 typedef struct _OLESTREAM {
160 LPOLESTREAMVTBL lpstbl;
161 } OLESTREAM;
162 typedef struct _OLESERVERDOC* LPOLESERVERDOC;
163 typedef struct _OLEOBJECT* LPOLEOBJECT;
164 typedef struct _OLECLIENT* LPOLECLIENT;
165 typedef struct _OLESERVERDOCVTBL {
166 OLESTATUS (CALLBACK *Save)(LPOLESERVERDOC);
167 OLESTATUS (CALLBACK *Close)(LPOLESERVERDOC);
168 OLESTATUS (CALLBACK *SetHostNames)(LPOLESERVERDOC,OLE_LPCSTR,OLE_LPCSTR);
169 OLESTATUS (CALLBACK *SetDocDimensions)(LPOLESERVERDOC,LPRECT16);
170 #undef GetObject /* FIXME */
171 OLESTATUS (CALLBACK *GetObject)(LPOLESERVERDOC,OLE_LPCSTR,LPOLEOBJECT*,LPOLECLIENT);
172 OLESTATUS (CALLBACK *Release)(LPOLESERVERDOC);
173 OLESTATUS (CALLBACK *SetColorScheme)(LPOLESERVERDOC,LPLOGPALETTE);
174 OLESTATUS (CALLBACK *Execute)(LPOLESERVERDOC,HGLOBAL16);
175 } OLESERVERDOCVTBL;
176 typedef OLESERVERDOCVTBL* LPOLESERVERDOCVTBL;
177 typedef struct _OLESERVERDOC {
178 LPOLESERVERDOCVTBL lpvtbl;
179 /* server provided state info */
180 } OLESERVERDOC;
182 typedef struct _OLESERVER* LPOLESERVER;
183 typedef struct _OLESERVERVTBL {
184 OLESTATUS (CALLBACK *Open)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,LPOLESERVERDOC *);
185 OLESTATUS (CALLBACK *Create)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*);
186 OLESTATUS (CALLBACK *CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *);
187 OLESTATUS (CALLBACK *Edit)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *);
188 OLESTATUS (CALLBACK *Exit)(LPOLESERVER);
189 OLESTATUS (CALLBACK *Release)(LPOLESERVER);
190 OLESTATUS (CALLBACK *Execute)(LPOLESERVER);
191 } OLESERVERVTBL;
192 typedef OLESERVERVTBL *LPOLESERVERVTBL;
193 typedef struct _OLESERVER {
194 LPOLESERVERVTBL lpvtbl;
195 /* server specific data */
196 } OLESERVER;
197 typedef struct _OLECLIENTVTBL {
198 int (CALLBACK *CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT);
199 } OLECLIENTVTBL;
200 typedef OLECLIENTVTBL *LPOLECLIENTVTBL;
202 typedef struct _OLECLIENT {
203 LPOLECLIENTVTBL lpvtbl;
204 /* client data... */
205 } OLECLIENT;
207 typedef struct _OLEOBJECTVTBL {
208 void * (CALLBACK *QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR);
209 OLESTATUS (CALLBACK *Release)(LPOLEOBJECT);
210 OLESTATUS (CALLBACK *Show)(LPOLEOBJECT,BOOL16);
211 OLESTATUS (CALLBACK *DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16);
212 OLESTATUS (CALLBACK *GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
213 OLESTATUS (CALLBACK *SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
214 OLESTATUS (CALLBACK *SetTargetDevice)(LPOLEOBJECT,HGLOBAL16);
215 OLESTATUS (CALLBACK *SetBounds)(LPOLEOBJECT,LPRECT16);
216 OLESTATUS (CALLBACK *EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
217 OLESTATUS (CALLBACK *SetColorScheme)(LPOLEOBJECT,LPLOGPALETTE);
218 OLESTATUS (CALLBACK *Delete)(LPOLEOBJECT);
219 OLESTATUS (CALLBACK *SetHostNames)(LPOLEOBJECT,OLE_LPCSTR,OLE_LPCSTR);
220 OLESTATUS (CALLBACK *SaveToStream)(LPOLEOBJECT,LPOLESTREAM);
221 OLESTATUS (CALLBACK *Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *);
222 OLESTATUS (CALLBACK *CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *);
223 OLESTATUS (CALLBACK *Equal)(LPOLEOBJECT,LPOLEOBJECT);
224 OLESTATUS (CALLBACK *CopyToClipBoard)(LPOLEOBJECT);
225 OLESTATUS (CALLBACK *Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
226 OLESTATUS (CALLBACK *Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
227 OLESTATUS (CALLBACK *Execute)(LPOLEOBJECT,HGLOBAL16,UINT16);
228 OLESTATUS (CALLBACK *Close)(LPOLEOBJECT);
229 OLESTATUS (CALLBACK *Update)(LPOLEOBJECT);
230 OLESTATUS (CALLBACK *Reconnect)(LPOLEOBJECT);
231 OLESTATUS (CALLBACK *ObjectConvert)(LPOLEOBJECT,OLE_LPCSTR,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*);
232 OLESTATUS (CALLBACK *GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE);
233 OLESTATUS (CALLBACK *SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
234 OLESTATUS (CALLBACK *Rename)(LPOLEOBJECT,OLE_LPCSTR);
235 OLESTATUS (CALLBACK *QueryName)(LPOLEOBJECT,LPSTR,LPUINT16);
236 OLESTATUS (CALLBACK *QueryType)(LPOLEOBJECT,LPLONG);
237 OLESTATUS (CALLBACK *QueryBounds)(LPOLEOBJECT,LPRECT16);
238 OLESTATUS (CALLBACK *QuerySize)(LPOLEOBJECT,LPDWORD);
239 OLESTATUS (CALLBACK *QueryOpen)(LPOLEOBJECT);
240 OLESTATUS (CALLBACK *QueryOutOfDate)(LPOLEOBJECT);
241 OLESTATUS (CALLBACK *QueryReleaseStatus)(LPOLEOBJECT);
242 OLESTATUS (CALLBACK *QueryReleaseError)(LPOLEOBJECT);
243 OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(LPOLEOBJECT);
244 OLESTATUS (CALLBACK *RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
245 OLESTATUS (CALLBACK *ObjectLong)(LPOLEOBJECT,UINT16,LPLONG);
246 } OLEOBJECTVTBL;
247 typedef OLEOBJECTVTBL* LPOLEOBJECTVTBL;
249 typedef struct _OLEOBJECT {
250 LPOLEOBJECTVTBL lpvtbl;
251 } OLEOBJECT;
254 OLESTATUS WINAPI OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE16,OLE_SERVER_USE);
255 OLESTATUS WINAPI OleUnblockServer(LHSERVER,BOOL16 *);
256 OLESTATUS WINAPI OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *);
257 OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC *);
258 OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC,LPCSTR);
259 OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC);
260 OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC);
261 OLESTATUS WINAPI OleRevokeServer(LHSERVER);
263 #endif /* __WINE_OLE_H */