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.

79 lines
2.1 KiB

  1. // MediaDevMgr.h : Declaration of the CMediaDevMgr
  2. #ifndef __MEDIADEVMGR_H_
  3. #define __MEDIADEVMGR_H_
  4. #include "resource.h" // main symbols
  5. #include "spinfo.h"
  6. #include "scpinfo.h"
  7. /////////////////////////////////////////////////////////////////////////////
  8. // CMediaDevMgrClassFactory
  9. class ATL_NO_VTABLE CMediaDevMgrClassFactory :
  10. public CComObjectRootEx<CComMultiThreadModel>,
  11. public IClassFactory
  12. {
  13. public:
  14. BEGIN_COM_MAP(CMediaDevMgrClassFactory)
  15. COM_INTERFACE_ENTRY(IClassFactory)
  16. END_COM_MAP()
  17. //
  18. // IClassFactory
  19. //
  20. STDMETHOD(CreateInstance)(IUnknown * pUnkOuter, REFIID riid, void ** ppvObject);
  21. STDMETHOD(LockServer)(BOOL fLock);
  22. };
  23. typedef CComObject<CMediaDevMgrClassFactory> CComMediaDevMgrClassFactory;
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CMediaDevMgr
  26. class ATL_NO_VTABLE CMediaDevMgr :
  27. public CComObjectRootEx<CComMultiThreadModel>,
  28. public CComCoClass<CMediaDevMgr, &CLSID_MediaDevMgr>,
  29. public IWMDeviceManager,
  30. public IComponentAuthenticate
  31. {
  32. public:
  33. CMediaDevMgr();
  34. ~CMediaDevMgr();
  35. DECLARE_REGISTRY_RESOURCEID(IDR_MEDIADEVMGR)
  36. BEGIN_COM_MAP(CMediaDevMgr)
  37. COM_INTERFACE_ENTRY(IWMDeviceManager)
  38. COM_INTERFACE_ENTRY(IComponentAuthenticate)
  39. END_COM_MAP()
  40. public:
  41. // The SCP's are loaded on first use.
  42. static HRESULT LoadSCPs();
  43. // IWMDeviceManager Methods
  44. STDMETHOD(GetRevision)(DWORD *pdwRevision);
  45. STDMETHOD(GetDeviceCount)(DWORD *pdwCount);
  46. STDMETHOD(EnumDevices)(IWMDMEnumDevice **ppEnumDevice);
  47. STDMETHOD(SACAuth)(DWORD dwProtocolID,
  48. DWORD dwPass,
  49. BYTE *pbDataIn,
  50. DWORD dwDataInLen,
  51. BYTE **ppbDataOut,
  52. DWORD *pdwDataOutLen);
  53. STDMETHOD(SACGetProtocols)(DWORD **ppdwProtocols,
  54. DWORD *pdwProtocolCount);
  55. // IWMDeviceManager2 Methods
  56. STDMETHOD(GetDeviceFromPnPName)( LPCWSTR pwszPnPName, IWMDMDevice** ppDevice );
  57. private:
  58. HRESULT hrLoadSPs();
  59. static HRESULT hrLoadSCPs();
  60. };
  61. #endif //__MEDIADEVMGR_H_