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

1.1     ! root        1: #if !defined( _DVOBJ_H_ )
        !             2: #define _DVOBJ_H_
        !             3: 
        !             4: /****** DV value types ******************************************************/
        !             5: 
        !             6: //      forward type declarations
        !             7: #if defined(__cplusplus)
        !             8: interface IStorage;
        !             9: interface IStream;
        !            10: interface IAdviseSink;
        !            11: interface IMoniker;
        !            12: #else 
        !            13: typedef interface IStorage IStorage;
        !            14: typedef interface IStream IStream;
        !            15: typedef interface IAdviseSink IAdviseSink;
        !            16: typedef interface IMoniker IMoniker;
        !            17: #endif
        !            18: 
        !            19: typedef            IStorage FAR* LPSTORAGE;
        !            20: typedef             IStream FAR* LPSTREAM;
        !            21: typedef         IAdviseSink FAR* LPADVISESINK;
        !            22: typedef             IMoniker FAR* LPMONIKER;
        !            23: 
        !            24: 
        !            25: #if defined(_MAC) || defined(WIN32)
        !            26: typedef unsigned long CLIPFORMAT;            // ResType
        !            27: #else
        !            28: typedef WORD CLIPFORMAT;
        !            29: #endif
        !            30: typedef  CLIPFORMAT FAR* LPCLIPFORMAT;
        !            31: 
        !            32: 
        !            33: // Data/View aspect; specifies the desired aspect of the object when
        !            34: // drawing or getting data.
        !            35: typedef enum tagDVASPECT
        !            36: {
        !            37:     DVASPECT_CONTENT = 1,
        !            38:     DVASPECT_THUMBNAIL = 2,
        !            39:     DVASPECT_ICON = 4,
        !            40:     DVASPECT_DOCPRINT = 8
        !            41: } DVASPECT;
        !            42: 
        !            43: 
        !            44: // Data/View target device; determines the device for drawing or gettting data
        !            45: typedef struct FARSTRUCT tagDVTARGETDEVICE
        !            46: {
        !            47:     DWORD tdSize;
        !            48:     WORD tdDriverNameOffset;
        !            49:     WORD tdDeviceNameOffset;
        !            50:     WORD tdPortNameOffset;
        !            51:     WORD tdExtDevmodeOffset;
        !            52:     BYTE tdData[1];
        !            53: } DVTARGETDEVICE;
        !            54: 
        !            55: 
        !            56: // Format, etc.; completely specifices the kind of data desired, including tymed
        !            57: typedef struct FARSTRUCT tagFORMATETC
        !            58: {
        !            59:     CLIPFORMAT          cfFormat;
        !            60:     DVTARGETDEVICE FAR* ptd;
        !            61:     DWORD               dwAspect;
        !            62:     LONG                lindex;
        !            63:     DWORD               tymed;
        !            64: } FORMATETC, FAR* LPFORMATETC;
        !            65: 
        !            66: 
        !            67: // TYpes of storage MEDiums; determines how data is stored or passed around
        !            68: typedef enum tagTYMED
        !            69: {
        !            70:     TYMED_HGLOBAL = 1,
        !            71:     TYMED_FILE = 2,
        !            72:     TYMED_ISTREAM = 4,
        !            73:     TYMED_ISTORAGE = 8,
        !            74:     TYMED_GDI = 16,
        !            75:     TYMED_MFPICT = 32,
        !            76:     TYMED_NULL = 0
        !            77: } TYMED;
        !            78: 
        !            79: 
        !            80: // DATA format DIRection
        !            81: typedef enum tagDATADIR
        !            82: {
        !            83:     DATADIR_GET = 1,
        !            84:     DATADIR_SET = 2,
        !            85: } DATADIR;
        !            86: 
        !            87: 
        !            88: // Storage MEDIUM; a block of data on a particular medium
        !            89: typedef struct FARSTRUCT tagSTGMEDIUM
        !            90: {
        !            91:     DWORD   tymed;
        !            92:     union
        !            93:     {
        !            94:         HANDLE  hGlobal;
        !            95:         LPSTR   lpszFileName;
        !            96:         IStream FAR* pstm;
        !            97:         IStorage FAR* pstg;
        !            98:     }
        !            99: #ifdef NONAMELESSUNION
        !           100:     u       // add a tag when name less unions not supported
        !           101: #endif
        !           102:     ;
        !           103:     IUnknown FAR* pUnkForRelease;
        !           104: } STGMEDIUM, FAR* LPSTGMEDIUM;
        !           105: 
        !           106: 
        !           107: // Advise Flags
        !           108: typedef enum tagADVF
        !           109: {
        !           110:     ADVF_NODATA = 1,
        !           111:     ADVF_PRIMEFIRST = 2,
        !           112:     ADVF_ONLYONCE = 4,
        !           113:     ADVF_DATAONSTOP = 64,
        !           114:     ADVFCACHE_NOHANDLER = 8,
        !           115:     ADVFCACHE_FORCEBUILTIN = 16,
        !           116:     ADVFCACHE_ONSAVE = 32
        !           117: } ADVF;
        !           118: 
        !           119: 
        !           120: // Stats for data; used by several enumerations and by at least one 
        !           121: // implementation of IDataAdviseHolder; if a field is not used, it
        !           122: // will be NULL.
        !           123: typedef struct FARSTRUCT tagSTATDATA
        !           124: {                                   // field used by:
        !           125:     FORMATETC formatetc;            // EnumAdvise, EnumData (cache), EnumFormats
        !           126:     DWORD advf;                     // EnumAdvise, EnumData (cache)
        !           127:     IAdviseSink FAR* pAdvSink;      // EnumAdvise
        !           128:     DWORD dwConnection;             // EnumAdvise
        !           129: } STATDATA;
        !           130:     
        !           131: typedef  STATDATA FAR* LPSTATDATA;
        !           132: 
        !           133: 
        !           134: 
        !           135: /****** DV Interfaces ***************************************************/
        !           136: 
        !           137: 
        !           138: #undef  INTERFACE
        !           139: #define INTERFACE   IEnumFORMATETC
        !           140: 
        !           141: DECLARE_INTERFACE_(IEnumFORMATETC, IUnknown)
        !           142: {
        !           143:     // *** IUnknown methods ***
        !           144:     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppv) PURE;
        !           145:     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
        !           146:     STDMETHOD_(ULONG,Release) (THIS) PURE;
        !           147: 
        !           148:     // *** IEnumFORMATETC methods ***
        !           149:     STDMETHOD(Next) (THIS_ ULONG celt, FORMATETC FAR * rgelt, ULONG FAR* pceltFetched) PURE;
        !           150:     STDMETHOD(Skip) (THIS_ ULONG celt) PURE;
        !           151:     STDMETHOD(Reset) (THIS) PURE;
        !           152:     STDMETHOD(Clone) (THIS_ IEnumFORMATETC FAR* FAR* ppenum) PURE;
        !           153: };
        !           154: typedef        IEnumFORMATETC FAR* LPENUMFORMATETC;
        !           155: 
        !           156: 
        !           157: #undef  INTERFACE
        !           158: #define INTERFACE   IEnumSTATDATA
        !           159: 
        !           160: DECLARE_INTERFACE_(IEnumSTATDATA, IUnknown)
        !           161: {
        !           162:     // *** IUnknown methods ***
        !           163:     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppv) PURE;
        !           164:     STDMETHOD_(ULONG, AddRef) (THIS)  PURE;
        !           165:     STDMETHOD_(ULONG, Release) (THIS) PURE;
        !           166: 
        !           167:     // *** IEnumSTATDATA methods ***
        !           168:     STDMETHOD(Next) (THIS_ ULONG celt, STATDATA FAR * rgelt, ULONG FAR* pceltFetched) PURE;
        !           169:     STDMETHOD(Skip) (THIS_ ULONG celt) PURE;
        !           170:     STDMETHOD(Reset) (THIS) PURE;
        !           171:     STDMETHOD(Clone) (THIS_ IEnumSTATDATA FAR* FAR* ppenum) PURE;
        !           172: };
        !           173: typedef        IEnumSTATDATA FAR* LPENUMSTATDATA;
        !           174: 
        !           175: 
        !           176: 
        !           177: #undef  INTERFACE
        !           178: #define INTERFACE   IDataObject
        !           179: 
        !           180: #define DATA_E_FORMATETC        DV_E_FORMATETC
        !           181: #define DATA_S_SAMEFORMATETC    (DATA_S_FIRST + 0)
        !           182: 
        !           183: DECLARE_INTERFACE_(IDataObject, IUnknown)
        !           184: { 
        !           185:     // *** IUnknown methods ***
        !           186:     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
        !           187:     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
        !           188:     STDMETHOD_(ULONG, Release) (THIS) PURE;
        !           189: 
        !           190:     // *** IDataObject methods ***
        !           191:     STDMETHOD(GetData) (THIS_ LPFORMATETC pformatetcIn,
        !           192:                             LPSTGMEDIUM pmedium ) PURE;
        !           193:     STDMETHOD(GetDataHere) (THIS_ LPFORMATETC pformatetc,
        !           194:                             LPSTGMEDIUM pmedium ) PURE;
        !           195:     STDMETHOD(QueryGetData) (THIS_ LPFORMATETC pformatetc ) PURE;
        !           196:     STDMETHOD(GetCanonicalFormatEtc) (THIS_ LPFORMATETC pformatetc,
        !           197:                             LPFORMATETC pformatetcOut) PURE;
        !           198:     STDMETHOD(SetData) (THIS_ LPFORMATETC pformatetc, STGMEDIUM FAR * pmedium,
        !           199:                             BOOL fRelease) PURE;
        !           200:     STDMETHOD(EnumFormatEtc) (THIS_ DWORD dwDirection,
        !           201:                             LPENUMFORMATETC FAR* ppenumFormatEtc) PURE;
        !           202: #ifdef OLE2SHIP
        !           203:     STDMETHOD(DAdvise) (THIS_ FORMATETC FAR* pFormatetc, DWORD advf,
        !           204:                     LPADVISESINK pAdvSink, DWORD FAR* pdwConnection) PURE;
        !           205:     STDMETHOD(DUnadvise) (THIS_ DWORD dwConnection) PURE;
        !           206:     STDMETHOD(EnumDAdvise) (THIS_ LPENUMSTATDATA FAR* ppenumAdvise) PURE;
        !           207: #else
        !           208:     STDMETHOD(Advise) (THIS_ FORMATETC FAR* pFormatetc, DWORD advf,
        !           209:                     LPADVISESINK pAdvSink, DWORD FAR* pdwConnection) PURE;
        !           210:     STDMETHOD(Unadvise) (THIS_ DWORD dwConnection) PURE;
        !           211:     STDMETHOD(EnumAdvise) (THIS_ LPENUMSTATDATA FAR* ppenumAdvise) PURE;
        !           212: #endif
        !           213: };
        !           214: typedef      IDataObject FAR* LPDATAOBJECT;
        !           215: 
        !           216: 
        !           217: 
        !           218: #undef  INTERFACE
        !           219: #define INTERFACE   IViewObject
        !           220: 
        !           221: #define VIEW_E_DRAW             (VIEW_E_FIRST)
        !           222: #define E_DRAW                  VIEW_E_DRAW
        !           223: 
        !           224: #define VIEW_S_ALREADY_FROZEN   (VIEW_S_FIRST)
        !           225: 
        !           226: DECLARE_INTERFACE_(IViewObject, IUnknown)
        !           227: { 
        !           228:     // *** IUnknown methods ***
        !           229:     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
        !           230:     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
        !           231:     STDMETHOD_(ULONG,Release) (THIS) PURE;
        !           232: 
        !           233:     // *** IViewObject methods ***
        !           234:     STDMETHOD(Draw) (THIS_ DWORD dwDrawAspect, LONG lindex,
        !           235:                     void FAR* pvAspect, DVTARGETDEVICE FAR * ptd,
        !           236:                     HDC hicTargetDev,
        !           237:                     HDC hdcDraw, 
        !           238:                     const LPRECTL lprcBounds, 
        !           239:                     const LPRECTL lprcWBounds,
        !           240:                     BOOL (CALLBACK * pfnContinue) (DWORD), 
        !           241:                     DWORD dwContinue) PURE;
        !           242: 
        !           243:     STDMETHOD(GetColorSet) (THIS_ DWORD dwDrawAspect, LONG lindex,
        !           244:                     void FAR* pvAspect, DVTARGETDEVICE FAR * ptd,
        !           245:                     HDC hicTargetDev,
        !           246:                     LPLOGPALETTE FAR* ppColorSet) PURE;
        !           247: 
        !           248:     STDMETHOD(Freeze)(THIS_ DWORD dwDrawAspect, LONG lindex,
        !           249:                     void FAR* pvAspect,
        !           250:                     DWORD FAR* pdwFreeze) PURE;
        !           251:     STDMETHOD(Unfreeze) (THIS_ DWORD dwFreeze) PURE;
        !           252:     STDMETHOD(SetAdvise) (THIS_ DWORD aspects, DWORD advf, 
        !           253:                     LPADVISESINK pAdvSink) PURE;
        !           254:     STDMETHOD(GetAdvise) (THIS_ DWORD FAR* pAspects, DWORD FAR* pAdvf, 
        !           255:                     LPADVISESINK FAR* ppAdvSink) PURE;
        !           256: };
        !           257: typedef      IViewObject FAR* LPVIEWOBJECT;
        !           258: 
        !           259: 
        !           260: #undef  INTERFACE
        !           261: #define INTERFACE   IAdviseSink
        !           262: 
        !           263: #ifndef OLE2SHIP
        !           264: #define ADVSINK_E_NOT_OLE1_MONIKER  (ADVSINK_E_FIRST + 0)
        !           265:         // OnRename called with a moniker that is not OLE 1.0 compatible,
        !           266:         // i.e., not a file moniker or a file/item composite moniker.
        !           267: #endif
        !           268: 
        !           269: DECLARE_INTERFACE_(IAdviseSink, IUnknown)
        !           270: { 
        !           271:     // *** IUnknown methods ***
        !           272:     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppv) PURE;
        !           273:     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
        !           274:     STDMETHOD_(ULONG,Release) (THIS) PURE;
        !           275: 
        !           276:     // *** IAdviseSink methods ***
        !           277:     STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC FAR* pFormatetc, 
        !           278:                             STGMEDIUM FAR* pStgmed) PURE;
        !           279:     STDMETHOD_(void,OnViewChange)(THIS_ DWORD dwAspect, LONG lindex) PURE;
        !           280:     STDMETHOD_(void,OnRename)(THIS_ LPMONIKER pmk) PURE;
        !           281:     STDMETHOD_(void,OnSave)(THIS) PURE;
        !           282:     STDMETHOD_(void,OnClose)(THIS) PURE;
        !           283: };
        !           284: typedef      IAdviseSink FAR* LPADVISESINK;
        !           285: 
        !           286: 
        !           287: 
        !           288: #ifdef OLE2SHIP
        !           289: 
        !           290: #undef  INTERFACE
        !           291: #define INTERFACE   IAdviseSink2
        !           292: 
        !           293: DECLARE_INTERFACE_(IAdviseSink2, IAdviseSink)
        !           294: {
        !           295:     // *** IUnknown methods ***
        !           296:     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppv) PURE;
        !           297:     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
        !           298:     STDMETHOD_(ULONG,Release) (THIS) PURE;
        !           299: 
        !           300:     // *** IAdviseSink methods ***
        !           301:     STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC FAR* pFormatetc,
        !           302:                             STGMEDIUM FAR* pStgmed) PURE;
        !           303:     STDMETHOD_(void,OnViewChange)(THIS_ DWORD dwAspect, LONG lindex) PURE;
        !           304:     STDMETHOD_(void,OnRename)(THIS_ LPMONIKER pmk) PURE;
        !           305:     STDMETHOD_(void,OnSave)(THIS) PURE;
        !           306:     STDMETHOD_(void,OnClose)(THIS) PURE;
        !           307: 
        !           308:     // *** IAdviseSink2 methods ***
        !           309:     STDMETHOD_(void,OnLinkSrcChange)(THIS_ LPMONIKER pmk) PURE;
        !           310: };
        !           311: typedef      IAdviseSink2 FAR* LPADVISESINK2;
        !           312: 
        !           313: #endif
        !           314: 
        !           315: 
        !           316: #undef  INTERFACE
        !           317: #define INTERFACE   IDataAdviseHolder
        !           318: 
        !           319: DECLARE_INTERFACE_(IDataAdviseHolder, IUnknown)
        !           320: { 
        !           321:     // *** IUnknown methods ***
        !           322:     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppv) PURE;
        !           323:     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
        !           324:     STDMETHOD_(ULONG,Release) (THIS) PURE;
        !           325: 
        !           326:     // *** IDataAdviseHolder methods ***
        !           327:     STDMETHOD(Advise)(THIS_ LPDATAOBJECT pDataObject, FORMATETC FAR* pFetc, 
        !           328:             DWORD advf, LPADVISESINK pAdvise, DWORD FAR* pdwConnection) PURE;
        !           329:     STDMETHOD(Unadvise)(THIS_ DWORD dwConnection) PURE;
        !           330:     STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA FAR* ppenumAdvise) PURE;
        !           331: 
        !           332:     STDMETHOD(SendOnDataChange)(THIS_ LPDATAOBJECT pDataObject, DWORD dwReserved, DWORD advf) PURE;
        !           333: };
        !           334: typedef      IDataAdviseHolder FAR* LPDATAADVISEHOLDER;
        !           335: 
        !           336: 
        !           337: 
        !           338: #undef  INTERFACE
        !           339: #define INTERFACE   IOleCache
        !           340: 
        !           341: #define CACHE_E_NOCACHE_UPDATED         (CACHE_E_FIRST)
        !           342: 
        !           343: #define CACHE_S_FORMATETC_NOTSUPPORTED  (CACHE_S_FIRST)
        !           344: #define CACHE_S_SAMECACHE               (CACHE_S_FIRST+1)
        !           345: #define CACHE_S_SOMECACHES_NOTUPDATED   (CACHE_S_FIRST+2)
        !           346: 
        !           347: DECLARE_INTERFACE_(IOleCache, IUnknown)
        !           348: {
        !           349:     // *** IUnknown methods ***
        !           350:     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
        !           351:     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
        !           352:     STDMETHOD_(ULONG,Release) (THIS) PURE;
        !           353: 
        !           354:     // *** IOleCache methods ***
        !           355:     STDMETHOD(Cache) (THIS_ LPFORMATETC lpFormatetc, DWORD advf, LPDWORD lpdwConnection) PURE;
        !           356:     STDMETHOD(Uncache) (THIS_ DWORD dwConnection) PURE;
        !           357:     STDMETHOD(EnumCache) (THIS_ LPENUMSTATDATA FAR* ppenumStatData) PURE;
        !           358:     STDMETHOD(InitCache) (THIS_ LPDATAOBJECT pDataObject) PURE;
        !           359:     STDMETHOD(SetData) (THIS_ LPFORMATETC pformatetc, STGMEDIUM FAR * pmedium,
        !           360:                             BOOL fRelease) PURE;
        !           361: };
        !           362: typedef         IOleCache FAR* LPOLECACHE;
        !           363: 
        !           364: /****** DV APIs ***********************************************************/
        !           365: 
        !           366: 
        !           367: STDAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER FAR* ppDAHolder);
        !           368: 
        !           369: #ifndef OLE2SHIP
        !           370: #define CACHE_E_NOCACHE_UPDATED         (CACHE_E_FIRST)
        !           371: #define CACHE_S_FORMATETC_NOTSUPPORTED  (CACHE_S_FIRST)
        !           372: #define CACHE_S_SAMECACHE               (CACHE_S_FIRST+1)
        !           373: #define CACHE_S_SOMECACHES_NOTUPDATED   (CACHE_S_FIRST+2)
        !           374: #endif
        !           375: 
        !           376: #endif // _DVOBJ_H_

unix.superglobalmegacorp.com

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