|
|
1.1 ! root 1: /*****************************************************************************\ ! 2: * * ! 3: * ole.h - Object Linking and Embedding functions, types, and definitions* ! 4: * * ! 5: * Version 1.0 * ! 6: * * ! 7: * NOTE: windows.h must be #included first * ! 8: * * ! 9: * Copyright (c) 1990-1992, Microsoft Corp. All rights reserved.* ! 10: * * ! 11: \*****************************************************************************/ ! 12: ! 13: #ifndef _INC_OLE ! 14: #define _INC_OLE ! 15: ! 16: #ifdef WIN16 ! 17: #ifndef RC_INVOKED ! 18: #pragma pack(1) /* Assume byte packing throughout */ ! 19: #endif /* !RC_INVOKED */ ! 20: #endif ! 21: ! 22: #ifdef __cplusplus ! 23: extern "C" { /* Assume C declarations for C++ */ ! 24: #endif /* __cplusplus */ ! 25: ! 26: #ifndef WINAPI /* If not included with 3.1 headers... */ ! 27: #define WINAPI FAR PASCAL ! 28: #define CALLBACK FAR PASCAL ! 29: #define LPCSTR LPSTR ! 30: #define LRESULT LONG ! 31: #define HGLOBAL HANDLE ! 32: #endif /* _INC_WINDOWS */ ! 33: ! 34: ! 35: #ifdef STRICT ! 36: #define OLE_LPCSTR LPCSTR ! 37: #define OLE_CONST const ! 38: #else /* STRICT */ ! 39: #define OLE_LPCSTR LPSTR ! 40: #define OLE_CONST ! 41: #endif /* !STRICT */ ! 42: ! 43: ! 44: /* Object types */ ! 45: #define OT_LINK 1L ! 46: #define OT_EMBEDDED 2L ! 47: #define OT_STATIC 3L ! 48: ! 49: /* activate verbs */ ! 50: #define OLEVERB_PRIMARY 0 ! 51: ! 52: /* target device info structure */ ! 53: typedef struct _OLETARGETDEVICE ! 54: { ! 55: UINT otdDeviceNameOffset; ! 56: UINT otdDriverNameOffset; ! 57: UINT otdPortNameOffset; ! 58: UINT otdExtDevmodeOffset; ! 59: UINT otdExtDevmodeSize; ! 60: UINT otdEnvironmentOffset; ! 61: UINT otdEnvironmentSize; ! 62: BYTE otdData[1]; ! 63: } OLETARGETDEVICE; ! 64: typedef OLETARGETDEVICE FAR* LPOLETARGETDEVICE; ! 65: ! 66: /* flags used in some methods */ ! 67: #define OF_SET 0x0001 ! 68: #define OF_GET 0x0002 ! 69: #define OF_HANDLER 0x0004 ! 70: ! 71: /* return codes for OLE functions */ ! 72: typedef enum ! 73: { ! 74: OLE_OK, /* 0 Function operated correctly */ ! 75: ! 76: OLE_WAIT_FOR_RELEASE, /* 1 Command has been initiated, client */ ! 77: /* must wait for release. keep dispatching */ ! 78: /* messages till OLE_RELESE in callback */ ! 79: ! 80: OLE_BUSY, /* 2 Tried to execute a method while another */ ! 81: /* method is in progress. */ ! 82: ! 83: OLE_ERROR_PROTECT_ONLY, /* 3 Ole APIs are called in real mode */ ! 84: OLE_ERROR_MEMORY, /* 4 Could not alloc or lock memory */ ! 85: OLE_ERROR_STREAM, /* 5 (OLESTREAM) stream error */ ! 86: OLE_ERROR_STATIC, /* 6 Non static object expected */ ! 87: OLE_ERROR_BLANK, /* 7 Critical data missing */ ! 88: OLE_ERROR_DRAW, /* 8 Error while drawing */ ! 89: OLE_ERROR_METAFILE, /* 9 Invalid metafile */ ! 90: OLE_ERROR_ABORT, /* 10 Client chose to abort metafile drawing */ ! 91: OLE_ERROR_CLIPBOARD, /* 11 Failed to get/set clipboard data */ ! 92: OLE_ERROR_FORMAT, /* 12 Requested format is not available */ ! 93: OLE_ERROR_OBJECT, /* 13 Not a valid object */ ! 94: OLE_ERROR_OPTION, /* 14 Invalid option(link update / render) */ ! 95: OLE_ERROR_PROTOCOL, /* 15 Invalid protocol */ ! 96: OLE_ERROR_ADDRESS, /* 16 One of the pointers is invalid */ ! 97: OLE_ERROR_NOT_EQUAL, /* 17 Objects are not equal */ ! 98: OLE_ERROR_HANDLE, /* 18 Invalid handle encountered */ ! 99: OLE_ERROR_GENERIC, /* 19 Some general error */ ! 100: OLE_ERROR_CLASS, /* 20 Invalid class */ ! 101: OLE_ERROR_SYNTAX, /* 21 Command syntax is invalid */ ! 102: OLE_ERROR_DATATYPE, /* 22 Data format is not supported */ ! 103: OLE_ERROR_PALETTE, /* 23 Invalid color palette */ ! 104: OLE_ERROR_NOT_LINK, /* 24 Not a linked object */ ! 105: OLE_ERROR_NOT_EMPTY, /* 25 Client doc contains objects. */ ! 106: OLE_ERROR_SIZE, /* 26 Incorrect buffer size passed to the api */ ! 107: /* that places some string in caller's */ ! 108: /* buffer */ ! 109: ! 110: OLE_ERROR_DRIVE, /* 27 Drive letter in doc name is invalid */ ! 111: OLE_ERROR_NETWORK, /* 28 Failed to establish connection to a */ ! 112: /* network share on which the document */ ! 113: /* is located */ ! 114: ! 115: OLE_ERROR_NAME, /* 29 Invalid name(doc name, object name), */ ! 116: /* etc.. passed to the APIs */ ! 117: ! 118: OLE_ERROR_TEMPLATE, /* 30 Server failed to load template */ ! 119: OLE_ERROR_NEW, /* 31 Server failed to create new doc */ ! 120: OLE_ERROR_EDIT, /* 32 Server failed to create embedded */ ! 121: /* instance */ ! 122: OLE_ERROR_OPEN, /* 33 Server failed to open document, */ ! 123: /* possible invalid link */ ! 124: ! 125: OLE_ERROR_NOT_OPEN, /* 34 Object is not open for editing */ ! 126: OLE_ERROR_LAUNCH, /* 35 Failed to launch server */ ! 127: OLE_ERROR_COMM, /* 36 Failed to communicate with server */ ! 128: OLE_ERROR_TERMINATE, /* 37 Error in termination */ ! 129: OLE_ERROR_COMMAND, /* 38 Error in execute */ ! 130: OLE_ERROR_SHOW, /* 39 Error in show */ ! 131: OLE_ERROR_DOVERB, /* 40 Error in sending do verb, or invalid */ ! 132: /* verb */ ! 133: OLE_ERROR_ADVISE_NATIVE, /* 41 Item could be missing */ ! 134: OLE_ERROR_ADVISE_PICT, /* 42 Item could be missing or server doesn't */ ! 135: /* this format. */ ! 136: ! 137: OLE_ERROR_ADVISE_RENAME, /* 43 Server doesn't support rename */ ! 138: OLE_ERROR_POKE_NATIVE, /* 44 Failure of poking native data to server */ ! 139: OLE_ERROR_REQUEST_NATIVE, /* 45 Server failed to render native data */ ! 140: OLE_ERROR_REQUEST_PICT, /* 46 Server failed to render presentation */ ! 141: /* data */ ! 142: OLE_ERROR_SERVER_BLOCKED, /* 47 Trying to block a blocked server or */ ! 143: /* trying to revoke a blocked server */ ! 144: /* or document */ ! 145: ! 146: OLE_ERROR_REGISTRATION, /* 48 Server is not registered in regestation */ ! 147: /* data base */ ! 148: OLE_ERROR_ALREADY_REGISTERED,/*49 Trying to register same doc multiple */ ! 149: /* times */ ! 150: OLE_ERROR_TASK, /* 50 Server or client task is invalid */ ! 151: OLE_ERROR_OUTOFDATE, /* 51 Object is out of date */ ! 152: OLE_ERROR_CANT_UPDATE_CLIENT,/* 52 Embed doc's client doesn't accept */ ! 153: /* updates */ ! 154: OLE_ERROR_UPDATE, /* 53 erorr while trying to update */ ! 155: OLE_ERROR_SETDATA_FORMAT, /* 54 Server app doesn't understand the */ ! 156: /* format given to its SetData method */ ! 157: OLE_ERROR_STATIC_FROM_OTHER_OS,/* 55 trying to load a static object created */ ! 158: /* on another Operating System */ ! 159: OLE_ERROR_FILE_VER, ! 160: ! 161: /* Following are warnings */ ! 162: OLE_WARN_DELETE_DATA = 1000 /* Caller must delete the data when he is */ ! 163: /* done with it. */ ! 164: } OLESTATUS; ! 165: ! 166: ! 167: ! 168: /* Codes for CallBack events */ ! 169: typedef enum ! 170: { ! 171: OLE_CHANGED, /* 0 */ ! 172: OLE_SAVED, /* 1 */ ! 173: OLE_CLOSED, /* 2 */ ! 174: OLE_RENAMED, /* 3 */ ! 175: OLE_QUERY_PAINT, /* 4 Interruptible paint support */ ! 176: OLE_RELEASE, /* 5 Object is released(asynchronous operation */ ! 177: /* is completed) */ ! 178: OLE_QUERY_RETRY /* 6 Query for retry when server sends busy ACK */ ! 179: } OLE_NOTIFICATION; ! 180: ! 181: typedef enum ! 182: { ! 183: OLE_NONE, /* 0 no method active */ ! 184: OLE_DELETE, /* 1 object delete */ ! 185: OLE_LNKPASTE, /* 2 PasteLink(auto reconnect) */ ! 186: OLE_EMBPASTE, /* 3 paste(and update) */ ! 187: OLE_SHOW, /* 4 Show */ ! 188: OLE_RUN, /* 5 Run */ ! 189: OLE_ACTIVATE, /* 6 Activate */ ! 190: OLE_UPDATE, /* 7 Update */ ! 191: OLE_CLOSE, /* 8 Close */ ! 192: OLE_RECONNECT, /* 9 Reconnect */ ! 193: OLE_SETUPDATEOPTIONS, /* 10 setting update options */ ! 194: OLE_SERVERUNLAUNCH, /* 11 server is being unlaunched */ ! 195: OLE_LOADFROMSTREAM, /* 12 LoadFromStream(auto reconnect) */ ! 196: OLE_SETDATA, /* 13 OleSetData */ ! 197: OLE_REQUESTDATA, /* 14 OleRequestData */ ! 198: OLE_OTHER, /* 15 other misc async operations */ ! 199: OLE_CREATE, /* 16 create */ ! 200: OLE_CREATEFROMTEMPLATE, /* 17 CreatefromTemplate */ ! 201: OLE_CREATELINKFROMFILE, /* 18 CreateLinkFromFile */ ! 202: OLE_COPYFROMLNK, /* 19 CopyFromLink(auto reconnect) */ ! 203: OLE_CREATEFROMFILE, /* 20 CreateFromFile */ ! 204: OLE_CREATEINVISIBLE /* 21 CreateInvisible */ ! 205: } OLE_RELEASE_METHOD; ! 206: ! 207: /* rendering options */ ! 208: typedef enum ! 209: { ! 210: olerender_none, ! 211: olerender_draw, ! 212: olerender_format ! 213: } OLEOPT_RENDER; ! 214: ! 215: /* standard clipboard format type */ ! 216: typedef WORD OLECLIPFORMAT; ! 217: ! 218: /* Link update options */ ! 219: typedef enum ! 220: { ! 221: oleupdate_always, ! 222: oleupdate_onsave, ! 223: #ifdef OLE_INTERNAL ! 224: oleupdate_oncall, ! 225: oleupdate_onclose ! 226: #else ! 227: oleupdate_oncall ! 228: #endif /* OLE_INTERNAL */ ! 229: } OLEOPT_UPDATE; ! 230: ! 231: typedef HANDLE HOBJECT; ! 232: typedef LONG LHSERVER; ! 233: typedef LONG LHCLIENTDOC; ! 234: typedef LONG LHSERVERDOC; ! 235: ! 236: typedef struct _OLEOBJECT FAR* LPOLEOBJECT; ! 237: typedef struct _OLESTREAM FAR* LPOLESTREAM; ! 238: typedef struct _OLECLIENT FAR* LPOLECLIENT; ! 239: ! 240: ! 241: /* object method table definitions. */ ! 242: typedef struct _OLEOBJECTVTBL ! 243: { ! 244: void FAR* (CALLBACK* QueryProtocol) (LPOLEOBJECT, OLE_LPCSTR); ! 245: OLESTATUS (CALLBACK* Release) (LPOLEOBJECT); ! 246: OLESTATUS (CALLBACK* Show) (LPOLEOBJECT, BOOL); ! 247: OLESTATUS (CALLBACK* DoVerb) (LPOLEOBJECT, UINT, BOOL, BOOL); ! 248: OLESTATUS (CALLBACK* GetData) (LPOLEOBJECT, OLECLIPFORMAT, HANDLE FAR*); ! 249: OLESTATUS (CALLBACK* SetData) (LPOLEOBJECT, OLECLIPFORMAT, HANDLE); ! 250: OLESTATUS (CALLBACK* SetTargetDevice) (LPOLEOBJECT, HGLOBAL); ! 251: OLESTATUS (CALLBACK* SetBounds) (LPOLEOBJECT, OLE_CONST RECT FAR*); ! 252: OLECLIPFORMAT (CALLBACK* EnumFormats) (LPOLEOBJECT, OLECLIPFORMAT); ! 253: OLESTATUS (CALLBACK* SetColorScheme) (LPOLEOBJECT, OLE_CONST LOGPALETTE FAR*); ! 254: /* Server has to implement only the above methods. */ ! 255: ! 256: #ifndef SERVERONLY ! 257: /* Extra methods required for client. */ ! 258: OLESTATUS (CALLBACK* Delete) (LPOLEOBJECT); ! 259: OLESTATUS (CALLBACK* SetHostNames) (LPOLEOBJECT, OLE_LPCSTR, OLE_LPCSTR); ! 260: OLESTATUS (CALLBACK* SaveToStream) (LPOLEOBJECT, LPOLESTREAM); ! 261: OLESTATUS (CALLBACK* Clone) (LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, LPOLEOBJECT FAR*); ! 262: OLESTATUS (CALLBACK* CopyFromLink) (LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, LPOLEOBJECT FAR*); ! 263: OLESTATUS (CALLBACK* Equal) (LPOLEOBJECT, LPOLEOBJECT); ! 264: OLESTATUS (CALLBACK* CopyToClipboard) (LPOLEOBJECT); ! 265: OLESTATUS (CALLBACK* Draw) (LPOLEOBJECT, HDC, OLE_CONST RECT FAR*, OLE_CONST RECT FAR*, HDC); ! 266: OLESTATUS (CALLBACK* Activate) (LPOLEOBJECT, UINT, BOOL, BOOL, HWND, OLE_CONST RECT FAR*); ! 267: OLESTATUS (CALLBACK* Execute) (LPOLEOBJECT, HGLOBAL, UINT); ! 268: OLESTATUS (CALLBACK* Close) (LPOLEOBJECT); ! 269: OLESTATUS (CALLBACK* Update) (LPOLEOBJECT); ! 270: OLESTATUS (CALLBACK* Reconnect) (LPOLEOBJECT); ! 271: ! 272: OLESTATUS (CALLBACK* ObjectConvert) (LPOLEOBJECT, OLE_LPCSTR, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR, LPOLEOBJECT FAR*); ! 273: OLESTATUS (CALLBACK* GetLinkUpdateOptions) (LPOLEOBJECT, OLEOPT_UPDATE FAR*); ! 274: OLESTATUS (CALLBACK* SetLinkUpdateOptions) (LPOLEOBJECT, OLEOPT_UPDATE); ! 275: ! 276: OLESTATUS (CALLBACK* Rename) (LPOLEOBJECT, OLE_LPCSTR); ! 277: OLESTATUS (CALLBACK* QueryName) (LPOLEOBJECT, LPSTR, UINT FAR*); ! 278: ! 279: OLESTATUS (CALLBACK* QueryType) (LPOLEOBJECT, LONG FAR*); ! 280: OLESTATUS (CALLBACK* QueryBounds) (LPOLEOBJECT, RECT FAR*); ! 281: OLESTATUS (CALLBACK* QuerySize) (LPOLEOBJECT, DWORD FAR*); ! 282: OLESTATUS (CALLBACK* QueryOpen) (LPOLEOBJECT); ! 283: OLESTATUS (CALLBACK* QueryOutOfDate) (LPOLEOBJECT); ! 284: ! 285: OLESTATUS (CALLBACK* QueryReleaseStatus) (LPOLEOBJECT); ! 286: OLESTATUS (CALLBACK* QueryReleaseError) (LPOLEOBJECT); ! 287: OLE_RELEASE_METHOD (CALLBACK* QueryReleaseMethod)(LPOLEOBJECT); ! 288: ! 289: OLESTATUS (CALLBACK* RequestData) (LPOLEOBJECT, OLECLIPFORMAT); ! 290: OLESTATUS (CALLBACK* ObjectLong) (LPOLEOBJECT, UINT, LONG FAR*); ! 291: ! 292: /* This method is internal only */ ! 293: OLESTATUS (CALLBACK* ChangeData) (LPOLEOBJECT, HANDLE, LPOLECLIENT, BOOL); ! 294: #endif /* !SERVERONLY */ ! 295: } OLEOBJECTVTBL; ! 296: typedef OLEOBJECTVTBL FAR* LPOLEOBJECTVTBL; ! 297: ! 298: #ifndef OLE_INTERNAL ! 299: typedef struct _OLEOBJECT ! 300: { ! 301: LPOLEOBJECTVTBL lpvtbl; ! 302: } OLEOBJECT; ! 303: #endif ! 304: ! 305: /* ole client definitions */ ! 306: typedef struct _OLECLIENTVTBL ! 307: { ! 308: int (CALLBACK* CallBack)(LPOLECLIENT, OLE_NOTIFICATION, LPOLEOBJECT); ! 309: } OLECLIENTVTBL; ! 310: ! 311: typedef OLECLIENTVTBL FAR* LPOLECLIENTVTBL; ! 312: ! 313: typedef struct _OLECLIENT ! 314: { ! 315: LPOLECLIENTVTBL lpvtbl; ! 316: } OLECLIENT; ! 317: ! 318: /* Stream definitions */ ! 319: typedef struct _OLESTREAMVTBL ! 320: { ! 321: DWORD (CALLBACK* Get)(LPOLESTREAM, void FAR*, DWORD); ! 322: DWORD (CALLBACK* Put)(LPOLESTREAM, OLE_CONST void FAR*, DWORD); ! 323: } OLESTREAMVTBL; ! 324: typedef OLESTREAMVTBL FAR* LPOLESTREAMVTBL; ! 325: ! 326: typedef struct _OLESTREAM ! 327: { ! 328: LPOLESTREAMVTBL lpstbl; ! 329: } OLESTREAM; ! 330: ! 331: /* Public Function Prototypes */ ! 332: OLESTATUS WINAPI OleDelete(LPOLEOBJECT); ! 333: OLESTATUS WINAPI OleRelease(LPOLEOBJECT); ! 334: OLESTATUS WINAPI OleSaveToStream(LPOLEOBJECT, LPOLESTREAM); ! 335: OLESTATUS WINAPI OleEqual(LPOLEOBJECT, LPOLEOBJECT ); ! 336: OLESTATUS WINAPI OleCopyToClipboard(LPOLEOBJECT); ! 337: OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT, LPCSTR, LPCSTR); ! 338: OLESTATUS WINAPI OleSetTargetDevice(LPOLEOBJECT, HGLOBAL); ! 339: OLESTATUS WINAPI OleSetBounds(LPOLEOBJECT, const RECT FAR*); ! 340: OLESTATUS WINAPI OleSetColorScheme(LPOLEOBJECT, const LOGPALETTE FAR*); ! 341: OLESTATUS WINAPI OleQueryBounds(LPOLEOBJECT, RECT FAR*); ! 342: OLESTATUS WINAPI OleQuerySize(LPOLEOBJECT, DWORD FAR*); ! 343: OLESTATUS WINAPI OleDraw(LPOLEOBJECT, HDC, const RECT FAR*, const RECT FAR*, HDC); ! 344: OLESTATUS WINAPI OleQueryOpen(LPOLEOBJECT); ! 345: OLESTATUS WINAPI OleActivate(LPOLEOBJECT, UINT, BOOL, BOOL, HWND, const RECT FAR*); ! 346: OLESTATUS WINAPI OleExecute(LPOLEOBJECT, HGLOBAL, UINT); ! 347: OLESTATUS WINAPI OleClose(LPOLEOBJECT); ! 348: OLESTATUS WINAPI OleUpdate(LPOLEOBJECT); ! 349: OLESTATUS WINAPI OleReconnect(LPOLEOBJECT); ! 350: OLESTATUS WINAPI OleGetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE FAR*); ! 351: OLESTATUS WINAPI OleSetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE); ! 352: void FAR* WINAPI OleQueryProtocol(LPOLEOBJECT, LPCSTR); ! 353: OLESTATUS WINAPI OleSetFileFormat(LHCLIENTDOC, LONG); ! 354: ! 355: /* Routines related to asynchronous operations. */ ! 356: OLESTATUS WINAPI OleQueryReleaseStatus(LPOLEOBJECT); ! 357: OLESTATUS WINAPI OleQueryReleaseError(LPOLEOBJECT); ! 358: OLE_RELEASE_METHOD WINAPI OleQueryReleaseMethod(LPOLEOBJECT); ! 359: ! 360: OLESTATUS WINAPI OleQueryType(LPOLEOBJECT, LONG FAR*); ! 361: ! 362: /* LOWORD is major version, HIWORD is minor version */ ! 363: DWORD WINAPI OleQueryClientVersion(void); ! 364: DWORD WINAPI OleQueryServerVersion(void); ! 365: ! 366: /* Converting to format (as in clipboard): */ ! 367: OLECLIPFORMAT WINAPI OleEnumFormats(LPOLEOBJECT, OLECLIPFORMAT); ! 368: OLESTATUS WINAPI OleGetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE FAR*); ! 369: OLESTATUS WINAPI OleSetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE); ! 370: OLESTATUS WINAPI OleQueryOutOfDate(LPOLEOBJECT); ! 371: OLESTATUS WINAPI OleRequestData(LPOLEOBJECT, OLECLIPFORMAT); ! 372: ! 373: /* Query apis for creation from clipboard */ ! 374: OLESTATUS WINAPI OleQueryLinkFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT); ! 375: OLESTATUS WINAPI OleQueryCreateFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT); ! 376: ! 377: /* Object creation functions */ ! 378: OLESTATUS WINAPI OleCreateFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); ! 379: OLESTATUS WINAPI OleCreateLinkFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); ! 380: OLESTATUS WINAPI OleCreateFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); ! 381: OLESTATUS WINAPI OleCreateLinkFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); ! 382: OLESTATUS WINAPI OleLoadFromStream(LPOLESTREAM, LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*); ! 383: OLESTATUS WINAPI OleCreate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); ! 384: OLESTATUS WINAPI OleCreateInvisible(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT, BOOL); ! 385: OLESTATUS WINAPI OleCreateFromTemplate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*, OLEOPT_RENDER, OLECLIPFORMAT); ! 386: OLESTATUS WINAPI OleClone(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*); ! 387: OLESTATUS WINAPI OleCopyFromLink(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*); ! 388: OLESTATUS WINAPI OleObjectConvert(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR, LPOLEOBJECT FAR*); ! 389: OLESTATUS WINAPI OleRename(LPOLEOBJECT, LPCSTR); ! 390: OLESTATUS WINAPI OleQueryName(LPOLEOBJECT, LPSTR, UINT FAR*); ! 391: OLESTATUS WINAPI OleRevokeObject(LPOLECLIENT); ! 392: BOOL WINAPI OleIsDcMeta(HDC); ! 393: ! 394: /* client document API */ ! 395: OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR, LPCSTR, LONG, LHCLIENTDOC FAR*); ! 396: OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC); ! 397: OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC, LPCSTR); ! 398: OLESTATUS WINAPI OleRevertClientDoc(LHCLIENTDOC); ! 399: OLESTATUS WINAPI OleSavedClientDoc(LHCLIENTDOC); ! 400: OLESTATUS WINAPI OleEnumObjects(LHCLIENTDOC, LPOLEOBJECT FAR*); ! 401: ! 402: /* server usage definitions */ ! 403: typedef enum { ! 404: OLE_SERVER_MULTI, /* multiple instances */ ! 405: OLE_SERVER_SINGLE /* single instance(multiple document) */ ! 406: } OLE_SERVER_USE; ! 407: ! 408: /* Server API */ ! 409: typedef struct _OLESERVER FAR* LPOLESERVER; ! 410: ! 411: OLESTATUS WINAPI OleRegisterServer(LPCSTR, LPOLESERVER, LHSERVER FAR*, HINSTANCE, OLE_SERVER_USE); ! 412: OLESTATUS WINAPI OleRevokeServer(LHSERVER); ! 413: OLESTATUS WINAPI OleBlockServer(LHSERVER); ! 414: OLESTATUS WINAPI OleUnblockServer(LHSERVER, BOOL FAR*); ! 415: ! 416: /* APIs to keep server open */ ! 417: OLESTATUS WINAPI OleLockServer(LPOLEOBJECT, LHSERVER FAR*); ! 418: OLESTATUS WINAPI OleUnlockServer(LHSERVER); ! 419: ! 420: /* Server document API */ ! 421: ! 422: typedef struct _OLESERVERDOC FAR* LPOLESERVERDOC; ! 423: ! 424: OLESTATUS WINAPI OleRegisterServerDoc(LHSERVER, LPCSTR, LPOLESERVERDOC, LHSERVERDOC FAR*); ! 425: OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC); ! 426: OLESTATUS WINAPI OleRenameServerDoc(LHSERVERDOC, LPCSTR); ! 427: OLESTATUS WINAPI OleRevertServerDoc(LHSERVERDOC); ! 428: OLESTATUS WINAPI OleSavedServerDoc(LHSERVERDOC); ! 429: ! 430: typedef struct _OLESERVERVTBL ! 431: { ! 432: OLESTATUS (CALLBACK* Open) (LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, LPOLESERVERDOC FAR*); ! 433: /* long handle to doc(privtate to DLL) */ ! 434: /* lp to OLESERVER */ ! 435: /* document name */ ! 436: /* place holder for returning oledoc. */ ! 437: ! 438: OLESTATUS (CALLBACK* Create)(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, LPOLESERVERDOC FAR*); ! 439: /* long handle to doc(privtate to DLL) */ ! 440: /* lp to OLESERVER */ ! 441: /* lp class name */ ! 442: /* lp doc name */ ! 443: /* place holder for returning oledoc. */ ! 444: ! 445: OLESTATUS (CALLBACK* CreateFromTemplate)(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, OLE_LPCSTR, LPOLESERVERDOC FAR*); ! 446: /* long handle to doc(privtate to DLL) */ ! 447: /* lp to OLESERVER */ ! 448: /* lp class name */ ! 449: /* lp doc name */ ! 450: /* lp template name */ ! 451: /* place holder for returning oledoc. */ ! 452: ! 453: OLESTATUS (CALLBACK* Edit) (LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR, LPOLESERVERDOC FAR*); ! 454: /* long handle to doc(privtate to DLL) */ ! 455: /* lp to OLESERVER */ ! 456: /* lp class name */ ! 457: /* lp doc name */ ! 458: /* place holder for returning oledoc. */ ! 459: ! 460: OLESTATUS (CALLBACK* Exit) (LPOLESERVER); ! 461: /* lp OLESERVER */ ! 462: ! 463: OLESTATUS (CALLBACK* Release) (LPOLESERVER); ! 464: /* lp OLESERVER */ ! 465: ! 466: OLESTATUS (CALLBACK* Execute)(LPOLESERVER, HGLOBAL); ! 467: /* lp OLESERVER */ ! 468: /* handle to command strings */ ! 469: } OLESERVERVTBL; ! 470: typedef OLESERVERVTBL FAR* LPOLESERVERVTBL; ! 471: ! 472: typedef struct _OLESERVER ! 473: { ! 474: LPOLESERVERVTBL lpvtbl; ! 475: } OLESERVER; ! 476: ! 477: typedef struct _OLESERVERDOCVTBL ! 478: { ! 479: OLESTATUS (CALLBACK* Save) (LPOLESERVERDOC); ! 480: OLESTATUS (CALLBACK* Close) (LPOLESERVERDOC); ! 481: OLESTATUS (CALLBACK* SetHostNames)(LPOLESERVERDOC, OLE_LPCSTR, OLE_LPCSTR); ! 482: OLESTATUS (CALLBACK* SetDocDimensions)(LPOLESERVERDOC, OLE_CONST RECT FAR*); ! 483: OLESTATUS (CALLBACK* GetObject) (LPOLESERVERDOC, OLE_LPCSTR, LPOLEOBJECT FAR*, LPOLECLIENT); ! 484: OLESTATUS (CALLBACK* Release) (LPOLESERVERDOC); ! 485: OLESTATUS (CALLBACK* SetColorScheme)(LPOLESERVERDOC, OLE_CONST LOGPALETTE FAR*); ! 486: OLESTATUS (CALLBACK* Execute) (LPOLESERVERDOC, HGLOBAL); ! 487: } OLESERVERDOCVTBL; ! 488: typedef OLESERVERDOCVTBL FAR* LPOLESERVERDOCVTBL; ! 489: ! 490: typedef struct _OLESERVERDOC ! 491: { ! 492: LPOLESERVERDOCVTBL lpvtbl; ! 493: } OLESERVERDOC; ! 494: ! 495: #ifdef __cplusplus ! 496: } ! 497: #endif /* __cplusplus */ ! 498: ! 499: #ifndef RC_INVOKED ! 500: #pragma pack() ! 501: #endif /* !RC_INVOKED */ ! 502: ! 503: #endif /* !_INC_OLE */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.