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