DiscFormatDataEvent.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef __DISC_FORMATDATA_EVENT_20151220__
  2. #define __DISC_FORMATDATA_EVENT_20151220__
  3. ///////////////////////////////////////////////////////////////////////
  4. // DiscFormatDataEvent.h
  5. //
  6. // Wrapper for DDiscFormat2DataEvents Interface Events
  7. //
  8. // 包装DDiscFormat2DataEvents通知用于接收IDiscFormat2Data写的状态函数。
  9. //
  10. #pragma once
  11. class CDiscFormatData;
  12. // CDiscFormatDataEvent command target
  13. class CDiscFormatDataEvent : public CCmdTarget
  14. {
  15. DECLARE_DYNAMIC(CDiscFormatDataEvent)
  16. private:
  17. LPTYPEINFO m_ptinfo; // ITest type information
  18. DWORD m_dwCookie;
  19. LPUNKNOWN m_pUnkSink;
  20. LPUNKNOWN m_pUnkSrc;
  21. HWND m_hNotifyWnd;
  22. public:
  23. CDiscFormatDataEvent();
  24. virtual ~CDiscFormatDataEvent();
  25. static CDiscFormatDataEvent* CreateEventSink();
  26. bool ConnectDiscFormatData(CDiscFormatData*);
  27. inline void SetHwnd(HWND hWnd){m_hNotifyWnd = hWnd;}
  28. DECLARE_INTERFACE_MAP()
  29. BEGIN_INTERFACE_PART(FormatDataEvents, DDiscFormat2DataEvents)
  30. //
  31. // IDispatch Methods
  32. //
  33. STDMETHOD(GetTypeInfoCount)(UINT FAR* pctinfo);
  34. STDMETHOD(GetTypeInfo)(UINT itinfo, LCID lcid, ITypeInfo FAR* FAR* pptinfo);
  35. STDMETHOD(GetIDsOfNames)(REFIID riid, OLECHAR FAR* FAR* rgszNames,
  36. UINT cNames, LCID lcid, DISPID FAR* rgdispid);
  37. STDMETHOD(Invoke)(DISPID dispidMember, REFIID riid, LCID lcid,
  38. WORD wFlags, DISPPARAMS FAR* pdispparams, VARIANT FAR* pvarResult,
  39. EXCEPINFO FAR* pexcepinfo, UINT FAR* puArgErr);
  40. //
  41. // DDiscFormat2DataEvents Methods
  42. //
  43. STDMETHOD_(HRESULT, Update)(LPDISPATCH, LPDISPATCH);
  44. END_INTERFACE_PART(FormatDataEvents)
  45. protected:
  46. DECLARE_MESSAGE_MAP()
  47. };
  48. #endif