#include "precomp.h"
-#include <mmsystem.h>
#include <mmddk.h>
-WINE_DEFAULT_DEBUG_CHANNEL(stobject);
-
HICON g_hIconVolume;
HICON g_hIconMute;
return S_OK;
}
-HRESULT Volume_IsMute(VOID)
+HRESULT Volume_IsMute()
{
#if 0
MIXERCONTROLDETAILS mixerControlDetails;
return Volume_FindMixerControl(pSysTray);
}
-static void _RunVolume(BOOL bSmall)
+static void _RunVolume(BOOL bTray)
{
- // FIXME: ensure we are loading the right one
- ShellExecuteW(NULL, NULL, L"sndvol32.exe", bSmall ? L"/t" : NULL, NULL, SW_SHOWNORMAL);
+ ShellExecuteW(NULL, NULL, bTray ? L"sndvol32.exe /t" : L"sndvol32.exe", NULL, NULL, SW_SHOWNORMAL);
}
static void _RunMMCpl()
HMENU hPopup = CreatePopupMenu();
AppendMenuW(hPopup, MF_STRING, IDS_VOL_OPEN, strOpen);
AppendMenuW(hPopup, MF_STRING, IDS_VOL_ADJUST, strAdjust);
- SetMenuDefaultItem(hPopup, IDS_VOL_OPEN, FALSE);
DWORD flags = TPM_RETURNCMD | TPM_NONOTIFY | TPM_RIGHTALIGN | TPM_BOTTOMALIGN;
- DWORD msgPos = GetMessagePos();
-
+ POINT pt;
SetForegroundWindow(pSysTray->GetHWnd());
+ GetCursorPos(&pt);
+
DWORD id = TrackPopupMenuEx(hPopup, flags,
- GET_X_LPARAM(msgPos), GET_Y_LPARAM(msgPos),
+ pt.x, pt.y,
pSysTray->GetHWnd(), NULL);
DestroyMenu(hPopup);
}
return S_FALSE;
+ case WM_TIMER:
+ if (wParam == VOLUME_TIMER_ID)
+ {
+ KillTimer(pSysTray->GetHWnd(), VOLUME_TIMER_ID);
+ _RunVolume(TRUE);
+ }
+ break;
+
case ID_ICON_VOLUME:
TRACE("Volume_Message uMsg=%d, w=%x, l=%x\n", uMsg, wParam, lParam);
switch (lParam)
{
case WM_LBUTTONDOWN:
- SetTimer(pSysTray->GetHWnd(), VOLUME_TIMER_ID, 500, NULL);
+ SetTimer(pSysTray->GetHWnd(), VOLUME_TIMER_ID, GetDoubleClickTime(), NULL);
break;
case WM_LBUTTONUP:
return S_FALSE;
}
-
-VOID
-Volume_OnTimer(HWND hWnd)
-{
- TRACE("Volume_OnTimer\n!");
- KillTimer(hWnd, VOLUME_TIMER_ID);
- _RunVolume(TRUE);
-}