32 TRACE(
"Volume_FindDefaultMixerID\n");
38 if (waveOutId == (
DWORD)-1)
40 TRACE(
"WARNING: waveOut has no default device, trying with first available device...\n", waveOutId);
46 TRACE(
"waveOut default device is %d\n", waveOutId);
52 TRACE(
"mixerId for waveOut default device is %d\n", mixerId);
77 mixerLine.
cbStruct =
sizeof(mixerLine);
84 TRACE(
"Destination %d was not speakers or headphones.\n");
91 TRACE(
"Valid destination %d found.\n");
95 mixerLineControls.
cbStruct =
sizeof(mixerLineControls);
99 mixerLineControls.
pamxctrl = &mixerControl;
100 mixerLineControls.
cbmxctrl =
sizeof(mixerControl);
118 BOOL detailsResult = 0;
119 mixerControlDetails.
cbStruct =
sizeof(mixerControlDetails);
123 mixerControlDetails.
paDetails = &detailsResult;
124 mixerControlDetails.
cbDetails =
sizeof(detailsResult);
128 TRACE(
"Obtained mute status %d\n", detailsResult);
139 WCHAR strTooltip[128];
141 TRACE(
"Volume_Init\n");
171 TRACE(
"Volume_Update\n");
178 WCHAR strTooltip[128];
201 TRACE(
"Volume_Shutdown\n");
216 bTray ?
L"/t" :
NULL,
228 WCHAR strAdjust[128];
268 TRACE(
"Volume_Message: WM_USER+220\n");
285 TRACE(
"Volume_Message: WM_USER+221\n");
336 TRACE(
"Volume_Message received for unknown ID %d, ignoring.\n");
#define UlongToHandle(ul)
#define STDMETHODCALLTYPE
#define VOLUME_SERVICE_FLAG
#define DRVM_MAPPER_PREFERRED_GET
#define MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
#define MIXER_OBJECTF_WAVEOUT
#define MIXERLINE_COMPONENTTYPE_DST_HEADPHONES
#define MIXER_GETLINECONTROLSF_ONEBYTYPE
#define MIXERCONTROL_CONTROLTYPE_MUTE
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
HRESULT STDMETHODCALLTYPE Volume_Init(_In_ CSysTray *pSysTray)
HRESULT STDMETHODCALLTYPE Volume_Message(_In_ CSysTray *pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult)
HRESULT Volume_OnDeviceChange(_In_ CSysTray *pSysTray, WPARAM wParam, LPARAM lParam)
static void _RunVolume(BOOL bTray)
static HRESULT __stdcall Volume_FindMixerControl(CSysTray *pSysTray)
HRESULT STDMETHODCALLTYPE Volume_Shutdown(_In_ CSysTray *pSysTray)
static void _ShowContextMenu(CSysTray *pSysTray)
HRESULT STDMETHODCALLTYPE Volume_Update(_In_ CSysTray *pSysTray)
UINT WINAPI mixerGetLineControlsW(HMIXEROBJ hmix, LPMIXERLINECONTROLSW lpmlcW, DWORD fdwControls)
UINT WINAPI mixerGetDevCapsW(UINT_PTR uDeviceID, LPMIXERCAPSW lpCaps, UINT uSize)
UINT WINAPI mixerGetControlDetailsW(HMIXEROBJ hmix, LPMIXERCONTROLDETAILS lpmcdW, DWORD fdwDetails)
UINT WINAPI mixerGetLineInfoW(HMIXEROBJ hmix, LPMIXERLINEW lpmliW, DWORD fdwInfo)
UINT WINAPI mixerGetID(HMIXEROBJ hmix, LPUINT lpid, DWORD fdwID)
UINT WINAPI waveOutMessage(HWAVEOUT hWaveOut, UINT uMessage, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
HMENU WINAPI CreatePopupMenu(void)
BOOL WINAPI SetMenuDefaultItem(_In_ HMENU, _In_ UINT, _In_ UINT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI SetForegroundWindow(_In_ HWND)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)
UINT WINAPI GetDoubleClickTime(void)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
UINT WINAPI RegisterWindowMessageW(_In_ LPCWSTR)
BOOL WINAPI DestroyMenu(_In_ HMENU)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
BOOL WINAPI AppendMenuW(_In_ HMENU, _In_ UINT, _In_ UINT_PTR, _In_opt_ LPCWSTR)