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.
 
 
 
 
 
 

77 lines
2.2 KiB

/*==========================================================================
*
* Copyright (C) 1999, 2000 Microsoft Corporation. All Rights Reserved.
*
* File: wavformat.h
* Content:
* This module contains the CWaveFormat class which is used to work with
* WAVEFORMATEX structures.
*
* History:
* Date By Reason
* ==== == ======
* 07/06/00 rodtoll Created
*
***************************************************************************/
#ifndef __WAVFORMAT_H
#define __WAVFORMAT_H
/////////////////////////////////////////////////////////////////////
//
// CWaveFormat
//
// Used to store and manipulate WAVEFORMATEX structures.
//
class CWaveFormat
{
public:
CWaveFormat(): m_pwfxFormat(NULL), m_fOwned(FALSE) {};
~CWaveFormat() { Cleanup(); };
// Initialize with full parameters
HRESULT Initialize( WORD wFormatTag, DWORD nSamplesPerSec, WORD nChannels, WORD wBitsPerSample,
WORD nBlockAlign, DWORD nAvgBytesPerSec, WORD cbSize, void *pvExtra );
// Initialize and copy the specified format
HRESULT InitializeCPY( LPWAVEFORMATEX pwfxFormat, void *pvExtra );
// Build a standard PCM format
HRESULT InitializePCM( WORD wHZ, BOOL fStereo, BYTE bBitsPerSample );
// Create a WAVEFORMAT that is of size dwSize
HRESULT InitializeMEM( DWORD dwSize );
// Initialize but unowned
HRESULT InitializeUSE( WAVEFORMATEX *pwfxFormat );
// Initialize from registry
HRESULT InitializeREG( HKEY hKeyRoot, const WCHAR *wszPath );
// Set this object equal to the parameter
HRESULT SetEqual( CWaveFormat *pwfxFormat );
// Are these two types equal?
BOOL IsEqual( CWaveFormat *pwfxFormat );
// Return a pointer to the format
inline WAVEFORMATEX *GetFormat() { return m_pwfxFormat; };
inline WAVEFORMATEX *Disconnect() { m_fOwned = FALSE; return GetFormat(); };
// Is this an eight bit waveformat?
inline BOOL IsEightBit() const { return (m_pwfxFormat->wBitsPerSample==8); };
// Write the contained value to the registry
HRESULT WriteREG( HKEY hKeyRoot, const WCHAR *wszPath );
protected:
void Cleanup();
WAVEFORMATEX *m_pwfxFormat;
BOOL m_fOwned;
};
#endif