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.
 
 
 
 
 
 

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;