| 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 | 
|---|
| 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(LPOLESTR 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 */ | 
|---|