Reactos
at master 305 lines 12 kB view raw
1#ifndef _OLE_H 2#define _OLE_H 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7#ifdef STRICT 8#define OLE_LPCSTR LPCSTR 9#define OLE_CONST const 10#else 11#define OLE_LPCSTR LPSTR 12#define OLE_CONST 13#endif 14#define LRESULT LONG 15#define HGLOBAL HANDLE 16#define OT_LINK 1L 17#define OT_EMBEDDED 2L 18#define OT_STATIC 3L 19#define OLEVERB_PRIMARY 0 20#define OF_SET 1 21#define OF_GET 2 22#define OF_HANDLER 4 23 24typedef struct _OLETARGETDEVICE { 25 USHORT otdDeviceNameOffset; 26 USHORT otdDriverNameOffset; 27 USHORT otdPortNameOffset; 28 USHORT otdExtDevmodeOffset; 29 USHORT otdExtDevmodeSize; 30 USHORT otdEnvironmentOffset; 31 USHORT otdEnvironmentSize; 32 BYTE otdData[1]; 33} OLETARGETDEVICE; 34typedef OLETARGETDEVICE *LPOLETARGETDEVICE; 35typedef enum { 36OLE_OK, 37OLE_WAIT_FOR_RELEASE, 38OLE_BUSY, 39OLE_ERROR_PROTECT_ONLY, 40OLE_ERROR_MEMORY, 41OLE_ERROR_STREAM, 42OLE_ERROR_STATIC, 43OLE_ERROR_BLANK, 44OLE_ERROR_DRAW, 45OLE_ERROR_METAFILE, 46OLE_ERROR_ABORT, 47OLE_ERROR_CLIPBOARD, 48OLE_ERROR_FORMAT, 49OLE_ERROR_OBJECT, 50OLE_ERROR_OPTION, 51OLE_ERROR_PROTOCOL, 52OLE_ERROR_ADDRESS, 53OLE_ERROR_NOT_EQUAL, 54OLE_ERROR_HANDLE, 55OLE_ERROR_GENERIC, 56OLE_ERROR_CLASS, 57OLE_ERROR_SYNTAX, 58OLE_ERROR_DATATYPE, 59OLE_ERROR_PALETTE, 60OLE_ERROR_NOT_LINK, 61OLE_ERROR_NOT_EMPTY, 62OLE_ERROR_SIZE, 63OLE_ERROR_DRIVE, 64OLE_ERROR_NETWORK, 65OLE_ERROR_NAME, 66OLE_ERROR_TEMPLATE, 67OLE_ERROR_NEW, 68OLE_ERROR_EDIT, 69OLE_ERROR_OPEN, 70OLE_ERROR_NOT_OPEN, 71OLE_ERROR_LAUNCH, 72OLE_ERROR_COMM, 73OLE_ERROR_TERMINATE, 74OLE_ERROR_COMMAND, 75OLE_ERROR_SHOW, 76OLE_ERROR_DOVERB, 77OLE_ERROR_ADVISE_NATIVE, 78OLE_ERROR_ADVISE_PICT, 79OLE_ERROR_ADVISE_RENAME, 80OLE_ERROR_POKE_NATIVE, 81OLE_ERROR_REQUEST_NATIVE, 82OLE_ERROR_REQUEST_PICT, 83OLE_ERROR_SERVER_BLOCKED, 84OLE_ERROR_REGISTRATION, 85OLE_ERROR_ALREADY_REGISTERED, 86OLE_ERROR_TASK, 87OLE_ERROR_OUTOFDATE, 88OLE_ERROR_CANT_UPDATE_CLIENT, 89OLE_ERROR_UPDATE, 90OLE_ERROR_SETDATA_FORMAT, 91OLE_ERROR_STATIC_FROM_OTHER_OS, 92OLE_ERROR_FILE_VER, 93OLE_WARN_DELETE_DATA = 1000 94} OLESTATUS; 95typedef enum { 96 OLE_CHANGED, 97 OLE_SAVED, 98 OLE_CLOSED, 99 OLE_RENAMED, 100 OLE_QUERY_PAINT, 101 OLE_RELEASE, 102 OLE_QUERY_RETRY 103} OLE_NOTIFICATION; 104typedef enum { 105 OLE_NONE, 106 OLE_DELETE, 107 OLE_LNKPASTE, 108 OLE_EMBPASTE, 109 OLE_SHOW, 110 OLE_RUN, 111 OLE_ACTIVATE, 112 OLE_UPDATE, 113 OLE_CLOSE, 114 OLE_RECONNECT, 115 OLE_SETUPDATEOPTIONS, 116 OLE_SERVERUNLAUNCH, 117 OLE_LOADFROMSTREAM, 118 OLE_SETDATA, 119 OLE_REQUESTDATA, 120 OLE_OTHER, 121 OLE_CREATE, 122 OLE_CREATEFROMTEMPLATE, 123 OLE_CREATELINKFROMFILE, 124 OLE_COPYFROMLNK, 125 OLE_CREATEFROMFILE, 126 OLE_CREATEINVISIBLE 127} OLE_RELEASE_METHOD; 128typedef enum { 129 olerender_none, 130 olerender_draw, 131 olerender_format 132 } OLEOPT_RENDER; 133typedef WORD OLECLIPFORMAT; 134typedef enum { 135 oleupdate_always, 136 oleupdate_onsave, 137#ifdef OLE_INTERNAL 138 oleupdate_oncall, 139 oleupdate_onclose 140#else 141 oleupdate_oncall 142#endif 143} OLEOPT_UPDATE; 144typedef HANDLE HOBJECT; 145typedef LONG LHSERVER; 146typedef LONG LHCLIENTDOC; 147typedef LONG LHSERVERDOC; 148typedef struct _OLEOBJECT *LPOLEOBJECT; 149typedef struct _OLESTREAM *LPOLESTREAM; 150typedef struct _OLECLIENT *LPOLECLIENT; 151typedef struct _OLEOBJECTVTBL { 152 void *(CALLBACK* QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR); 153 OLESTATUS (CALLBACK* Release)(LPOLEOBJECT); 154 OLESTATUS (CALLBACK* Show)(LPOLEOBJECT,BOOL); 155 OLESTATUS (CALLBACK* DoVerb)(LPOLEOBJECT,UINT,BOOL,BOOL); 156 OLESTATUS (CALLBACK* GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE*); 157 OLESTATUS (CALLBACK* SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE); 158 OLESTATUS (CALLBACK* SetTargetDevice)(LPOLEOBJECT,HGLOBAL); 159 OLESTATUS (CALLBACK* SetBounds)(LPOLEOBJECT,OLE_CONST RECT*); 160 OLECLIPFORMAT (CALLBACK* EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT); 161 OLESTATUS (CALLBACK* SetColorScheme)(LPOLEOBJECT,OLE_CONST LOGPALETTE*); 162#ifndef SERVERONLY 163 OLESTATUS (CALLBACK* Delete)(LPOLEOBJECT); 164 OLESTATUS (CALLBACK* SetHostNames)(LPOLEOBJECT,OLE_LPCSTR,OLE_LPCSTR); 165 OLESTATUS (CALLBACK* SaveToStream)(LPOLEOBJECT,LPOLESTREAM); 166 OLESTATUS (CALLBACK* Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*); 167 OLESTATUS (CALLBACK* CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*); 168 OLESTATUS (CALLBACK* Equal)(LPOLEOBJECT,LPOLEOBJECT); 169 OLESTATUS (CALLBACK* CopyToClipboard)(LPOLEOBJECT); 170 OLESTATUS (CALLBACK* Draw)(LPOLEOBJECT,HDC,OLE_CONST RECT*,OLE_CONST RECT*,HDC); 171 OLESTATUS (CALLBACK* Activate)(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,OLE_CONST RECT*); 172 OLESTATUS (CALLBACK* Execute)(LPOLEOBJECT,HGLOBAL,UINT); 173 OLESTATUS (CALLBACK* Close)(LPOLEOBJECT); 174 OLESTATUS (CALLBACK* Update)(LPOLEOBJECT); 175 OLESTATUS (CALLBACK* Reconnect)(LPOLEOBJECT); 176 OLESTATUS (CALLBACK* ObjectConvert)(LPOLEOBJECT,OLE_LPCSTR,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*); 177 OLESTATUS (CALLBACK* GetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE*); 178 OLESTATUS (CALLBACK* SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE); 179 OLESTATUS (CALLBACK* Rename)(LPOLEOBJECT,OLE_LPCSTR); 180 OLESTATUS (CALLBACK* QueryName)(LPOLEOBJECT,LPSTR,UINT*); 181 OLESTATUS (CALLBACK* QueryType)(LPOLEOBJECT,LONG*); 182 OLESTATUS (CALLBACK* QueryBounds)(LPOLEOBJECT,RECT*); 183 OLESTATUS (CALLBACK* QuerySize)(LPOLEOBJECT,DWORD*); 184 OLESTATUS (CALLBACK* QueryOpen)(LPOLEOBJECT); 185 OLESTATUS (CALLBACK* QueryOutOfDate)(LPOLEOBJECT); 186 OLESTATUS (CALLBACK* QueryReleaseStatus)(LPOLEOBJECT); 187 OLESTATUS (CALLBACK* QueryReleaseError)(LPOLEOBJECT); 188 OLE_RELEASE_METHOD (CALLBACK* QueryReleaseMethod)(LPOLEOBJECT); 189 OLESTATUS (CALLBACK* RequestData)(LPOLEOBJECT,OLECLIPFORMAT); 190 OLESTATUS (CALLBACK* ObjectLong)(LPOLEOBJECT,UINT,LONG*); 191 OLESTATUS (CALLBACK* ChangeData)(LPOLEOBJECT,HANDLE,LPOLECLIENT,BOOL); 192#endif 193} OLEOBJECTVTBL; 194typedef OLEOBJECTVTBL*LPOLEOBJECTVTBL; 195#ifndef OLE_INTERNAL 196typedef struct _OLEOBJECT { LPOLEOBJECTVTBL lpvtbl; } OLEOBJECT; 197#endif 198typedef struct _OLECLIENTVTBL { int (CALLBACK* CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT); } OLECLIENTVTBL; 199typedef OLECLIENTVTBL *LPOLECLIENTVTBL; 200typedef struct _OLECLIENT { LPOLECLIENTVTBL lpvtbl; } OLECLIENT; 201typedef struct _OLESTREAMVTBL { 202 DWORD (CALLBACK* Get)(LPOLESTREAM,void*,DWORD); 203 DWORD (CALLBACK* Put)(LPOLESTREAM,OLE_CONST void*,DWORD); 204} OLESTREAMVTBL; 205typedef OLESTREAMVTBL *LPOLESTREAMVTBL; 206typedef struct _OLESTREAM { LPOLESTREAMVTBL lpstbl; } OLESTREAM; 207typedef enum { 208 OLE_SERVER_MULTI, 209 OLE_SERVER_SINGLE 210} OLE_SERVER_USE; 211typedef struct _OLESERVER *LPOLESERVER; 212typedef struct _OLESERVERDOC *LPOLESERVERDOC; 213typedef struct _OLESERVERVTBL { 214 OLESTATUS (CALLBACK* Open)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,LPOLESERVERDOC*); 215 OLESTATUS (CALLBACK* Create)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*); 216 OLESTATUS (CALLBACK* CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*); 217 OLESTATUS (CALLBACK* Edit)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*); 218 OLESTATUS (CALLBACK* Exit)(LPOLESERVER); 219 OLESTATUS (CALLBACK* Release)(LPOLESERVER); 220 OLESTATUS (CALLBACK* Execute)(LPOLESERVER,HGLOBAL); 221} OLESERVERVTBL; 222typedef OLESERVERVTBL *LPOLESERVERVTBL; 223typedef struct _OLESERVER { LPOLESERVERVTBL lpvtbl; } OLESERVER; 224typedef struct _OLESERVERDOCVTBL { 225 OLESTATUS (CALLBACK* Save)(LPOLESERVERDOC); 226 OLESTATUS (CALLBACK* Close)(LPOLESERVERDOC); 227 OLESTATUS (CALLBACK* SetHostNames)(LPOLESERVERDOC,OLE_LPCSTR,OLE_LPCSTR); 228 OLESTATUS (CALLBACK* SetDocDimensions)(LPOLESERVERDOC,OLE_CONST RECT*); 229 OLESTATUS (CALLBACK* GetObject)(LPOLESERVERDOC,OLE_LPCSTR,LPOLEOBJECT*,LPOLECLIENT); 230 OLESTATUS (CALLBACK* Release)(LPOLESERVERDOC); 231 OLESTATUS (CALLBACK* SetColorScheme)(LPOLESERVERDOC,OLE_CONST LOGPALETTE*); 232 OLESTATUS (CALLBACK* Execute)(LPOLESERVERDOC,HGLOBAL); 233} OLESERVERDOCVTBL; 234typedef OLESERVERDOCVTBL *LPOLESERVERDOCVTBL; 235typedef struct _OLESERVERDOC { LPOLESERVERDOCVTBL lpvtbl; } OLESERVERDOC; 236OLESTATUS WINAPI OleDelete(LPOLEOBJECT); 237OLESTATUS WINAPI OleRelease(LPOLEOBJECT); 238OLESTATUS WINAPI OleSaveToStream(LPOLEOBJECT,LPOLESTREAM); 239OLESTATUS WINAPI OleEqual(LPOLEOBJECT,LPOLEOBJECT ); 240OLESTATUS WINAPI OleCopyToClipboard(LPOLEOBJECT); 241OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT,LPCSTR,LPCSTR); 242OLESTATUS WINAPI OleSetTargetDevice(LPOLEOBJECT,HGLOBAL); 243OLESTATUS WINAPI OleSetBounds(LPOLEOBJECT,LPCRECT); 244OLESTATUS WINAPI OleSetColorScheme(LPOLEOBJECT,const LOGPALETTE*); 245OLESTATUS WINAPI OleQueryBounds(LPOLEOBJECT,RECT*); 246OLESTATUS WINAPI OleQuerySize(LPOLEOBJECT,DWORD*); 247OLESTATUS WINAPI OleDraw(LPOLEOBJECT,HDC,LPCRECT,LPCRECT,HDC); 248OLESTATUS WINAPI OleQueryOpen(LPOLEOBJECT); 249OLESTATUS WINAPI OleActivate(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,LPCRECT); 250OLESTATUS WINAPI OleExecute(LPOLEOBJECT,HGLOBAL,UINT); 251OLESTATUS WINAPI OleClose(LPOLEOBJECT); 252OLESTATUS WINAPI OleUpdate(LPOLEOBJECT); 253OLESTATUS WINAPI OleReconnect(LPOLEOBJECT); 254OLESTATUS WINAPI OleGetLinkUpdateOptions(LPOLEOBJECT,OLEOPT_UPDATE*); 255OLESTATUS WINAPI OleSetLinkUpdateOptions(LPOLEOBJECT,OLEOPT_UPDATE); 256WINAPI void *OleQueryProtocol(LPOLEOBJECT,LPCSTR); 257OLESTATUS WINAPI OleQueryReleaseStatus(LPOLEOBJECT); 258OLESTATUS WINAPI OleQueryReleaseError(LPOLEOBJECT); 259OLE_RELEASE_METHOD WINAPI OleQueryReleaseMethod(LPOLEOBJECT); 260OLESTATUS WINAPI OleQueryType(LPOLEOBJECT,LONG*); 261DWORD WINAPI OleQueryClientVersion(void); 262DWORD WINAPI OleQueryServerVersion(void); 263OLECLIPFORMAT WINAPI OleEnumFormats(LPOLEOBJECT,OLECLIPFORMAT); 264OLESTATUS WINAPI OleGetData(LPOLEOBJECT,OLECLIPFORMAT,HANDLE*); 265OLESTATUS WINAPI OleSetData(LPOLEOBJECT,OLECLIPFORMAT,HANDLE); 266OLESTATUS WINAPI OleQueryOutOfDate(LPOLEOBJECT); 267OLESTATUS WINAPI OleRequestData(LPOLEOBJECT,OLECLIPFORMAT); 268OLESTATUS WINAPI OleQueryLinkFromClip(LPCSTR,OLEOPT_RENDER,OLECLIPFORMAT); 269OLESTATUS WINAPI OleQueryCreateFromClip(LPCSTR,OLEOPT_RENDER,OLECLIPFORMAT); 270OLESTATUS WINAPI OleCreateFromClip(LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); 271OLESTATUS WINAPI OleCreateLinkFromClip(LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); 272OLESTATUS WINAPI OleCreateFromFile(LPCSTR,LPOLECLIENT,LPCSTR,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); 273OLESTATUS WINAPI OleCreateLinkFromFile(LPCSTR,LPOLECLIENT,LPCSTR,LPCSTR,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); 274OLESTATUS WINAPI OleLoadFromStream(LPOLESTREAM,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*); 275OLESTATUS WINAPI OleCreate(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); 276OLESTATUS WINAPI OleCreateInvisible(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT,BOOL); 277OLESTATUS WINAPI OleCreateFromTemplate(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); 278OLESTATUS WINAPI OleClone(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*); 279OLESTATUS WINAPI OleCopyFromLink(LPOLEOBJECT,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*); 280OLESTATUS WINAPI OleObjectConvert(LPOLEOBJECT,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*); 281OLESTATUS WINAPI OleRename(LPOLEOBJECT,LPCSTR); 282OLESTATUS WINAPI OleQueryName(LPOLEOBJECT,LPSTR,UINT*); 283OLESTATUS WINAPI OleRevokeObject(LPOLECLIENT); 284BOOL WINAPI OleIsDcMeta(HDC); 285OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC*); 286OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC); 287OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC,LPCSTR); 288OLESTATUS WINAPI OleRevertClientDoc(LHCLIENTDOC); 289OLESTATUS WINAPI OleSavedClientDoc(LHCLIENTDOC); 290OLESTATUS WINAPI OleEnumObjects(LHCLIENTDOC,LPOLEOBJECT*); 291OLESTATUS WINAPI OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER*,HINSTANCE,OLE_SERVER_USE); 292OLESTATUS WINAPI OleRevokeServer(LHSERVER); 293OLESTATUS WINAPI OleBlockServer(LHSERVER); 294OLESTATUS WINAPI OleUnblockServer(LHSERVER,BOOL*); 295OLESTATUS WINAPI OleLockServer(LPOLEOBJECT,LHSERVER*); 296OLESTATUS WINAPI OleUnlockServer(LHSERVER); 297OLESTATUS WINAPI OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC*); 298OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC); 299OLESTATUS WINAPI OleRenameServerDoc(LHSERVERDOC,LPCSTR); 300OLESTATUS WINAPI OleRevertServerDoc(LHSERVERDOC); 301OLESTATUS WINAPI OleSavedServerDoc(LHSERVERDOC); 302#ifdef __cplusplus 303} 304#endif 305#endif