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