From 4ed308f452b537bdcbb96f165fd34b6e4994883d Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rg=20H=C3=B6hle?= Date: Wed, 18 Nov 2009 00:58:17 +0100 Subject: [PATCH] winmm: Improve MCI's Sysinfo string command. --- dlls/winmm/mci.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/dlls/winmm/mci.c b/dlls/winmm/mci.c index 4fbb9a05da5..cde8c881f4b 100644 --- a/dlls/winmm/mci.c +++ b/dlls/winmm/mci.c @@ -1233,6 +1233,7 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, static const WCHAR wszNew[] = {'n','e','w',0}; static const WCHAR wszSAliasS[] = {' ','a','l','i','a','s',' ',0}; static const WCHAR wszTypeS[] = {'t','y','p','e',' ',0}; + static const WCHAR wszSysinfo[] = {'s','y','s','i','n','f','o',0}; TRACE("(%s, %p, %d, %p)\n", debugstr_w(lpstrCommand), lpstrRet, uRetLen, hwndCallback); @@ -1326,6 +1327,20 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, MCI_UnLoadMciDriver(wmd); goto errCleanUp; } + } else if (!strcmpW(verb, wszSysinfo)) { + /* System commands are not subject to auto-open. */ + /* It's too early to handle Sysinfo here because the + * requirements on dev depend on the flags: + * alias with INSTALLNAME, name like "waveaudio" + * with QUANTITY and NAME. */ + data[4] = MCI_ALL_DEVICE_ID; + if (MCI_ALL_DEVICE_ID != uDevID) { + /* FIXME: Map device name like waveaudio to MCI_DEVTYPE_xyz */ + uDevID = mciGetDeviceIDW(dev); + wmd = MCI_GetDriver(uDevID); + if (wmd) + data[4] = wmd->wType; + } } else if ((MCI_ALL_DEVICE_ID != uDevID) && !(wmd = MCI_GetDriver(mciGetDeviceIDW(dev)))) { /* auto open */ static const WCHAR wszOpenWait[] = {'o','p','e','n',' ','%','s',' ','w','a','i','t',0}; -- 2.11.4.GIT