|
|
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.