Leaked source code of windows server 2003
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.

72 lines
2.1 KiB

  1. //
  2. // Microsoft Windows Media Technologies
  3. // Copyright (C) Microsoft Corporation, 1999 - 2001. All rights reserved.
  4. //
  5. //
  6. // OperationHelper.h : Declaration of the COperationHelper
  7. //
  8. #ifndef __OPERATIONHELPER_H_
  9. #define __OPERATIONHELPER_H_
  10. #include "progRC.h" // main symbols
  11. enum EWMDMOperation
  12. {
  13. E_OPERATION_NOTHING = 0,
  14. E_OPERATION_SENDING,
  15. E_OPERATION_RECEIVING,
  16. };
  17. class CSecureChannelClient;
  18. /////////////////////////////////////////////////////////////////////////////
  19. // COperationHelper
  20. class ATL_NO_VTABLE COperationHelper :
  21. public CComObjectRootEx<CComMultiThreadModel>,
  22. public CComCoClass<COperationHelper, &CLSID_OperationHelper>,
  23. public IWMDMOperationHelper,
  24. public IWMDMOperation
  25. {
  26. private:
  27. EWMDMOperation m_eStatus;
  28. TCHAR m_pszFileName[MAX_PATH];
  29. HANDLE m_hFile;
  30. CSecureChannelClient* m_pSACClient;
  31. public:
  32. COperationHelper();
  33. ~COperationHelper();
  34. DECLARE_REGISTRY_RESOURCEID(IDR_WMDMOPERATIONHELPER)
  35. DECLARE_NOT_AGGREGATABLE(COperationHelper)
  36. DECLARE_PROTECT_FINAL_CONSTRUCT()
  37. BEGIN_COM_MAP(COperationHelper)
  38. COM_INTERFACE_ENTRY(IWMDMOperationHelper)
  39. COM_INTERFACE_ENTRY(IWMDMOperation)
  40. END_COM_MAP()
  41. // IWMDMOperationHelper
  42. public:
  43. STDMETHOD (SetFileName)(/*[in]*/ BSTR pszFileName);
  44. // IWMDMOperation
  45. public:
  46. STDMETHOD (SetSAC)(void* pSACClient );
  47. STDMETHOD (BeginWrite)();
  48. STDMETHOD (BeginRead)();
  49. STDMETHOD (GetObjectName)(LPWSTR pwszName, UINT nMaxChars);
  50. STDMETHOD (SetObjectName)(LPWSTR pwszName, UINT nMaxChars);
  51. STDMETHOD (GetObjectAttributes)(DWORD *pdwAttributes, _WAVEFORMATEX *pFormat);
  52. STDMETHOD (SetObjectAttributes)(DWORD dwAttributes, _WAVEFORMATEX *pFormat);
  53. STDMETHOD (GetObjectTotalSize)(DWORD *pdwSize, DWORD* pdwHighSize);
  54. STDMETHOD (SetObjectTotalSize)(DWORD dwSize, DWORD dwHighSize);
  55. STDMETHOD (TransferObjectData)(BYTE *pData, DWORD *pdwSize, BYTE abMac[]);
  56. STDMETHOD (End)(HRESULT *phCompletionCode,IUnknown *pNewObject);
  57. };
  58. #endif //__OPERATIONHELPER_H_