|
|
1.1 root 1: // ole2.h - main ole2 header; includes all subcomponents
2:
3: #if !defined( _OLE2_H_ )
4: #define _OLE2_H_
5:
6: #ifndef RC_INVOKED
7: #pragma warning(disable:4001)
8: #endif /* RC_INVOKED */
9:
10: #include <string.h>
11:
12: /****** Standard Object Definitions *****************************************/
13:
14: #include <compobj.h>
15:
16:
17: #ifndef OLE2SHIP
18: // these are derived from the std definitions in stdobj.h
19: // WARNING: these will be removed before we ship!!!
20:
21: #define OLEMETHODCALLTYPE STDMETHODCALLTYPE
22: #define OLEAPICALLTYPE STDAPICALLTYPE
23:
24: #define OLEAPI STDAPI
25: #define OLEAPI_(type) STDAPI_(type)
26:
27: #define OLEMETHOD(method) STDMETHOD(method)
28: #define OLEMETHOD_(type,method) STDMETHOD_(type,method)
29:
30: #define OLEMETHODIMP STDMETHODIMP
31: #define OLEMETHODIMP_(type) STDMETHODIMP_(type)
32:
33: #endif
34:
35: // *************** FACILITY_ITF scodes common to all interfaces ************
36: //
37: // By convention, OLE interfaces divide the FACILITY_ITF range of errors
38: // into nonoverlapping subranges. If an interface returns a FACILITY_ITF
39: // scode, it must be from the range associated with that interface or from
40: // the shared range: OLE_E_FIRST...OLE_E_LAST.
41: //
42:
43: // error codes
44:
45: #define OLE_E_OLEVERB (OLE_E_FIRST)
46: // invalid OLEVERB structure
47:
48: #define OLE_E_ADVF (OLE_E_FIRST+1)
49: // invalid advise flags
50:
51: #define OLE_E_ENUM_NOMORE (OLE_E_FIRST+2)
52: // you can't enuemrate any more, because the associated data is missing
53:
54: #define OLE_E_ADVISENOTSUPPORTED (OLE_E_FIRST+3)
55: // this implementation doesn't take advises
56:
57: #define OLE_E_NOCONNECTION (OLE_E_FIRST+4)
58: // there is no connection for this connection id
59:
60: #define OLE_E_NOTRUNNING (OLE_E_FIRST+5)
61: // need run the object to perform this operation
62:
63: #define OLE_E_NOCACHE (OLE_E_FIRST+6)
64: // there is no cache to operate on
65:
66: #define OLE_E_BLANK (OLE_E_FIRST+7)
67: // Uninitialized object
68:
69: #define OLE_E_CLASSDIFF (OLE_E_FIRST+8)
70: // linked object's source class has changed
71:
72: #define OLE_E_CANT_GETMONIKER (OLE_E_FIRST+9)
73: // not able to get the moniker of the object
74:
75: #define OLE_E_CANT_BINDTOSOURCE (OLE_E_FIRST+10)
76: // not able to bind to the source
77:
78: #define OLE_E_STATIC (OLE_E_FIRST+11)
79: // object is static, operation not allowed
80:
81: #define OLE_E_PROMPTSAVECANCELLED (OLE_E_FIRST+12)
82: // user cancelled out of save dialog
83:
84: #define OLE_E_INVALIDRECT (OLE_E_FIRST+13)
85: // invalid rectangle
86:
87: #define OLE_E_WRONGCOMPOBJ (OLE_E_FIRST+14)
88: // compobj.dll is too old for the ole2.dll initialized
89:
90: #define OLE_E_INVALIDHWND (OLE_E_FIRST+15)
91: // invalid window handle
92:
93: #define OLE_E_NOT_INPLACEACTIVE (OLE_E_FIRST+16)
94: // object is not in any of the inplace active states
95:
96: #define DVGEN_E_FIRST (OLE_E_FIRST+100)
97:
98: #define DV_E_FORMATETC (DVGEN_E_FIRST)
99: // invalid FORMATETC structure
100:
101: #define DV_E_DVTARGETDEVICE (DVGEN_E_FIRST+1)
102: // invalid DVTARGETDEVICE structure
103:
104: #define DV_E_STGMEDIUM (DVGEN_E_FIRST+2)
105: // invalid STDGMEDIUM structure
106:
107: #define DV_E_STATDATA (DVGEN_E_FIRST+3)
108: // invalid STATDATA structure
109:
110: #define DV_E_LINDEX (DVGEN_E_FIRST+4)
111: // invalid lindex
112:
113: #define DV_E_TYMED (DVGEN_E_FIRST+5)
114: // invalid tymed
115:
116: #define DV_E_CLIPFORMAT (DVGEN_E_FIRST+6)
117: // invalid clipboard format
118:
119: #define DV_E_DVASPECT (DVGEN_E_FIRST+7)
120: // invalid aspect(s)
121:
122: #define DV_E_DVTARGETDEVICE_SIZE (DVGEN_E_FIRST+8)
123: // tdSize paramter of the DVTARGETDEVICE structure is invalid
124:
125: #define DV_E_NOIVIEWOBJECT (DVGEN_E_FIRST+9)
126: // object doesn't support IViewObject interface
127:
128:
129: // Success codes
130:
131: #define OLE_S_USEREG (OLE_S_FIRST)
132: // use the reg database to provide the requested info
133:
134: #define OLE_S_STATIC (OLE_S_FIRST+1)
135: // success, but static
136:
137: #define OLE_S_MAC_CLIPFORMAT (OLE_S_FIRST+2)
138: // macintosh clipboard format
139:
140: //*************************** Interface or API specific scodes *************
141:
142: // Errors for OleConvertOLESTREAMToIStorage and OleConvertIStorageToOLESTREAM
143:
144: // OLESTREAM Get method failed
145: #define CONVERT10_E_OLESTREAM_GET (CONVERT10_E_FIRST + 0)
146:
147: // OLESTREAM Put method failed
148: #define CONVERT10_E_OLESTREAM_PUT (CONVERT10_E_FIRST + 1)
149:
150: // Contents of the OLESTREAM not in correct format
151: #define CONVERT10_E_OLESTREAM_FMT (CONVERT10_E_FIRST + 2)
152:
153: #ifdef OLE2SHIP
154:
155: // There was in an error in a Windows GDI call while converting the bitmap
156: // to a DIB.
157: #define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB (CONVERT10_E_FIRST + 3)
158:
159: // Contents of the IStorage not in correct format
160: #define CONVERT10_E_STG_FMT (CONVERT10_E_FIRST + 4)
161:
162: // Contents of IStorage is missing one of the standard streams ("\1CompObj",
163: // "\1Ole", "\2OlePres000"). This may be the storage for a DLL object, or a
164: // class that does not use the def handler.
165: #define CONVERT10_E_STG_NO_STD_STREAM (CONVERT10_E_FIRST + 5)
166:
167: // There was in an error in a Windows GDI call while converting the DIB
168: // to a bitmap.
169: #define CONVERT10_E_STG_DIB_TO_BITMAP (CONVERT10_E_FIRST + 6)
170:
171: // Returned by either API, this scode indicates that the original object
172: // had no presentation, therefore the converted object does not either.
173: #define CONVERT10_S_NO_PRESENTATION (CONVERT10_S_FIRST + 0)
174:
175: #else
176: #define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB (CONVERT10_E_FIRST + 4)
177: #define CONVERT10_E_STG_FMT (CONVERT10_E_FIRST + 5)
178: #define CONVERT10_E_STG_NO_STD_STREAM (CONVERT10_E_FIRST + 6)
179: #define CONVERT10_E_STG_DIB_TO_BITMAP (CONVERT10_E_FIRST + 7)
180: #define CONVERT10_S_NO_PRESENTATION (CONVERT10_S_FIRST + 1)
181: #endif
182:
183:
184:
185: // Errors for Clipboard functions
186:
187: // OpenClipboard Failed
188: #define CLIPBRD_E_CANT_OPEN (CLIPBRD_E_FIRST + 0)
189:
190: // EmptyClipboard Failed
191: #define CLIPBRD_E_CANT_EMPTY (CLIPBRD_E_FIRST + 1)
192:
193: // SetClipboard Failed
194: #define CLIPBRD_E_CANT_SET (CLIPBRD_E_FIRST + 2)
195:
196: // Data on clipboard is invalid
197: #define CLIPBRD_E_BAD_DATA (CLIPBRD_E_FIRST + 3)
198:
199: // CloseClipboard Failed
200: #define CLIPBRD_E_CANT_CLOSE (CLIPBRD_E_FIRST + 4)
201:
202:
203: /****** OLE value types *****************************************************/
204:
205: /* rendering options */
206: typedef enum tagOLERENDER
207: {
208: OLERENDER_NONE = 0,
209: OLERENDER_DRAW = 1,
210: OLERENDER_FORMAT = 2,
211: OLERENDER_ASIS = 3
212: } OLERENDER;
213: typedef OLERENDER FAR* LPOLERENDER;
214:
215: // OLE verb; returned by IEnumOLEVERB
216: typedef struct FARSTRUCT tagOLEVERB
217: {
218: LONG lVerb;
219: LPSTR lpszVerbName;
220: DWORD fuFlags;
221: DWORD grfAttribs;
222: } OLEVERB, FAR* LPOLEVERB;
223:
224:
225: // Bitwise verb attributes used in OLEVERB.grfAttribs
226: typedef enum tagOLEVERBATTRIB // bitwise
227: {
228: OLEVERBATTRIB_NEVERDIRTIES = 1,
229: OLEVERBATTRIB_ONCONTAINERMENU = 2
230: } OLEVERBATTRIB;
231:
232:
233: // IOleObject::GetUserType optons; determines which form of the string to use
234: typedef enum tagUSERCLASSTYPE
235: {
236: USERCLASSTYPE_FULL = 1,
237: USERCLASSTYPE_SHORT= 2,
238: USERCLASSTYPE_APPNAME= 3,
239: } USERCLASSTYPE;
240:
241:
242: // bits returned from IOleObject::GetMistStatus
243: typedef enum tagOLEMISC // bitwise
244: {
245: OLEMISC_RECOMPOSEONRESIZE = 1,
246: OLEMISC_ONLYICONIC = 2,
247: OLEMISC_INSERTNOTREPLACE = 4,
248: OLEMISC_STATIC = 8,
249: OLEMISC_CANTLINKINSIDE = 16,
250: OLEMISC_CANLINKBYOLE1 = 32,
251: OLEMISC_ISLINKOBJECT = 64,
252: OLEMISC_INSIDEOUT = 128,
253: OLEMISC_ACTIVATEWHENVISIBLE = 256
254: } OLEMISC;
255:
256:
257: // IOleObject::Close options
258: typedef enum tagOLECLOSE
259: {
260: OLECLOSE_SAVEIFDIRTY = 0,
261: OLECLOSE_NOSAVE = 1,
262: OLECLOSE_PROMPTSAVE = 2
263: } OLECLOSE;
264:
265:
266: // IOleObject::GetMoniker and IOleClientSite::GetMoniker options; determines
267: // if and how monikers should be assigned.
268: typedef enum tagOLEGETMONIKER
269: {
270: OLEGETMONIKER_ONLYIFTHERE=1,
271: OLEGETMONIKER_FORCEASSIGN=2,
272: OLEGETMONIKER_UNASSIGN=3,
273: OLEGETMONIKER_TEMPFORUSER=4
274: } OLEGETMONIKER;
275:
276:
277: // IOleObject::GetMoniker, IOleObject::SetMoniker and
278: // IOleClientSite::GetMoniker options; determines which moniker to use
279: typedef enum tagOLEWHICHMK
280: {
281: OLEWHICHMK_CONTAINER=1,
282: OLEWHICHMK_OBJREL=2,
283: OLEWHICHMK_OBJFULL=3
284: } OLEWHICHMK;
285:
286:
287: #ifdef WIN32
288: #define LPSIZEL PSIZEL
289: #else
290: typedef struct FARSTRUCT tagSIZEL
291: {
292: long cx;
293: long cy;
294: } SIZEL, FAR* LPSIZEL;
295: #endif
296:
297:
298: #ifdef WIN32
299: #define LPRECTL PRECTL
300: #else
301: typedef struct FARSTRUCT tagRECTL
302: {
303: long left;
304: long top;
305: long right;
306: long bottom;
307: } RECTL, FAR* LPRECTL;
308:
309: typedef struct FARSTRUCT tagPOINTL {
310: LONG x;
311: LONG y;
312: } POINTL;
313:
314: #endif
315:
316:
317: #ifndef LPCRECT
318: typedef const RECT FAR* LPCRECT;
319: #endif
320:
321: #ifndef LPCRECTL
322: typedef const RECTL FAR* LPCRECTL;
323: #endif
324:
325:
326: /***** OLE 1.0 OLESTREAM declarations *************************************/
327:
328: typedef struct _OLESTREAM FAR* LPOLESTREAM;
329:
330: typedef struct _OLESTREAMVTBL
331: {
332: DWORD (CALLBACK* Get)(LPOLESTREAM, void FAR*, DWORD);
333: DWORD (CALLBACK* Put)(LPOLESTREAM, const void FAR*, DWORD);
334: } OLESTREAMVTBL;
335: typedef OLESTREAMVTBL FAR* LPOLESTREAMVTBL;
336:
337: typedef struct _OLESTREAM
338: {
339: LPOLESTREAMVTBL lpstbl;
340: } OLESTREAM;
341:
342:
343: /****** Clipboard Data structures *****************************************/
344:
345: typedef struct tagOBJECTDESCRIPTOR
346: {
347: ULONG cbSize; // Size of structure in bytes
348: CLSID clsid; // CLSID of data being transferred
349: DWORD dwDrawAspect; // Display aspect of the object
350: // normally DVASPECT_CONTENT or ICON.
351: // dwDrawAspect will be 0 (which is NOT
352: // DVASPECT_CONTENT) if the copier or
353: // dragsource didn't draw the object to
354: // begin with.
355: SIZEL sizel; // size of the object in HIMETRIC
356: // sizel is opt.: will be (0,0) for apps
357: // which don't draw the object being
358: // transferred
359: POINTL pointl; // Offset in HIMETRIC units from the
360: // upper-left corner of the obj where the
361: // mouse went down for the drag.
362: // NOTE: y coordinates increase downward.
363: // x coordinates increase to right
364: // pointl is opt.; it is only meaningful
365: // if object is transfered via drag/drop.
366: // (0, 0) if mouse position is unspecified
367: // (eg. when obj transfered via clipboard)
368: DWORD dwStatus; // Misc. status flags for object. Flags are
369: // defined by OLEMISC enum. these flags
370: // are as would be returned
371: // by IOleObject::GetMiscStatus.
372: DWORD dwFullUserTypeName; // Offset from beginning of structure to
373: // null-terminated string that specifies
374: // Full User Type Name of the object.
375: // 0 indicates string not present.
376: DWORD dwSrcOfCopy; // Offset from beginning of structure to
377: // null-terminated string that specifies
378: // source of the transfer.
379: // dwSrcOfCOpy is normally implemented as
380: // the display name of the temp-for-user
381: // moniker which identifies the source of
382: // the data.
383: // 0 indicates string not present.
384: // NOTE: moniker assignment is NOT forced.
385: // see IOleObject::GetMoniker(
386: // OLEGETMONIKER_TEMPFORUSER)
387:
388: /* variable sized string data may appear here */
389:
390: } OBJECTDESCRIPTOR, *POBJECTDESCRIPTOR, FAR *LPOBJECTDESCRIPTOR,
391: LINKSRCDESCRIPTOR, *PLINKSRCDESCRIPTOR, FAR *LPLINKSRCDESCRIPTOR;
392:
393:
394:
395: /* verbs */
396: #define OLEIVERB_PRIMARY (0L)
397: #define OLEIVERB_SHOW (-1L)
398: #define OLEIVERB_OPEN (-2L)
399: #define OLEIVERB_HIDE (-3L)
400: #define OLEIVERB_UIACTIVATE (-4L)
401: #define OLEIVERB_INPLACEACTIVATE (-5L)
402: #define OLEIVERB_DISCARDUNDOSTATE (-6L)
403:
404: // forward type declarations
405: #if defined(__cplusplus)
406: interface IOleClientSite;
407: interface IOleContainer;
408: interface IOleObject;
409: #else
410: typedef interface IOleClientSite IOleClientSite;
411: typedef interface IOleContainer IOleContainer;
412: typedef interface IOleObject IOleObject;
413: #endif
414:
415: typedef IOleObject FAR* LPOLEOBJECT;
416: typedef IOleClientSite FAR* LPOLECLIENTSITE;
417: typedef IOleContainer FAR* LPOLECONTAINER;
418:
419:
420: /****** OLE GUIDs *********************************************************/
421:
422: #include "oleguid.h"
423:
424:
425: /****** Other Major Interfaces ********************************************/
426:
427: #include <dvobj.h>
428:
429: #include <storage.h>
430:
431:
432:
433: /****** IDrop??? Interfaces ********************************************/
434:
435: #define MK_ALT 0x0020
436:
437:
438: #define DROPEFFECT_NONE 0
439: #define DROPEFFECT_COPY 1
440: #define DROPEFFECT_MOVE 2
441: #define DROPEFFECT_LINK 4
442: #define DROPEFFECT_SCROLL 0x80000000
443:
444: // default inset-width of the hot zone, in pixels
445: #define DD_DEFSCROLLINSET 11
446:
447: // default delay before scrolling, in milliseconds
448: #define DD_DEFSCROLLDELAY 50
449:
450:
451: /* Dragdrop specific error codes */
452:
453: #define DRAGDROP_E_NOTREGISTERED (DRAGDROP_E_FIRST)
454: // trying to revoke a drop target that has not been registered
455:
456: #define DRAGDROP_E_ALREADYREGISTERED (DRAGDROP_E_FIRST+1)
457: // this window has already been registered as a drop target
458:
459: #define DRAGDROP_E_INVALIDHWND (DRAGDROP_E_FIRST+2)
460: // invalid HWND
461:
462:
463: #define DRAGDROP_S_DROP (DRAGDROP_S_FIRST + 0)
464: // successful drop took place
465:
466: #define DRAGDROP_S_CANCEL (DRAGDROP_S_FIRST + 1)
467: // drag-drop operation canceled
468:
469: #define DRAGDROP_S_USEDEFAULTCURSORS (DRAGDROP_S_FIRST + 2)
470: // use the default cursor
471:
472:
473: #undef INTERFACE
474: #define INTERFACE IDropTarget
475:
476: DECLARE_INTERFACE_(IDropTarget, IUnknown)
477: {
478: // *** IUnknown methods ***
479: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
480: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
481: STDMETHOD_(ULONG,Release) (THIS) PURE;
482:
483: // *** IDropTarget methods ***
484: STDMETHOD(DragEnter) (THIS_ LPDATAOBJECT pDataObj, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect) PURE;
485: STDMETHOD(DragOver) (THIS_ DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect) PURE;
486: STDMETHOD(DragLeave) (THIS) PURE;
487: STDMETHOD(Drop) (THIS_ LPDATAOBJECT pDataObj, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect) PURE;
488: };
489: typedef IDropTarget FAR* LPDROPTARGET;
490:
491:
492:
493: #undef INTERFACE
494: #define INTERFACE IDropSource
495:
496: DECLARE_INTERFACE_(IDropSource, IUnknown)
497: {
498: // *** IUnknown methods ***
499: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
500: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
501: STDMETHOD_(ULONG,Release) (THIS) PURE;
502:
503: // *** IDropSource methods ***
504: STDMETHOD(QueryContinueDrag) (THIS_ BOOL fEscapePressed, DWORD grfKeyState) PURE;
505: STDMETHOD(GiveFeedback) (THIS_ DWORD dwEffect) PURE;
506: };
507: typedef IDropSource FAR* LPDROPSOURCE;
508:
509:
510:
511: /****** IPersist??? Interfaces ********************************************/
512:
513:
514: #undef INTERFACE
515: #define INTERFACE IPersist
516:
517: DECLARE_INTERFACE_(IPersist, IUnknown)
518: {
519: // *** IUnknown methods ***
520: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
521: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
522: STDMETHOD_(ULONG,Release) (THIS) PURE;
523:
524: // *** IPersist methods ***
525: STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
526: };
527: typedef IPersist FAR* LPPERSIST;
528:
529:
530:
531: #undef INTERFACE
532: #define INTERFACE IPersistStorage
533:
534: DECLARE_INTERFACE_(IPersistStorage, IPersist)
535: {
536: // *** IUnknown methods ***
537: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
538: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
539: STDMETHOD_(ULONG,Release) (THIS) PURE;
540:
541: // *** IPersist methods ***
542: STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
543:
544: // *** IPersistStorage methods ***
545: STDMETHOD(IsDirty) (THIS) PURE;
546: STDMETHOD(InitNew) (THIS_ LPSTORAGE pStg) PURE;
547: STDMETHOD(Load) (THIS_ LPSTORAGE pStg) PURE;
548: STDMETHOD(Save) (THIS_ LPSTORAGE pStgSave, BOOL fSameAsLoad) PURE;
549: STDMETHOD(SaveCompleted) (THIS_ LPSTORAGE pStgNew) PURE;
550: STDMETHOD(HandsOffStorage) (THIS) PURE;
551: };
552: typedef IPersistStorage FAR* LPPERSISTSTORAGE;
553:
554:
555:
556: #undef INTERFACE
557: #define INTERFACE IPersistStream
558:
559: DECLARE_INTERFACE_(IPersistStream, IPersist)
560: {
561: // *** IUnknown methods ***
562: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
563: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
564: STDMETHOD_(ULONG,Release) (THIS) PURE;
565:
566: // *** IPersist methods ***
567: STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
568:
569: // *** IPersistStream methods ***
570: STDMETHOD(IsDirty) (THIS) PURE;
571: STDMETHOD(Load) (THIS_ LPSTREAM pStm) PURE;
572: STDMETHOD(Save) (THIS_ LPSTREAM pStm,
573: BOOL fClearDirty) PURE;
574: STDMETHOD(GetSizeMax) (THIS_ ULARGE_INTEGER FAR * pcbSize) PURE;
575: };
576: typedef IPersistStream FAR* LPPERSISTSTREAM;
577:
578:
579:
580: #undef INTERFACE
581: #define INTERFACE IPersistFile
582:
583: DECLARE_INTERFACE_(IPersistFile, IPersist)
584: {
585: // *** IUnknown methods ***
586: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
587: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
588: STDMETHOD_(ULONG,Release) (THIS) PURE;
589:
590: // *** IPersist methods ***
591: STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
592:
593: // *** IPersistFile methods ***
594: STDMETHOD(IsDirty) (THIS) PURE;
595: STDMETHOD(Load) (THIS_ LPCSTR lpszFileName, DWORD grfMode) PURE;
596: STDMETHOD(Save) (THIS_ LPCSTR lpszFileName, BOOL fRemember) PURE;
597: STDMETHOD(SaveCompleted) (THIS_ LPCSTR lpszFileName) PURE;
598: STDMETHOD(GetCurFile) (THIS_ LPSTR FAR * lplpszFileName) PURE;
599: #ifdef MAC_REVIEW
600: // add these , ericoe
601: //STDMETHOD(LoadFsp) (THIS_ FSSpec *pSpec) PURE;
602: //STDMETHOD(SaveFsp) (THIS_ FSSpec *pSpec, BOOL fRemember) PURE;
603: //STDMETHOD(GetCurFsp) (THIS_ FSSpec *pSpec) PURE;
604: #endif
605: };
606: typedef IPersistFile FAR* LPPERSISTFILE;
607:
608:
609: /****** Moniker Object Interfaces ******************************************/
610:
611: #include <moniker.h>
612:
613:
614: /****** OLE Object Interfaces ******************************************/
615:
616:
617: #undef INTERFACE
618: #define INTERFACE IEnumOLEVERB
619:
620: DECLARE_INTERFACE_(IEnumOLEVERB, IUnknown)
621: {
622: // *** IUnknown methods ***
623: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
624: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
625: STDMETHOD_(ULONG,Release) (THIS) PURE;
626:
627: // *** IEnumOLEVERB methods ***
628: STDMETHOD(Next) (THIS_ ULONG celt, LPOLEVERB rgelt, ULONG FAR* pceltFetched) PURE;
629: STDMETHOD(Skip) (THIS_ ULONG celt) PURE;
630: STDMETHOD(Reset) (THIS) PURE;
631: STDMETHOD(Clone) (THIS_ IEnumOLEVERB FAR* FAR* ppenm) PURE;
632: };
633: typedef IEnumOLEVERB FAR* LPENUMOLEVERB;
634:
635:
636:
637:
638: #undef INTERFACE
639: #define INTERFACE IOleObject
640:
641: #define OLEOBJ_E_NOVERBS (OLEOBJ_E_FIRST + 0)
642:
643: #define OLEOBJ_E_INVALIDVERB (OLEOBJ_E_FIRST + 1)
644:
645: #define OLEOBJ_S_INVALIDVERB (OLEOBJ_S_FIRST + 0)
646:
647: #define OLEOBJ_S_CANNOT_DOVERB_NOW (OLEOBJ_S_FIRST + 1)
648: // verb number is valid but verb cannot be done now, for instance
649: // hiding a link or hiding a visible OLE 1.0 server
650: #define OLEOBJ_S_INVALIDHWND (OLEOBJ_S_FIRST + 2)
651: // invalid hwnd passed
652:
653: DECLARE_INTERFACE_(IOleObject, IUnknown)
654: {
655: // *** IUnknown methods ***
656: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
657: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
658: STDMETHOD_(ULONG,Release) (THIS) PURE;
659:
660: // *** IOleObject methods ***
661: STDMETHOD(SetClientSite) (THIS_ LPOLECLIENTSITE pClientSite) PURE;
662: STDMETHOD(GetClientSite) (THIS_ LPOLECLIENTSITE FAR* ppClientSite) PURE;
663: STDMETHOD(SetHostNames) (THIS_ LPCSTR szContainerApp, LPCSTR szContainerObj) PURE;
664: STDMETHOD(Close) (THIS_ DWORD dwSaveOption) PURE;
665: STDMETHOD(SetMoniker) (THIS_ DWORD dwWhichMoniker, LPMONIKER pmk) PURE;
666: STDMETHOD(GetMoniker) (THIS_ DWORD dwAssign, DWORD dwWhichMoniker,
667: LPMONIKER FAR* ppmk) PURE;
668: STDMETHOD(InitFromData) (THIS_ LPDATAOBJECT pDataObject,
669: BOOL fCreation,
670: DWORD dwReserved) PURE;
671: STDMETHOD(GetClipboardData) (THIS_ DWORD dwReserved,
672: LPDATAOBJECT FAR* ppDataObject) PURE;
673: STDMETHOD(DoVerb) (THIS_ LONG iVerb,
674: LPMSG lpmsg,
675: LPOLECLIENTSITE pActiveSite,
676: LONG lindex,
677: HWND hwndParent,
678: LPCRECT lprcPosRect) PURE;
679: STDMETHOD(EnumVerbs) (THIS_ LPENUMOLEVERB FAR* ppenumOleVerb) PURE;
680: STDMETHOD(Update) (THIS) PURE;
681: STDMETHOD(IsUpToDate) (THIS) PURE;
682: STDMETHOD(GetUserClassID) (THIS_ CLSID FAR* pClsid) PURE;
683: STDMETHOD(GetUserType) (THIS_ DWORD dwFormOfType, LPSTR FAR* pszUserType) PURE;
684: STDMETHOD(SetExtent) (THIS_ DWORD dwDrawAspect, LPSIZEL lpsizel) PURE;
685: STDMETHOD(GetExtent) (THIS_ DWORD dwDrawAspect, LPSIZEL lpsizel) PURE;
686: STDMETHOD(Advise)(THIS_ LPADVISESINK pAdvSink, DWORD FAR* pdwConnection) PURE;
687: STDMETHOD(Unadvise)(THIS_ DWORD dwConnection) PURE;
688: STDMETHOD(EnumAdvise) (THIS_ LPENUMSTATDATA FAR* ppenumAdvise) PURE;
689: STDMETHOD(GetMiscStatus) (THIS_ DWORD dwAspect, DWORD FAR* pdwStatus) PURE;
690: STDMETHOD(SetColorScheme) (THIS_ LPLOGPALETTE lpLogpal) PURE;
691: };
692: typedef IOleObject FAR* LPOLEOBJECT;
693:
694:
695:
696: #undef INTERFACE
697: #define INTERFACE IOleClientSite
698:
699: DECLARE_INTERFACE_(IOleClientSite, IUnknown)
700: {
701: // *** IUnknown methods ***
702: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
703: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
704: STDMETHOD_(ULONG,Release) (THIS) PURE;
705:
706: // *** IOleClientSite methods ***
707: STDMETHOD(SaveObject) (THIS) PURE;
708: STDMETHOD(GetMoniker) (THIS_ DWORD dwAssign, DWORD dwWhichMoniker,
709: LPMONIKER FAR* ppmk) PURE;
710: STDMETHOD(GetContainer) (THIS_ LPOLECONTAINER FAR* ppContainer) PURE;
711: STDMETHOD(ShowObject) (THIS) PURE;
712: STDMETHOD(OnShowWindow) (THIS_ BOOL fShow) PURE;
713: STDMETHOD(RequestNewObjectLayout) (THIS) PURE;
714: };
715: typedef IOleClientSite FAR* LPOLECLIENTSITE;
716:
717:
718:
719: #undef INTERFACE
720: #define INTERFACE IParseDisplayName
721:
722: DECLARE_INTERFACE_(IParseDisplayName, IUnknown)
723: {
724: // *** IUnknown methods ***
725: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
726: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
727: STDMETHOD_(ULONG,Release) (THIS) PURE;
728:
729: // *** IParseDisplayName method ***
730: STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPSTR lpszDisplayName,
731: ULONG FAR* pchEaten, LPMONIKER FAR* ppmkOut) PURE;
732: };
733: typedef IParseDisplayName FAR* LPPARSEDISPLAYNAME;
734:
735:
736: #undef INTERFACE
737: #define INTERFACE IOleContainer
738:
739: DECLARE_INTERFACE_(IOleContainer, IParseDisplayName)
740: {
741: // *** IUnknown methods ***
742: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
743: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
744: STDMETHOD_(ULONG,Release) (THIS) PURE;
745:
746: // *** IParseDisplayName method ***
747: STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPSTR lpszDisplayName,
748: ULONG FAR* pchEaten, LPMONIKER FAR* ppmkOut) PURE;
749:
750: // *** IOleContainer methods ***
751: STDMETHOD(EnumObjects) ( DWORD grfFlags, LPENUMUNKNOWN FAR* ppenumUnknown) PURE;
752: STDMETHOD(LockContainer) (THIS_ BOOL fLock) PURE;
753: };
754: typedef IOleContainer FAR* LPOLECONTAINER;
755:
756:
757: typedef enum tagBINDSPEED
758: {
759: BINDSPEED_INDEFINITE = 1,
760: BINDSPEED_MODERATE = 2,
761: BINDSPEED_IMMEDIATE = 3
762: } BINDSPEED;
763:
764: typedef enum tagOLECONTF
765: {
766: OLECONTF_EMBEDDINGS = 1,
767: OLECONTF_LINKS = 2,
768: OLECONTF_OTHERS = 4,
769: OLECONTF_ONLYUSER = 8,
770: OLECONTF_ONLYIFRUNNING = 16
771: } OLECONTF;
772:
773:
774: #undef INTERFACE
775: #define INTERFACE IOleItemContainer
776:
777: DECLARE_INTERFACE_(IOleItemContainer, IOleContainer)
778: {
779: // *** IUnknown methods ***
780: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
781: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
782: STDMETHOD_(ULONG,Release) (THIS) PURE;
783:
784: // *** IParseDisplayName method ***
785: STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPSTR lpszDisplayName,
786: ULONG FAR* pchEaten, LPMONIKER FAR* ppmkOut) PURE;
787:
788: // *** IOleContainer methods ***
789: STDMETHOD(EnumObjects) (THIS_ DWORD grfFlags, LPENUMUNKNOWN FAR* ppenumUnknown) PURE;
790: STDMETHOD(LockContainer) (THIS_ BOOL fLock) PURE;
791:
792: // *** IOleItemContainer methods ***
793: STDMETHOD(GetObject) (THIS_ LPSTR lpszItem, DWORD dwSpeedNeeded,
794: LPBINDCTX pbc, REFIID riid, LPVOID FAR* ppvObject) PURE;
795: STDMETHOD(GetObjectStorage) (THIS_ LPSTR lpszItem, LPBINDCTX pbc,
796: REFIID riid, LPVOID FAR* ppvStorage) PURE;
797: STDMETHOD(IsRunning) (THIS_ LPSTR lpszItem) PURE;
798: };
799: typedef IOleItemContainer FAR* LPOLEITEMCONTAINER;
800:
801:
802:
803: #undef INTERFACE
804: #define INTERFACE IOleAdviseHolder
805:
806: DECLARE_INTERFACE_(IOleAdviseHolder, IUnknown)
807: {
808: // *** IUnknown methods ***
809: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppv) PURE;
810: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
811: STDMETHOD_(ULONG,Release) (THIS) PURE;
812:
813: // *** IOleAdviseHolder methods ***
814: STDMETHOD(Advise)(THIS_ LPADVISESINK pAdvise, DWORD FAR* pdwConnection) PURE;
815: STDMETHOD(Unadvise)(THIS_ DWORD dwConnection) PURE;
816: STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA FAR* ppenumAdvise) PURE;
817:
818: STDMETHOD(SendOnRename)(THIS_ LPMONIKER pmk) PURE;
819: STDMETHOD(SendOnSave)(THIS) PURE;
820: STDMETHOD(SendOnClose)(THIS) PURE;
821: };
822: typedef IOleAdviseHolder FAR* LPOLEADVISEHOLDER;
823:
824:
825: /****** OLE Link Interface ************************************************/
826:
827: /* Link update options */
828: typedef enum tagOLEUPDATE
829: {
830: OLEUPDATE_ALWAYS=1,
831: OLEUPDATE_ONCALL=3
832: } OLEUPDATE;
833: typedef OLEUPDATE FAR* LPOLEUPDATE;
834:
835:
836: // for IOleLink::BindToSource
837: typedef enum tagOLELINKBIND
838: {
839: OLELINKBIND_EVENIFCLASSDIFF = 1,
840: } OLELINKBIND;
841:
842:
843: #undef INTERFACE
844: #define INTERFACE IOleLink
845:
846: DECLARE_INTERFACE_(IOleLink, IUnknown)
847: {
848: // *** IUnknown methods ***
849: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
850: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
851: STDMETHOD_(ULONG,Release) (THIS) PURE;
852:
853: // *** IOleLink methods ***
854: STDMETHOD(SetUpdateOptions) (THIS_ DWORD dwUpdateOpt) PURE;
855: STDMETHOD(GetUpdateOptions) (THIS_ LPDWORD pdwUpdateOpt) PURE;
856: STDMETHOD(SetSourceMoniker) (THIS_ LPMONIKER pmk, REFCLSID rclsid) PURE;
857: STDMETHOD(GetSourceMoniker) (THIS_ LPMONIKER FAR* ppmk) PURE;
858: STDMETHOD(SetSourceDisplayName) (THIS_ LPCSTR lpszDisplayName) PURE;
859: STDMETHOD(GetSourceDisplayName) (THIS_ LPSTR FAR* lplpszDisplayName) PURE;
860: STDMETHOD(BindToSource) (THIS_ DWORD bindflags, LPBINDCTX pbc) PURE;
861: STDMETHOD(BindIfRunning) (THIS) PURE;
862: STDMETHOD(GetBoundSource) (THIS_ LPUNKNOWN FAR* ppUnk) PURE;
863: STDMETHOD(UnbindSource) (THIS) PURE;
864: STDMETHOD(Update) (THIS_ LPBINDCTX pbc) PURE;
865: };
866: typedef IOleLink FAR* LPOLELINK;
867:
868:
869: /****** OLE InPlace Editing Interfaces ************************************/
870:
871: #ifdef _MAC
872: typedef Handle HOLEMENU;
873: typedef long SIZE;
874: typedef long HACCEL;
875: #else
876: DECLARE_HANDLE(HOLEMENU);
877: #endif
878:
879: typedef struct FARSTRUCT tagOIFI // OleInPlaceFrameInfo
880: {
881: UINT cb;
882: BOOL fMDIApp;
883: HWND hwndFrame;
884: HACCEL haccel;
885: int cAccelEntries;
886: } OLEINPLACEFRAMEINFO, FAR* LPOLEINPLACEFRAMEINFO;
887:
888:
889: typedef struct FARSTRUCT tagOleMenuGroupWidths
890: {
891: LONG width[6];
892: } OLEMENUGROUPWIDTHS, FAR* LPOLEMENUGROUPWIDTHS;
893:
894: typedef RECT BORDERWIDTHS;
895: typedef LPRECT LPBORDERWIDTHS;
896: typedef LPCRECT LPCBORDERWIDTHS;
897:
898: /* Inplace editing specific error codes */
899:
900: #define INPLACE_E_NOTUNDOABLE (INPLACE_E_FIRST)
901: // undo is not avaiable
902:
903: #define INPLACE_E_NOTOOLSPACE (INPLACE_E_FIRST+1)
904: // Space for tools is not available
905:
906: #define INPLACE_S_TRUNCATED (INPLACE_S_FIRST)
907: // Message is too long, some of it had to be truncated before displaying
908:
909:
910: // forward type declarations
911: #if defined(__cplusplus)
912: interface IOleInPlaceUIWindow;
913: #else
914: typedef interface IOleInPlaceUIWindow IOleInPlaceUIWindow;
915: #endif
916:
917: typedef IOleInPlaceUIWindow FAR* LPOLEINPLACEUIWINDOW;
918:
919:
920: #undef INTERFACE
921: #define INTERFACE IOleWindow
922:
923: DECLARE_INTERFACE_(IOleWindow, IUnknown)
924: {
925: // *** IUnknown methods ***
926: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
927: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
928: STDMETHOD_(ULONG,Release) (THIS) PURE;
929:
930: // *** IOleWindow methods ***
931: STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
932: STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
933: };
934:
935: typedef IOleWindow FAR* LPOLEWINDOW;
936:
937:
938:
939: #undef INTERFACE
940: #define INTERFACE IOleInPlaceObject
941:
942: DECLARE_INTERFACE_(IOleInPlaceObject, IOleWindow)
943: {
944: // *** IUnknown methods ***
945: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
946: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
947: STDMETHOD_(ULONG,Release) (THIS) PURE;
948:
949: // *** IOleWindow methods ***
950: STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
951: STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
952:
953: // *** IOleInPlaceObject methods ***
954: STDMETHOD(InPlaceDeactivate) (THIS) PURE;
955: STDMETHOD(UIDeactivate) (THIS) PURE;
956: STDMETHOD(SetObjectRects) (THIS_ LPCRECT lprcPosRect,
957: LPCRECT lprcClipRect) PURE;
958: STDMETHOD(ReactivateAndUndo) (THIS) PURE;
959: };
960: typedef IOleInPlaceObject FAR* LPOLEINPLACEOBJECT;
961:
962:
963:
964: #undef INTERFACE
965: #define INTERFACE IOleInPlaceActiveObject
966:
967: DECLARE_INTERFACE_(IOleInPlaceActiveObject, IOleWindow)
968: {
969: // *** IUnknown methods ***
970: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
971: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
972: STDMETHOD_(ULONG,Release) (THIS) PURE;
973:
974: // *** IOleWindow methods ***
975: STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
976: STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
977:
978: // *** IOleInPlaceActiveObject methods ***
979: STDMETHOD(TranslateAccelerator) (THIS_ LPMSG lpmsg) PURE;
980: STDMETHOD(OnFrameWindowActivate) (THIS_ BOOL fActivate) PURE;
981: STDMETHOD(OnDocWindowActivate) (THIS_ BOOL fActivate) PURE;
982: STDMETHOD(ResizeBorder) (THIS_ LPCRECT lprectBorder, LPOLEINPLACEUIWINDOW lpUIWindow, BOOL fFrameWindow) PURE;
983: STDMETHOD(EnableModeless) (THIS_ BOOL fEnable) PURE;
984: };
985: typedef IOleInPlaceActiveObject FAR* LPOLEINPLACEACTIVEOBJECT;
986:
987:
988:
989: #undef INTERFACE
990: #define INTERFACE IOleInPlaceUIWindow
991:
992: DECLARE_INTERFACE_(IOleInPlaceUIWindow, IOleWindow)
993: {
994: // *** IUnknown methods ***
995: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
996: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
997: STDMETHOD_(ULONG,Release) (THIS) PURE;
998:
999: // *** IOleWindow methods ***
1000: STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
1001: STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
1002:
1003: // *** IOleInPlaceUIWindow methods ***
1004: STDMETHOD(GetBorder) (THIS_ LPRECT lprectBorder) PURE;
1005: STDMETHOD(RequestBorderSpace) (THIS_ LPCBORDERWIDTHS lpborderwidths) PURE;
1006: STDMETHOD(SetBorderSpace) (THIS_ LPCBORDERWIDTHS lpborderwidths) PURE;
1007: STDMETHOD(SetActiveObject) (THIS_ LPOLEINPLACEACTIVEOBJECT lpActiveObject,
1008: LPCSTR lpszObjName) PURE;
1009: };
1010: typedef IOleInPlaceUIWindow FAR* LPOLEINPLACEUIWINDOW;
1011:
1012:
1013: #undef INTERFACE
1014: #define INTERFACE IOleInPlaceFrame
1015:
1016: DECLARE_INTERFACE_(IOleInPlaceFrame, IOleInPlaceUIWindow)
1017: {
1018: // *** IUnknown methods ***
1019: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
1020: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
1021: STDMETHOD_(ULONG,Release) (THIS) PURE;
1022:
1023: // *** IOleWindow methods ***
1024: STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
1025: STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
1026:
1027: // *** IOleInPlaceUIWindow methods ***
1028: STDMETHOD(GetBorder) (THIS_ LPRECT lprectBorder) PURE;
1029: STDMETHOD(RequestBorderSpace) (THIS_ LPCBORDERWIDTHS lpborderwidths) PURE;
1030: STDMETHOD(SetBorderSpace) (THIS_ LPCBORDERWIDTHS lpborderwidths) PURE;
1031: STDMETHOD(SetActiveObject) (THIS_ LPOLEINPLACEACTIVEOBJECT lpActiveObject,
1032: LPCSTR lpszObjName) PURE;
1033:
1034:
1035: // *** IOleInPlaceFrame methods ***
1036: STDMETHOD(InsertMenus) (THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE;
1037: STDMETHOD(SetMenu) (THIS_ HMENU hmenuShared, HOLEMENU holemenu, HWND hwndActiveObject) PURE;
1038: STDMETHOD(RemoveMenus) (THIS_ HMENU hmenuShared) PURE;
1039: STDMETHOD(SetStatusText) (THIS_ LPCSTR lpszStatusText) PURE;
1040: STDMETHOD(EnableModeless) (THIS_ BOOL fEnable) PURE;
1041: STDMETHOD(TranslateAccelerator) (THIS_ LPMSG lpmsg, WORD wID) PURE;
1042: };
1043: typedef IOleInPlaceFrame FAR* LPOLEINPLACEFRAME;
1044:
1045:
1046: #undef INTERFACE
1047: #define INTERFACE IOleInPlaceSite
1048:
1049: DECLARE_INTERFACE_(IOleInPlaceSite, IOleWindow)
1050: {
1051: // *** IUnknown methods ***
1052: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
1053: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
1054: STDMETHOD_(ULONG,Release) (THIS) PURE;
1055:
1056: // *** IOleWindow methods ***
1057: STDMETHOD(GetWindow) (THIS_ HWND FAR* lphwnd) PURE;
1058: STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL fEnterMode) PURE;
1059:
1060: // *** IOleInPlaceSite methods ***
1061: STDMETHOD(CanInPlaceActivate) (THIS) PURE;
1062: STDMETHOD(OnInPlaceActivate) (THIS) PURE;
1063: STDMETHOD(OnUIActivate) (THIS) PURE;
1064: STDMETHOD(GetWindowContext) (THIS_ LPOLEINPLACEFRAME FAR* lplpFrame,
1065: LPOLEINPLACEUIWINDOW FAR* lplpDoc,
1066: LPRECT lprcPosRect,
1067: LPRECT lprcClipRect,
1068: LPOLEINPLACEFRAMEINFO lpFrameInfo) PURE;
1069: STDMETHOD(Scroll) (THIS_ SIZE scrollExtent) PURE;
1070: STDMETHOD(OnUIDeactivate) (THIS_ BOOL fUndoable) PURE;
1071: STDMETHOD(OnInPlaceDeactivate) (THIS) PURE;
1072: STDMETHOD(DiscardUndoState) (THIS) PURE;
1073: STDMETHOD(DeactivateAndUndo) (THIS) PURE;
1074: STDMETHOD(OnPosRectChange) (THIS_ LPCRECT lprcPosRect) PURE;
1075: };
1076: typedef IOleInPlaceSite FAR* LPOLEINPLACESITE;
1077:
1078:
1079:
1080: /****** OLE API Prototypes ************************************************/
1081:
1082: STDAPI_(DWORD) OleBuildVersion( VOID );
1083: STDAPI_(LPSTR) OleBuildVersionEx( VOID );
1084:
1085: /* helper functions */
1086: STDAPI ReadClassStg(LPSTORAGE pStg, CLSID FAR* pclsid);
1087: STDAPI WriteClassStg(LPSTORAGE pStg, REFCLSID rclsid);
1088: STDAPI ReadClassStm(LPSTREAM pStm, CLSID FAR* pclsid);
1089: STDAPI WriteClassStm(LPSTREAM pStm, REFCLSID rclsid);
1090: STDAPI WriteFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT cf, LPSTR lpszUserType);
1091: STDAPI ReadFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT FAR* pcf, LPSTR FAR* lplpszUserType);
1092:
1093:
1094: /* init/term */
1095:
1096: STDAPI OleInitialize(LPMALLOC pMalloc);
1097: STDAPI_(void) OleUninitialize(void);
1098:
1099:
1100: /* APIs to query whether (Embedded/Linked) object can be created from
1101: the data object */
1102:
1103: STDAPI OleQueryLinkFromData(LPDATAOBJECT pSrcDataObject);
1104: STDAPI OleQueryCreateFromData(LPDATAOBJECT pSrcDataObject);
1105:
1106:
1107: /* Object creation APIs */
1108:
1109: #ifdef _MAC
1110: STDAPI OleCreateFromFsp(REFCLSID rclsid, REFIID riid,
1111: LPOLECLIENTSITE pClientSite, DWORD renderopt,
1112: CLIPFORMAT cfFormat, FSSpec *pSpec, LPSTORAGE pStg,
1113: LPVOID FAR* ppvObj);
1114: #endif
1115: STDAPI OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt,
1116: LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
1117: LPSTORAGE pStg, LPVOID FAR* ppvObj);
1118:
1119: STDAPI OleCreateFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
1120: DWORD renderopt, LPFORMATETC pFormatEtc,
1121: LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
1122: LPVOID FAR* ppvObj);
1123:
1124: STDAPI OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
1125: DWORD renderopt, LPFORMATETC pFormatEtc,
1126: LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
1127: LPVOID FAR* ppvObj);
1128:
1129: STDAPI OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj, REFIID iid,
1130: DWORD renderopt, LPFORMATETC pFormatEtc,
1131: LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
1132: LPVOID FAR* ppvObj);
1133:
1134:
1135: STDAPI OleCreateLink(LPMONIKER pmkLinkSrc, REFIID riid,
1136: DWORD renderopt, LPFORMATETC lpFormatEtc,
1137: LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
1138:
1139: STDAPI OleCreateLinkToFile(LPCSTR lpszFileName, REFIID riid,
1140: DWORD renderopt, LPFORMATETC lpFormatEtc,
1141: LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
1142:
1143: STDAPI OleCreateFromFile(REFCLSID rclsid, LPCSTR lpszFileName, REFIID riid,
1144: DWORD renderopt, LPFORMATETC lpFormatEtc,
1145: LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
1146:
1147: STDAPI OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite,
1148: LPVOID FAR* ppvObj);
1149:
1150: STDAPI OleSave(LPPERSISTSTORAGE pPS, LPSTORAGE pStg, BOOL fSameAsLoad);
1151:
1152: STDAPI OleLoadFromStream( LPSTREAM pStm, REFIID iidInterface, LPVOID FAR* ppvObj);
1153: STDAPI OleSaveToStream( LPPERSISTSTREAM pPStm, LPSTREAM pStm );
1154:
1155:
1156: #ifndef OLE2SHIP
1157: STDAPI SetDocumentBitStg(LPSTORAGE pStg, BOOL fDocument);
1158: STDAPI GetDocumentBitStg(LPSTORAGE pStg);
1159: #endif
1160:
1161: STDAPI OleSetContainedObject(LPUNKNOWN pUnknown, BOOL fContained);
1162: STDAPI OleNoteObjectVisible(LPUNKNOWN pUnknown, BOOL fVisible);
1163:
1164:
1165: /* Drag/Drop APIs */
1166:
1167: STDAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget);
1168: STDAPI RevokeDragDrop(HWND hwnd);
1169: STDAPI DoDragDrop(LPDATAOBJECT pDataObj, LPDROPSOURCE pDropSource,
1170: DWORD dwOKEffects, LPDWORD pdwEffect);
1171:
1172: /* Clipboard APIs */
1173:
1174: STDAPI OleSetClipboard(LPDATAOBJECT pDataObj);
1175: STDAPI OleGetClipboard(LPDATAOBJECT FAR* ppDataObj);
1176: STDAPI OleFlushClipboard(void);
1177: STDAPI OleIsCurrentClipboard(LPDATAOBJECT pDataObj);
1178:
1179:
1180: /* InPlace Editing APIs */
1181:
1182: STDAPI_(HOLEMENU) OleCreateMenuDescriptor (HMENU hmenuCombined,
1183: LPOLEMENUGROUPWIDTHS lpMenuWidths);
1184: STDAPI OleSetMenuDescriptor (HOLEMENU holemenu, HWND hwndFrame,
1185: HWND hwndActiveObject,
1186: LPOLEINPLACEFRAME lpFrame,
1187: LPOLEINPLACEACTIVEOBJECT lpActiveObj);
1188: #ifdef OLE2SHIP
1189: STDAPI OleDestroyMenuDescriptor (HOLEMENU holemenu);
1190: #else
1191: STDAPI_(void) OleDestroyMenuDescriptor (HOLEMENU holemenu);
1192: #endif
1193:
1194: STDAPI OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame,
1195: LPOLEINPLACEFRAMEINFO lpFrameInfo, LPMSG lpmsg);
1196:
1197:
1198: /* Helper APIs */
1199: STDAPI_(HANDLE) OleDuplicateData (HANDLE hSrc, CLIPFORMAT cfFormat,
1200: UINT uiFlags);
1201:
1202: STDAPI OleDraw (LPUNKNOWN pUnknown, DWORD dwAspect, HDC hdcDraw,
1203: LPCRECT lprcBounds);
1204:
1205: STDAPI OleRun(LPUNKNOWN pUnknown);
1206: STDAPI_(BOOL) OleIsRunning(LPOLEOBJECT pObject);
1207:
1208: STDAPI_(void) ReleaseStgMedium(LPSTGMEDIUM);
1209: STDAPI CreateOleAdviseHolder(LPOLEADVISEHOLDER FAR* ppOAHolder);
1210:
1211: STDAPI OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter,
1212: REFIID riid, LPVOID FAR* lplpObj);
1213:
1214:
1215: /* OLE 1.0 conversion APIS */
1216:
1217: STDAPI OleConvertOLESTREAMToIStorage
1218: (LPOLESTREAM lpolestream,
1219: LPSTORAGE pstg,
1220: const DVTARGETDEVICE FAR* ptd);
1221:
1222: STDAPI OleConvertIStorageToOLESTREAM
1223: (LPSTORAGE pstg,
1224: LPOLESTREAM lpolestream);
1225:
1226:
1227: /* Storage Utility APIs */
1228: STDAPI GetHGlobalFromILockBytes (LPLOCKBYTES plkbyt, HGLOBAL FAR* phglobal);
1229: STDAPI CreateILockBytesOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease,
1230: LPLOCKBYTES FAR* pplkbyt);
1231:
1232: STDAPI GetHGlobalFromStream (LPSTREAM pstm, HGLOBAL FAR* phglobal);
1233: STDAPI CreateStreamOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease,
1234: LPSTREAM FAR* ppstm);
1235:
1236:
1237: /* ConvertTo APIS */
1238:
1239: STDAPI OleDoAutoConvert(LPSTORAGE pStg, LPCLSID pClsidNew);
1240: STDAPI OleGetAutoConvert(REFCLSID clsidOld, LPCLSID pClsidNew);
1241: STDAPI OleSetAutoConvert(REFCLSID clsidOld, REFCLSID clsidNew);
1242: STDAPI GetConvertStg(LPSTORAGE pStg);
1243: STDAPI SetConvertStg(LPSTORAGE pStg, BOOL fConvert);
1244:
1245: #ifndef OLE2SHIP
1246:
1247: // OLESTREAM Get method failed
1248: #define CONVERT10_E_OLESTREAM_GET (CONVERT10_E_FIRST + 0)
1249:
1250: // OLESTREAM Put method failed
1251: #define CONVERT10_E_OLESTREAM_PUT (CONVERT10_E_FIRST + 1)
1252:
1253: // Contents of the OLESTREAM not in correct format
1254: #define CONVERT10_E_OLESTREAM_FMT (CONVERT10_E_FIRST + 2)
1255:
1256: // OLESTREAM contains a static object
1257: #define CONVERT10_E_OLESTREAM_STATIC (CONVERT10_E_FIRST + 3)
1258:
1259: // Returned by either API, this scode indicates that the original object
1260: // Like CONVERT10_S_NOT_OLE1_MONIKER, but there was no presentation stream.
1261: #define CONVERT10_E_NOT_OLE1_MONIKER (CONVERT10_E_FIRST + 8)
1262:
1263:
1264: // The OLE stream of the IStorage contains a moniker that is not compatible
1265: // with OLE 1.0, i.e., not a file moniker or a file/item composite moniker.
1266: // The object was converted to a 1.0 static object.
1267: #define CONVERT10_S_NOT_OLE1_MONIKER (CONVERT10_S_FIRST + 0)
1268:
1269:
1270: // Errors for Clipboard functions
1271:
1272: // OpenClipboard Failed
1273: #define CLIPBRD_E_CANT_OPEN (CLIPBRD_E_FIRST + 0)
1274:
1275: // EmptyClipboard Failed
1276: #define CLIPBRD_E_CANT_EMPTY (CLIPBRD_E_FIRST + 1)
1277:
1278: // SetClipboard Failed
1279: #define CLIPBRD_E_CANT_SET (CLIPBRD_E_FIRST + 2)
1280:
1281: // Data on clipboard is invalid
1282: #define CLIPBRD_E_BAD_DATA (CLIPBRD_E_FIRST + 3)
1283:
1284: // OpenClipboard Failed
1285: #define CLIPBRD_E_CANT_CLOSE (CLIPBRD_E_FIRST + 4)
1286: #define DVGEN_E_FIRST (OLE_E_FIRST+100)
1287: // Might move to FACILITY_NULL
1288: #define E_BLANK OLE_E_BLANK
1289: #define E_STATIC OLE_E_STATIC
1290: #define E_NOTRUNNING OLE_E_NOTRUNNING
1291: #define E_FORMAT DV_E_CLIPFORMAT
1292: // Obsolete; will be removed before ship
1293: #define OLEVERB_PRIMARY OLEIVERB_PRIMARY
1294: #define OLEVERB_SHOW OLEIVERB_SHOW
1295:
1296: #define OLEOBJ_S_CANNOT_DOVERB_NOW (OLEOBJ_S_FIRST + 1)
1297: #define E_UNKNOWNVERB OLE_E_VERB // remove later
1298: #define OLEOBJ_E_NOVERBS (OLEOBJ_E_FIRST + 0)
1299: #endif
1300:
1301: #endif // _OLE2_H_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.