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