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