bandobj.h
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 1k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. // implements the dataobject for a deskbar band
  2. extern UINT g_cfDeskBand;
  3. extern UINT g_cfDeskBandState;
  4. class CBandDataObject : public IDataObject
  5. {
  6. public:
  7.     // *** IUnknown ***
  8.     virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj);
  9.     virtual STDMETHODIMP_(ULONG) AddRef(void);
  10.     virtual STDMETHODIMP_(ULONG) Release(void);
  11.     
  12.     // IDataObject methods
  13.     STDMETHODIMP GetData(FORMATETC *pfmtetcIn, STGMEDIUM *pstgmed);
  14.     STDMETHODIMP GetDataHere(FORMATETC *pfmtetc, STGMEDIUM *pstgpmed);
  15.     STDMETHODIMP QueryGetData(FORMATETC *pfmtetc);
  16.     STDMETHODIMP GetCanonicalFormatEtc(FORMATETC *pfmtetcIn, FORMATETC *pfmtetcOut);
  17.     STDMETHODIMP SetData(FORMATETC *pfmtetc, STGMEDIUM *pstgmed, BOOL bRelease);
  18.     STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppienumFormatEtc);
  19.     STDMETHODIMP DAdvise(FORMATETC *pfmtetc, DWORD dwAdviseFlags, IAdviseSink * piadvsink, PDWORD pdwConnection);
  20.     STDMETHODIMP DUnadvise(DWORD dwConnection);
  21.     STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppienumStatData);
  22.     
  23.     CBandDataObject();
  24.     HRESULT Init(IUnknown* punkBand, IBandSite *pbs, DWORD dwBandID);
  25.     
  26. protected:
  27.     ~CBandDataObject();
  28.     ULONG _cRef;
  29.     IStream* _pstm;         // band state (IPS::Save)
  30.     DWORD _dwState;         // band's bandsite state (DWORD *)
  31. };