Annotation of mstools/ole20/h/dvobj.h, revision 1.1.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.