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