Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.3 KiB

  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. // IDataObject methods
  12. STDMETHODIMP GetData(FORMATETC *pfmtetcIn, STGMEDIUM *pstgmed);
  13. STDMETHODIMP GetDataHere(FORMATETC *pfmtetc, STGMEDIUM *pstgpmed);
  14. STDMETHODIMP QueryGetData(FORMATETC *pfmtetc);
  15. STDMETHODIMP GetCanonicalFormatEtc(FORMATETC *pfmtetcIn, FORMATETC *pfmtetcOut);
  16. STDMETHODIMP SetData(FORMATETC *pfmtetc, STGMEDIUM *pstgmed, BOOL bRelease);
  17. STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppienumFormatEtc);
  18. STDMETHODIMP DAdvise(FORMATETC *pfmtetc, DWORD dwAdviseFlags, IAdviseSink * piadvsink, PDWORD pdwConnection);
  19. STDMETHODIMP DUnadvise(DWORD dwConnection);
  20. STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppienumStatData);
  21. CBandDataObject();
  22. HRESULT Init(IUnknown* punkBand, IBandSite *pbs, DWORD dwBandID);
  23. protected:
  24. ~CBandDataObject();
  25. ULONG _cRef;
  26. IStream* _pstm; // band state (IPS::Save)
  27. DWORD _dwState; // band's bandsite state (DWORD *)
  28. };