Annotation of mstools/ole20/h/ole2.h, revision 1.1

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_

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.