windows-nt/Source/XPSP1/NT/enduser/speech/sapi/cpl/audiodlg.h
2020-09-26 16:20:57 +08:00

94 lines
3.1 KiB
C++

/*******************************************************************************
* AudioDlg.h *
*------------*
* Description:
* This is the header file for the default audio input/output dialog.
*-------------------------------------------------------------------------------
* Created By: BECKYW Date: 10/15/99
* Copyright (C) 1999 Microsoft Corporation
* All Rights Reserved
*
*******************************************************************************/
#ifndef _AUDIODLG_H
#define _AUDIODLG_H
#define MAX_LOADSTRING 1000
#define WM_AUDIOINFO WM_USER + 20
typedef enum IOTYPE
{
eINPUT,
eOUTPUT
};
typedef struct AUDIOINFO
{
ISpObjectToken *pToken;
} AUDIOINFO;
class CAudioDlg
{
private:
BOOL m_bPreferredDevice;
HWND m_hDlg;
const IOTYPE m_iotype;
CSpDynamicString m_dstrDefaultTokenIdBeforeOK;
CSpDynamicString m_dstrCurrentDefaultTokenId;
// Indicates whether a change was made that will have to be committed
bool m_fChangesToCommit;
bool m_fChangesSinceLastTime;
// Indicates if any changes have been made since the last apply
// that need to be reflected in the UI
CSpDynamicString m_dstrLastRequestedDefaultTokenId;
// holds the process information for the volume control
PROCESS_INFORMATION m_pi;
// Will decide between W() and A() versions
CSpUnicodeSupport m_unicode;
public:
CAudioDlg(IOTYPE iotype) :
m_bPreferredDevice(true),
m_hDlg(NULL),
m_iotype(iotype),
m_fChangesToCommit( false ),
m_fChangesSinceLastTime( false ),
m_dstrLastRequestedDefaultTokenId( (WCHAR *) NULL ),
m_dstrCurrentDefaultTokenId( (WCHAR *) NULL )
{
m_pi.hProcess = NULL;
}
HRESULT OnApply(void);
bool IsAudioDeviceChanged()
{ return m_fChangesToCommit; }
bool IsAudioDeviceChangedSinceLastTime()
{ return m_fChangesSinceLastTime; }
private:
void OnDestroy(void);
void OnInitDialog(HWND hWnd);
HWND GetHDlg(void)
{ return m_hDlg; }
BOOL IsPreferredDevice(void)
{ return m_bPreferredDevice; }
void SetPreferredDevice( BOOL b )
{ m_bPreferredDevice = b; }
UINT GetRequestedDefaultTokenID( WCHAR *pwszNewID, UINT cLength );
HRESULT GetAudioToken(ISpObjectToken **ppToken);
HRESULT UpdateDlgUI(ISpObjectToken *pToken);
BOOL IsInput(void)
{ return (m_iotype == eINPUT); };
friend BOOL CALLBACK AudioDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
};
#endif // _AUDIODLG_H