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.
93 lines
3.2 KiB
93 lines
3.2 KiB
/*******************************************************************************
|
|
* 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 INT_PTR CALLBACK AudioDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
};
|
|
|
|
#endif // _AUDIODLG_H
|