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.
84 lines
2.8 KiB
84 lines
2.8 KiB
#pragma once
|
|
|
|
class CDevice:
|
|
public CComObjectRoot,
|
|
public IMDSPDevice2,
|
|
public ISpecifyPropertyPagesImpl<CDevice>
|
|
{
|
|
|
|
public:
|
|
BEGIN_COM_MAP(CDevice)
|
|
COM_INTERFACE_ENTRY2(IMDSPDevice, IMDSPDevice2)
|
|
COM_INTERFACE_ENTRY(IMDSPDevice2)
|
|
COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
|
|
END_COM_MAP()
|
|
|
|
//
|
|
// Construction/Destruction
|
|
//
|
|
|
|
CDevice();
|
|
virtual ~CDevice();
|
|
HRESULT Init( LPCWSTR pszInitPath );
|
|
|
|
BEGIN_PROP_MAP(CDevice)
|
|
PROP_PAGE(__uuidof(FavoritesPropPage) )
|
|
END_PROP_MAP()
|
|
|
|
public:
|
|
|
|
//
|
|
// IMDSPDevice
|
|
//
|
|
STDMETHOD( GetName )( LPWSTR pwszName, UINT nMaxChars);
|
|
STDMETHOD( GetManufacturer )( LPWSTR pwszName, UINT nMaxChars);
|
|
STDMETHOD( GetVersion ) ( DWORD *pdwVersion );
|
|
STDMETHOD( GetType ) ( DWORD *pdwType );
|
|
STDMETHOD( GetSerialNumber ) ( PWMDMID pSerialNumber, BYTE abMac[WMDM_MAC_LENGTH] );
|
|
STDMETHOD( GetPowerSource ) ( DWORD *pdwPowerSource, DWORD *pdwPercentRemaining);
|
|
STDMETHOD( GetStatus ) ( DWORD *pdwStatus );
|
|
STDMETHOD( GetDeviceIcon )( ULONG *hIcon );
|
|
STDMETHOD( EnumStorage )( IMDSPEnumStorage **ppEnumStorage );
|
|
STDMETHOD( GetFormatSupport ) ( _WAVEFORMATEX **pFormatEx,
|
|
UINT *pnFormatCount,
|
|
LPWSTR **pppwszMimeType,
|
|
UINT *pnMimeTypeCount);
|
|
STDMETHOD( SendOpaqueCommand )( OPAQUECOMMAND *pCommand );
|
|
|
|
//
|
|
// IMDSPDevice2
|
|
//
|
|
STDMETHOD( GetStorage )( LPCWSTR pszStorageName, IMDSPStorage** ppStorage );
|
|
|
|
STDMETHOD( GetFormatSupport2 )( DWORD dwFlags,
|
|
_WAVEFORMATEX **ppAudioFormatEx,
|
|
UINT *pnAudioFormatCount,
|
|
_VIDEOINFOHEADER **ppVideoFormatEx,
|
|
UINT *pnVideoFormatCount,
|
|
WMFILECAPABILITIES **ppFileType,
|
|
UINT *pnFileTypeCount);
|
|
|
|
STDMETHOD ( GetSpecifyPropertyPages )( ISpecifyPropertyPages** ppSpecifyPropPages,
|
|
IUnknown*** pppUnknowns,
|
|
ULONG *pcUnks );
|
|
|
|
|
|
STDMETHOD(GetPnPName)( LPWSTR pwszPnPName, UINT nMaxChars );
|
|
|
|
//
|
|
// Attributes
|
|
//
|
|
|
|
private:
|
|
STDMETHOD(GetCEPlayerVersion)(DWORD *pdwVersion);
|
|
STDMETHOD(InternalGetFormatSupport)( _WAVEFORMATEX **pFormatEx,
|
|
UINT *pnFormatCount,
|
|
LPWSTR **pppwszMimeType,
|
|
UINT *pnMimeTypeCount);
|
|
|
|
protected:
|
|
LPWSTR m_pszInitPath;
|
|
BOOL m_fAllowVideo;
|
|
};
|
|
|
|
typedef CComObject<CDevice> CComDevice;
|