31 TRACE(
"Volume_FindDefaultMixerID\n");
41 if (waveOutId == (
DWORD)-1)
43 TRACE(
"WARNING: waveOut has no default device, trying with first available device...\n", waveOutId);
49 TRACE(
"waveOut default device is %d\n", waveOutId);
55 TRACE(
"mixerId for waveOut default device is %d\n", mixerId);
72 mixerLine.
cbStruct =
sizeof(mixerLine);
79 ERR(
"mixerGetLineInfoW failed (%lu)\n",
result);
85 mixerLineControls.
cbStruct =
sizeof(mixerLineControls);
89 mixerLineControls.
pamxctrl = &mixerControl;
90 mixerLineControls.
cbmxctrl =
sizeof(mixerControl);
94 ERR(
"mixerGetLineControlsW failed (%lu)\n",
result);
111 BOOL detailsResult = 0;
112 mixerControlDetails.
cbStruct =
sizeof(mixerControlDetails);
116 mixerControlDetails.
paDetails = &detailsResult;
117 mixerControlDetails.
cbDetails =
sizeof(detailsResult);
121 TRACE(
"Obtained mute status %d\n", detailsResult);
132 WCHAR strTooltip[128];
134 TRACE(
"Volume_Init\n");
164 TRACE(
"Volume_Update\n");
171 WCHAR strTooltip[128];
194 TRACE(
"Volume_Shutdown\n");
209 bTray ?
L"/t" :
NULL,
221 WCHAR strAdjust[128];
261 TRACE(
"Volume_Message: WM_USER+220\n");
278 TRACE(
"Volume_Message: WM_USER+221\n");
331 TRACE(
"Volume_Message received for unknown ID %d, ignoring.\n");
#define UlongToHandle(ul)
#define STDMETHODCALLTYPE
static void RunDll(PCSTR Dll, PCSTR Parameters)
#define VOLUME_SERVICE_FLAG
#define DRVM_MAPPER_PREFERRED_GET
#define MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
#define MIXER_OBJECTF_WAVEOUT
#define MIXER_GETCONTROLDETAILSF_VALUE
#define MIXER_GETLINEINFOF_COMPONENTTYPE
#define MM_MIXM_LINE_CHANGE
#define MIXER_GETLINECONTROLSF_ONEBYTYPE
#define MIXER_OBJECTF_HMIXER
#define MIXERCONTROL_CONTROLTYPE_MUTE
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
#define MAKEINTRESOURCE(i)
HMENU WINAPI CreatePopupMenu(void)
BOOL WINAPI SetMenuDefaultItem(_In_ HMENU, _In_ UINT, _In_ UINT)
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)
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 mixerClose(HMIXER hMix)
UINT WINAPI mixerGetControlDetailsW(HMIXEROBJ hmix, LPMIXERCONTROLDETAILS lpmcdW, DWORD fdwDetails)
UINT WINAPI mixerGetLineInfoW(HMIXEROBJ hmix, LPMIXERLINEW lpmliW, DWORD fdwInfo)
UINT WINAPI mixerOpen(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)
UINT WINAPI mixerGetID(HMIXEROBJ hmix, LPUINT lpid, DWORD fdwID)
UINT WINAPI waveOutMessage(HWAVEOUT hWaveOut, UINT uMessage, DWORD_PTR dwParam1, DWORD_PTR dwParam2)