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
29 #include "wine/windef16.h"
30 #include "wine/obj_base.h"
31 #include "wine/obj_misc.h"
32 #include "wine/obj_storage.h"
33 #include "wine/obj_moniker.h"
34 #include "wine/obj_dataobject.h"
35 #include "wine/obj_dragdrop.h"
45 #define OLEVERB_PRIMARY 0
52 OLE_ERROR_PROTECT_ONLY
,
90 OLE_ERROR_ADVISE_NATIVE
,
91 OLE_ERROR_ADVISE_PICT
,
92 OLE_ERROR_ADVISE_RENAME
,
93 OLE_ERROR_POKE_NATIVE
,
94 OLE_ERROR_REQUEST_NATIVE
,
95 OLE_ERROR_REQUEST_PICT
,
96 OLE_ERROR_SERVER_BLOCKED
,
97 OLE_ERROR_REGISTRATION
,
98 OLE_ERROR_ALREADY_REGISTERED
,
101 OLE_ERROR_CANT_UPDATE_CLIENT
,
103 OLE_ERROR_SETDATA_FORMAT
,
104 OLE_ERROR_STATIC_FROM_OTHER_OS
,
105 OLE_WARN_DELETE_DATA
= 1000
136 typedef LONG LHSERVER
;
137 typedef LONG LHSERVERDOC
;
138 typedef LONG LHCLIENTDOC
;
139 typedef LONG OLECLIPFORMAT
;/* dunno about this type, please change/add */
140 typedef OLEOPT_UPDATE
* LPOLEOPT_UPDATE
;
144 OLE_DELETE
, /* delete object */
145 OLE_LNKPASTE
, /* link paste */
146 OLE_EMBPASTE
, /* paste(and update) */
153 OLE_SETUPDATEOPTIONS
,
154 OLE_SERVERRUNLAUNCH
, /* unlaunch (terminate?) server */
155 OLE_LOADFROMSTREAM
, /* (auto reconnect) */
156 OLE_SETDATA
, /* OleSetData */
157 OLE_REQUESTDATA
, /* OleRequestData */
160 OLE_CREATEFROMTEMPLATE
,
161 OLE_CREATELINKFROMFILE
,
165 } OLE_RELEASE_METHOD
;
167 typedef struct _OLETARGETDEVICE
{
168 UINT16 otdDeviceNameOffset
;
169 UINT16 otdDriverNameOffset
;
170 UINT16 otdPortNameOffset
;
171 UINT16 otdExtDevmodeOffset
;
172 UINT16 otdExtDevmodeSize
;
173 UINT16 otdEnvironmentOffset
;
174 UINT16 otdEnvironmentSize
;
179 typedef struct _OLESERVERDOC
* LPOLESERVERDOC
;
180 typedef struct _OLEOBJECT
* LPOLEOBJECT
;
181 typedef struct _OLECLIENT
* LPOLECLIENT
;
182 typedef struct _OLESERVERDOCVTBL
{
183 OLESTATUS (CALLBACK
*Save
)(LPOLESERVERDOC
);
184 OLESTATUS (CALLBACK
*Close
)(LPOLESERVERDOC
);
185 OLESTATUS (CALLBACK
*SetHostNames
)(LPOLESERVERDOC
,LPCOLESTR16
,LPCOLESTR16
);
186 OLESTATUS (CALLBACK
*SetDocDimensions
)(LPOLESERVERDOC
,LPRECT16
);
188 /* GetObject is a WINELIB_NAME macro so it cannot be used in Wine itself */
189 OLESTATUS (CALLBACK
*pGetObject
)(LPOLESERVERDOC
,LPCOLESTR16
,LPOLEOBJECT
*,LPOLECLIENT
);
191 OLESTATUS (CALLBACK
*GetObject
)(LPOLESERVERDOC
,LPCOLESTR16
,LPOLEOBJECT
*,LPOLECLIENT
);
193 OLESTATUS (CALLBACK
*Release
)(LPOLESERVERDOC
);
194 OLESTATUS (CALLBACK
*SetColorScheme
)(LPOLESERVERDOC
,struct tagLOGPALETTE
*);
195 OLESTATUS (CALLBACK
*Execute
)(LPOLESERVERDOC
,HGLOBAL16
);
197 typedef OLESERVERDOCVTBL
* LPOLESERVERDOCVTBL
;
198 typedef struct _OLESERVERDOC
{
199 LPOLESERVERDOCVTBL lpvtbl
;
200 /* server provided state info */
203 typedef struct _OLESERVER
* LPOLESERVER
;
204 typedef struct _OLESERVERVTBL
{
205 OLESTATUS (CALLBACK
*Open
)(LPOLESERVER
,LHSERVERDOC
,LPCOLESTR16
,LPOLESERVERDOC
*);
206 OLESTATUS (CALLBACK
*Create
)(LPOLESERVER
,LHSERVERDOC
,LPCOLESTR16
,LPCOLESTR16
,LPOLESERVERDOC
*);
207 OLESTATUS (CALLBACK
*CreateFromTemplate
)(LPOLESERVER
,LHSERVERDOC
,LPCOLESTR16
,LPCOLESTR16
,LPCOLESTR16
,LPOLESERVERDOC
*);
208 OLESTATUS (CALLBACK
*Edit
)(LPOLESERVER
,LHSERVERDOC
,LPCOLESTR16
,LPCOLESTR16
,LPOLESERVERDOC
*);
209 OLESTATUS (CALLBACK
*Exit
)(LPOLESERVER
);
210 OLESTATUS (CALLBACK
*Release
)(LPOLESERVER
);
211 OLESTATUS (CALLBACK
*Execute
)(LPOLESERVER
);
213 typedef OLESERVERVTBL
*LPOLESERVERVTBL
;
214 typedef struct _OLESERVER
{
215 LPOLESERVERVTBL lpvtbl
;
216 /* server specific data */
218 typedef struct _OLECLIENTVTBL
{
219 int (CALLBACK
*CallBack
)(LPOLECLIENT
,OLE_NOTIFICATION
,LPOLEOBJECT
);
221 typedef OLECLIENTVTBL
*LPOLECLIENTVTBL
;
223 typedef struct _OLECLIENT
{
224 LPOLECLIENTVTBL lpvtbl
;
230 typedef struct _OLEOBJECTVTBL
{
231 void CALLBACK
*(*QueryProtocol
)(LPOLEOBJECT
,LPCOLESTR16
);
232 OLESTATUS (CALLBACK
*Release
)(LPOLEOBJECT
);
233 OLESTATUS (CALLBACK
*Show
)(LPOLEOBJECT
,BOOL16
);
234 OLESTATUS (CALLBACK
*DoVerb
)(LPOLEOBJECT
,UINT16
,BOOL16
,BOOL16
);
235 OLESTATUS (CALLBACK
*GetData
)(LPOLEOBJECT
,OLECLIPFORMAT
,HANDLE16
*);
236 OLESTATUS (CALLBACK
*SetData
)(LPOLEOBJECT
,OLECLIPFORMAT
,HANDLE16
);
237 OLESTATUS (CALLBACK
*SetTargetDevice
)(LPOLEOBJECT
,HGLOBAL16
);
238 OLESTATUS (CALLBACK
*SetBounds
)(LPOLEOBJECT
,LPRECT16
);
239 OLESTATUS (CALLBACK
*EnumFormats
)(LPOLEOBJECT
,OLECLIPFORMAT
);
240 OLESTATUS (CALLBACK
*SetColorScheme
)(LPOLEOBJECT
,struct tagLOGPALETTE
*);
241 OLESTATUS (CALLBACK
*Delete
)(LPOLEOBJECT
);
242 OLESTATUS (CALLBACK
*SetHostNames
)(LPOLEOBJECT
,LPCOLESTR16
,LPCOLESTR16
);
243 OLESTATUS (CALLBACK
*SaveToStream
)(LPOLEOBJECT
,struct _OLESTREAM
*);
244 OLESTATUS (CALLBACK
*Clone
)(LPOLEOBJECT
,LPOLECLIENT
,LHCLIENTDOC
,LPCOLESTR16
,LPOLEOBJECT
*);
245 OLESTATUS (CALLBACK
*CopyFromLink
)(LPOLEOBJECT
,LPOLECLIENT
,LHCLIENTDOC
,LPCOLESTR16
,LPOLEOBJECT
*);
246 OLESTATUS (CALLBACK
*Equal
)(LPOLEOBJECT
,LPOLEOBJECT
);
247 OLESTATUS (CALLBACK
*CopyToClipBoard
)(LPOLEOBJECT
);
248 OLESTATUS (CALLBACK
*Draw
)(LPOLEOBJECT
,HDC16
,LPRECT16
,LPRECT16
,HDC16
);
249 OLESTATUS (CALLBACK
*Activate
)(LPOLEOBJECT
,UINT16
,BOOL16
,BOOL16
,HWND16
,LPRECT16
);
250 OLESTATUS (CALLBACK
*Execute
)(LPOLEOBJECT
,HGLOBAL16
,UINT16
);
251 OLESTATUS (CALLBACK
*Close
)(LPOLEOBJECT
);
252 OLESTATUS (CALLBACK
*Update
)(LPOLEOBJECT
);
253 OLESTATUS (CALLBACK
*Reconnect
)(LPOLEOBJECT
);
254 OLESTATUS (CALLBACK
*ObjectConvert
)(LPOLEOBJECT
,LPCOLESTR16
,LPOLECLIENT
,LHCLIENTDOC
,LPCOLESTR16
,LPOLEOBJECT
*);
255 OLESTATUS (CALLBACK
*GetLinkUpdateOptions
)(LPOLEOBJECT
,LPOLEOPT_UPDATE
);
256 OLESTATUS (CALLBACK
*SetLinkUpdateOptions
)(LPOLEOBJECT
,OLEOPT_UPDATE
);
257 OLESTATUS (CALLBACK
*Rename
)(LPOLEOBJECT
,LPCOLESTR16
);
258 OLESTATUS (CALLBACK
*QueryName
)(LPOLEOBJECT
,LPSTR
,LPUINT16
);
259 OLESTATUS (CALLBACK
*QueryType
)(LPOLEOBJECT
,LPLONG
);
260 OLESTATUS (CALLBACK
*QueryBounds
)(LPOLEOBJECT
,LPRECT16
);
261 OLESTATUS (CALLBACK
*QuerySize
)(LPOLEOBJECT
,LPDWORD
);
262 OLESTATUS (CALLBACK
*QueryOpen
)(LPOLEOBJECT
);
263 OLESTATUS (CALLBACK
*QueryOutOfDate
)(LPOLEOBJECT
);
264 OLESTATUS (CALLBACK
*QueryReleaseStatus
)(LPOLEOBJECT
);
265 OLESTATUS (CALLBACK
*QueryReleaseError
)(LPOLEOBJECT
);
266 OLE_RELEASE_METHOD (CALLBACK
*QueryReleaseMethod
)(LPOLEOBJECT
);
267 OLESTATUS (CALLBACK
*RequestData
)(LPOLEOBJECT
,OLECLIPFORMAT
);
268 OLESTATUS (CALLBACK
*ObjectLong
)(LPOLEOBJECT
,UINT16
,LPLONG
);
270 typedef OLEOBJECTVTBL
* LPOLEOBJECTVTBL
;
272 typedef struct _OLEOBJECT
{
273 LPOLEOBJECTVTBL lpvtbl
;
280 #endif /* __WINE_OLE_H */