devenum: Register waveOut devices as codec devices.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2018-03-31 16:25:14 -05:00 committed by Alexandre Julliard
parent 5e19a64bc8
commit b7fdedd323
51 changed files with 190 additions and 239 deletions

View File

@ -594,6 +594,85 @@ cleanup:
return TRUE;
}
static void register_waveout_devices(void)
{
static const WCHAR defaultW[] = {'D','e','f','a','u','l','t',' ','W','a','v','e','O','u','t',' ','D','e','v','i','c','e',0};
static const WCHAR waveoutidW[] = {'W','a','v','e','O','u','t','I','d',0};
IPropertyBag *prop_bag = NULL;
REGFILTERPINS2 rgpins = {0};
REGPINTYPES rgtypes = {0};
REGFILTER2 rgf = {0};
WCHAR clsid[CHARS_IN_GUID];
IMoniker *mon = NULL;
WAVEOUTCAPSW caps;
int i, count;
VARIANT var;
HRESULT hr;
hr = DEVENUM_CreateAMCategoryKey(&CLSID_AudioRendererCategory);
if (FAILED(hr)) return;
count = waveOutGetNumDevs();
for (i = -1; i < count; i++)
{
waveOutGetDevCapsW(i, &caps, sizeof(caps));
V_VT(&var) = VT_BSTR;
if (i == -1) /* WAVE_MAPPER */
V_BSTR(&var) = SysAllocString(defaultW);
else
V_BSTR(&var) = SysAllocString(caps.szPname);
if (!(V_BSTR(&var)))
goto cleanup;
hr = register_codec(&CLSID_AudioRendererCategory, V_BSTR(&var), &mon);
if (FAILED(hr)) goto cleanup;
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&prop_bag);
if (FAILED(hr)) goto cleanup;
/* write friendly name */
hr = IPropertyBag_Write(prop_bag, wszFriendlyName, &var);
if (FAILED(hr)) goto cleanup;
VariantClear(&var);
/* write clsid */
V_VT(&var) = VT_BSTR;
StringFromGUID2(&CLSID_AudioRender, clsid, CHARS_IN_GUID);
if (!(V_BSTR(&var) = SysAllocString(clsid)))
goto cleanup;
hr = IPropertyBag_Write(prop_bag, clsid_keyname, &var);
if (FAILED(hr)) goto cleanup;
VariantClear(&var);
/* write filter data */
rgf.dwVersion = 2;
rgf.dwMerit = MERIT_DO_NOT_USE;
rgf.u.s2.cPins2 = 1;
rgf.u.s2.rgPins2 = &rgpins;
rgpins.dwFlags = REG_PINFLAG_B_RENDERER;
rgpins.nMediaTypes = 1;
rgpins.lpMediaType = &rgtypes;
rgtypes.clsMajorType = &MEDIATYPE_Audio;
rgtypes.clsMinorType = &MEDIASUBTYPE_NULL;
write_filter_data(prop_bag, &rgf);
/* write WaveOutId */
V_VT(&var) = VT_I4;
V_I4(&var) = i;
hr = IPropertyBag_Write(prop_bag, waveoutidW, &var);
if (FAILED(hr)) goto cleanup;
cleanup:
VariantClear(&var);
if (prop_bag) IPropertyBag_Release(prop_bag);
if (mon) IMoniker_Release(mon);
}
}
/**********************************************************************
* DEVENUM_ICreateDevEnum_CreateClassEnumerator
*/
@ -616,6 +695,7 @@ static HRESULT WINAPI DEVENUM_ICreateDevEnum_CreateClassEnumerator(
register_legacy_filters();
hr = DirectSoundEnumerateW(&register_dsound_devices, NULL);
if (FAILED(hr)) return hr;
register_waveout_devices();
return create_EnumMoniker(clsidDeviceClass, ppEnumMoniker);
}
@ -752,62 +832,11 @@ static HRESULT register_codecs(void)
if (SUCCEEDED(res))
{
UINT i;
WAVEOUTCAPSW wocaps;
WAVEINCAPSW wicaps;
MIDIOUTCAPSW mocaps;
REGPINTYPES * pTypes;
IPropertyBag * pPropBag = NULL;
numDevs = waveOutGetNumDevs();
res = DEVENUM_CreateAMCategoryKey(&CLSID_AudioRendererCategory);
if (FAILED(res)) /* can't register any devices in this category */
numDevs = 0;
rfp2.dwFlags = REG_PINFLAG_B_RENDERER;
for (i = 0; i < numDevs; i++)
{
if (waveOutGetDevCapsW(i, &wocaps, sizeof(WAVEOUTCAPSW))
== MMSYSERR_NOERROR)
{
IMoniker * pMoniker = NULL;
rfp2.nMediaTypes = 1;
pTypes = CoTaskMemAlloc(rfp2.nMediaTypes * sizeof(REGPINTYPES));
if (!pTypes)
{
IFilterMapper2_Release(pMapper);
return E_OUTOFMEMORY;
}
/* FIXME: Native devenum seems to register a lot more types for
* DSound than we do. Not sure what purpose they serve */
pTypes[0].clsMajorType = &MEDIATYPE_Audio;
pTypes[0].clsMinorType = &MEDIASUBTYPE_PCM;
rfp2.lpMediaType = pTypes;
res = IFilterMapper2_RegisterFilter(pMapper,
&CLSID_AudioRender,
wocaps.szPname,
&pMoniker,
&CLSID_AudioRendererCategory,
wocaps.szPname,
&rf2);
/* FIXME: do additional stuff with IMoniker here, depending on what RegisterFilter does */
if (pMoniker)
IMoniker_Release(pMoniker);
if (i == iDefaultDevice)
{
FIXME("Default device\n");
}
CoTaskMemFree(pTypes);
}
}
numDevs = waveInGetNumDevs();
res = DEVENUM_CreateAMCategoryKey(&CLSID_AudioInputDeviceCategory);

View File

@ -29,7 +29,6 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE
{
IDS_DEVENUM_WODEFAULT "Default WaveOut Device"
IDS_DEVENUM_MIDEFAULT "Default MidiOut Device"
}

View File

@ -101,7 +101,6 @@ extern const WCHAR clsid_keyname[6] DECLSPEC_HIDDEN;
/**********************************************************************
* Resource IDs
*/
#define IDS_DEVENUM_WODEFAULT 9
#define IDS_DEVENUM_MIDEFAULT 10
#define IDS_DEVENUM_KSDEFAULT 11
#define IDS_DEVENUM_KS 12

View File

@ -1,5 +1,5 @@
TESTDLL = devenum.dll
IMPORTS = advapi32 dsound oleaut32 ole32
IMPORTS = advapi32 dsound oleaut32 ole32 winmm
C_SRCS = \
devenum.c

View File

@ -30,6 +30,7 @@
#include "vfwmsgs.h"
#include "mmsystem.h"
#include "dsound.h"
#include "mmddk.h"
DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
@ -37,11 +38,25 @@ static const WCHAR friendly_name[] = {'F','r','i','e','n','d','l','y','N','a','m
static const WCHAR fcc_handlerW[] = {'F','c','c','H','a','n','d','l','e','r',0};
static const WCHAR deviceW[] = {'@','d','e','v','i','c','e',':',0};
static const WCHAR clsidW[] = {'C','L','S','I','D',0};
static const WCHAR waveW[] = {'w','a','v','e',':',0};
static const WCHAR mrleW[] = {'m','r','l','e',0};
static const WCHAR swW[] = {'s','w',':',0};
static const WCHAR cmW[] = {'c','m',':',0};
static const WCHAR backslashW[] = {'\\',0};
static inline WCHAR *strchrW( const WCHAR *str, WCHAR ch )
{
do { if (*str == ch) return (WCHAR *)str; } while (*str++);
return NULL;
}
static inline int strncmpW( const WCHAR *str1, const WCHAR *str2, int n )
{
if (n <= 0) return 0;
while ((--n > 0) && *str1 && (*str1 == *str2)) { str1++; str2++; }
return *str1 - *str2;
}
static void test_devenum(IBindCtx *bind_ctx)
{
IEnumMoniker *enum_cat, *enum_moniker;
@ -618,6 +633,99 @@ static BOOL CALLBACK test_dsound(GUID *guid, const WCHAR *desc, const WCHAR *mod
return TRUE;
}
static void test_waveout(void)
{
static const WCHAR defaultW[] = {'D','e','f','a','u','l','t',' ','W','a','v','e','O','u','t',' ','D','e','v','i','c','e',0};
static const WCHAR waveoutidW[] = {'W','a','v','e','O','u','t','I','d',0};
IParseDisplayName *parser;
IPropertyBag *prop_bag;
IMoniker *mon;
WCHAR endpoint[200];
WAVEOUTCAPSW caps;
WCHAR buffer[200];
const WCHAR *name;
MMRESULT mmr;
int count, i;
VARIANT var;
HRESULT hr;
hr = CoCreateInstance(&CLSID_CDeviceMoniker, NULL, CLSCTX_INPROC, &IID_IParseDisplayName, (void **)&parser);
ok(hr == S_OK, "Failed to create ParseDisplayName: %#x\n", hr);
count = waveOutGetNumDevs();
for (i = -1; i < count; i++)
{
waveOutGetDevCapsW(i, &caps, sizeof(caps));
if (i == -1) /* WAVE_MAPPER */
name = defaultW;
else
name = caps.szPname;
lstrcpyW(buffer, deviceW);
lstrcatW(buffer, cmW);
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
lstrcatW(buffer, backslashW);
lstrcatW(buffer, name);
mon = check_display_name(parser, buffer);
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&prop_bag);
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
VariantInit(&var);
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND))
{
IPropertyBag_Release(prop_bag);
IMoniker_Release(mon);
/* Win8+ uses the endpoint GUID instead of the device name */
mmr = waveOutMessage((HWAVEOUT)(DWORD_PTR) i, DRV_QUERYFUNCTIONINSTANCEID,
(DWORD_PTR) endpoint, sizeof(endpoint));
ok(!mmr, "waveOutMessage failed: %u\n", mmr);
lstrcpyW(buffer, deviceW);
lstrcatW(buffer, cmW);
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
lstrcatW(buffer, backslashW);
lstrcatW(buffer, waveW);
lstrcatW(buffer, strchrW(endpoint, '}') + 2);
mon = check_display_name(parser, buffer);
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&prop_bag);
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
}
ok(hr == S_OK, "Read failed: %#x\n", hr);
ok(!strncmpW(name, V_BSTR(&var), lstrlenW(name)), "expected %s, got %s\n",
wine_dbgstr_w(name), wine_dbgstr_w(V_BSTR(&var)));
VariantClear(&var);
hr = IPropertyBag_Read(prop_bag, clsidW, &var, NULL);
ok(hr == S_OK, "Read failed: %#x\n", hr);
StringFromGUID2(&CLSID_AudioRender, buffer, CHARS_IN_GUID);
ok(!lstrcmpW(buffer, V_BSTR(&var)), "expected %s, got %s\n",
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
VariantClear(&var);
hr = IPropertyBag_Read(prop_bag, waveoutidW, &var, NULL);
ok(hr == S_OK, "Read failed: %#x\n", hr);
ok(V_I4(&var) == i, "expected %d, got %d\n", i, V_I4(&var));
IPropertyBag_Release(prop_bag);
IMoniker_Release(mon);
}
IParseDisplayName_Release(parser);
}
START_TEST(devenum)
{
IBindCtx *bind_ctx = NULL;
@ -643,6 +751,7 @@ START_TEST(devenum)
test_legacy_filter();
hr = DirectSoundEnumerateW(test_dsound, NULL);
ok(hr == S_OK, "got %#x\n", hr);
test_waveout();
CoUninitialize();
}

View File

@ -2933,10 +2933,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "ملاحظة : لا يمكن تصدير المفتاح الخاص لهذه الشهادة."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "الجهاز الافتراضي لإخراج الموجات"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "الجهاز الافتراضي لإخراج النوطات"

View File

@ -2924,10 +2924,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2959,10 +2959,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Nota: La clau privada d'aquest certificat no és exportable."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Dispositiu de WaveOut per defecte"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Dispositiu de MidiOut per defecte"

View File

@ -2885,10 +2885,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Poznámka: Soukromou část klíče tohoto certifikátu nelze exportovat."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Standardní zařízení WaveOut"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Standardní zařízení MidiOut"

View File

@ -2962,10 +2962,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Bemærk: Den private nøgle for dette certifikat kan ikke eksporteres."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Standard WaveOut Enhed"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Standard MidiOut Enhed"

View File

@ -2948,10 +2948,6 @@ msgstr ""
"Hinweis: Der private Schlüssel des Zertifikats kann nicht exportiert werden."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Standard WaveOut-Gerät"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Standard MidiOut-Gerät"

View File

@ -2871,10 +2871,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2942,10 +2942,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Note: The private key for this certificate is not exportable."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Default WaveOut Device"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Default MidiOut Device"

View File

@ -2942,10 +2942,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Note: The private key for this certificate is not exportable."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Default WaveOut Device"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Default MidiOut Device"

View File

@ -2865,10 +2865,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2971,10 +2971,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Nota: La clave privada de este certificado no es exportable."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Dispositivo WaveOut por defecto"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Dispositivo MidiOut por defecto"

View File

@ -2912,10 +2912,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2936,10 +2936,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Huomio: Tämän varmenteen yksityistä avainta ei voi viedä."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "WaveOut-oletuslaite"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "MidiOut-oletuslaite"

View File

@ -2963,10 +2963,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Note : la clé privée de ce certificat n'est pas exportable."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Périphérique WaveOut par défaut"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Périphérique MidiOut par défaut"

View File

@ -2935,11 +2935,6 @@ msgstr "לתשומת לבך: המפתח הפרטי לאישור זה אינו נ
#: devenum.rc:33
#, fuzzy
msgid "Default WaveOut Device"
msgstr "התקן ה־WaveOut כבררת מחדל"
#: devenum.rc:34
#, fuzzy
msgid "Default MidiOut Device"
msgstr "התקן ה־MidiOut כבררת מחדל"

View File

@ -2856,10 +2856,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2936,10 +2936,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Napomena: Privatan ključ za ovaj certifikat se ne može izvesti."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Podrazumijevani WaveOut uređaj"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Podrazumijevani MidiOut uređaj"

View File

@ -2976,10 +2976,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Üzenet: A tanúsítványhoz tartozó privát kulcsok nem exportálhatóak."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Alapértelmezett WaveOut eszköz"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Alapértelmezett MidiOut eszköz"

View File

@ -2986,10 +2986,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Nota: la chiave privata per questo certificato non è esportabile."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Dispositivo WaveOut predefinito"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Dispositivo MidiOut predefinito"

View File

@ -2936,10 +2936,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "注意: この証明書の秘密鍵はエクスポートできません。"
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "デフォルト WaveOut デバイス"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "デフォルト MidiOut デバイス"

View File

@ -2941,10 +2941,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "주의: 이 인증서를 위한 개인 키를 내보낼 수 없습니다."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "기본 웨이브 출력 장치"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "기본 미디출력 장치"

View File

@ -2945,10 +2945,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Pastaba: šio liudijimo privatusis raktas neišeksportuojamas."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Numatytasis „WaveOut“ įrenginys"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Numatytasis „MidiOut“ įrenginys"

View File

@ -2856,10 +2856,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2947,10 +2947,6 @@ msgstr ""
"Merk: Den private nøkkelen for dette sertifikatet kan ikke eksporteres."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Standard enhet for lydavspilling"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Standard enhet for MIDI-avspilling"

View File

@ -2970,10 +2970,6 @@ msgstr ""
"worden."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Standaardapparaat WaveOut"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Standaardapparaat MidiOut"

View File

@ -2856,10 +2856,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2856,10 +2856,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2959,10 +2959,6 @@ msgstr ""
"eksportu."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Standardowe urządzenie WaveOut"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Standardowe urządzenie Device"

View File

@ -2953,10 +2953,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Nota: A chave privada para este certificado não é exportável."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Dispositivo padrão WaveOut"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Dispositivo padrão MidiOut"

View File

@ -2964,10 +2964,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Nota: A chave privada para este certificado não é exportável."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Dispositivo pré-definido WaveOut"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Dispositivo pré-definido MidiOut"

View File

@ -2880,10 +2880,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2933,10 +2933,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Notă: Cheia privată pentru acest certificat nu este exportabilă."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Dispozitiv WaveOut implicit"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Dispozitiv MidiOut implicit"

View File

@ -2948,10 +2948,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Примечание: закрытый ключ этого сертификата не экспортируемый."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Звуковое устройство вывода по умолчанию"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Устройство вывода MIDI по умолчанию"

View File

@ -2890,10 +2890,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2980,10 +2980,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Opomba: zasebnega ključa za to potrdilo ni mogoče izvoziti."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Privzeta naprava WaveOut"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Privzeta naprava MidiOut"

View File

@ -2937,10 +2937,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Подразумевани WaveOut уређај"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Подразумевани MidiOut уређај"

View File

@ -3015,10 +3015,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Podrazumevani WaveOut uređaj"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Podrazumevani MidiOut uređaj"

View File

@ -2943,10 +2943,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Obs: Den privata nyckeln för detta certifikat kan inte exporteras."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Förvald WaveOut-enhet"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Förvald MidiOut-enhet"

View File

@ -2856,10 +2856,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2887,10 +2887,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2943,10 +2943,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "Not: Bu sertifika için özel anahtar aktarılamaz."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Varsayılan WaveOut Aygıtı"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Varsayılan MidiOut Aygıtı"

View File

@ -2944,10 +2944,6 @@ msgstr ""
"Увага: Приватний ключ для цього сертифікату не може бути експортований."
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "Звуковий пристрій виводу за замовчуванням"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "Пристрій виводу Midi за замовчуванням"

View File

@ -2900,10 +2900,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2828,10 +2828,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr ""
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr ""
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr ""

View File

@ -2894,10 +2894,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "注意:证书的私钥不可导出。"
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "默认 WaveOut 设备"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "默认 MidiOut 设备"

View File

@ -2906,10 +2906,6 @@ msgid "Note: The private key for this certificate is not exportable."
msgstr "註記:用於這個憑證的私鑰不可匯出。"
#: devenum.rc:33
msgid "Default WaveOut Device"
msgstr "預設 WaveOut 裝置"
#: devenum.rc:34
msgid "Default MidiOut Device"
msgstr "預設 MidiOut 裝置"