| 1 | /* $Id: ole.h,v 1.5 2000-12-24 12:28:19 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(LPSTR 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 */
|
|---|