#ifndef __DISC_RECORDER_20151220__ #define __DISC_RECORDER_20151220__ /////////////////////////////////////////////////////////////////////// // DiscRecorder.h // // Wrapper for IDiscRecorder2 Interface // // 包装IDiscRecorder2接口代表每个物理驱动器。 使用这个接口来检索信息包括制造商信息,逻辑驱动器,并支持媒体。 // #pragma once class CDiscRecorder { private: IDiscRecorder2* m_discRecorder; SAFEARRAY* m_volumePathNames; HRESULT m_hResult; CString m_recorderUniqueId; public: CDiscRecorder(void); ~CDiscRecorder(void); inline HRESULT GetHresult() {return m_hResult;} inline IDiscRecorder2* GetInterface() {return m_discRecorder;} inline CString GetUniqueId() {return m_recorderUniqueId;} bool Initialize(const CString& recorderUniqueId); bool AcquireExclusiveAccess(bool force, const CString& clientName); bool ReleaseExclusiveAccess(); CString ExclusiveAccessOwner(); bool EjectMedia(); bool CloseTray(); bool EnableMcn(); bool DisableMcn(); LONG GetLegacyDeviceNumber(); CString GetProductID(); CString GetProductRevision(); CString GetVendorId(); CString GetVolumeName(); ULONG GetTotalVolumePaths(); CString GetVolumePath(ULONG volumePathIndex); }; #endif