mirror of
https://github.com/reactos/reactos.git
synced 2025-08-01 18:53:05 +00:00
- Implement MediaClassInstaller for GUID_DEVCLASS_SOUND (install wdmaud / sysaudio service from audio.inf)
svn path=/trunk/; revision=39570
This commit is contained in:
parent
52d7398ad5
commit
b251557b6a
3 changed files with 67 additions and 0 deletions
|
@ -18,6 +18,7 @@
|
|||
#include <cpl.h>
|
||||
#include <tchar.h>
|
||||
#include <debug.h>
|
||||
#include <shlwapi.h>
|
||||
|
||||
#include "mmsys.h"
|
||||
#include "resource.h"
|
||||
|
@ -158,7 +159,71 @@ ShowFullControlPanel(HWND hwnd,
|
|||
DWORD
|
||||
MMSYS_InstallDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
|
||||
{
|
||||
UINT Length;
|
||||
LPWSTR pBuffer;
|
||||
WCHAR szBuffer[MAX_PATH];
|
||||
HINF hInf;
|
||||
PVOID Context;
|
||||
BOOL Result;
|
||||
|
||||
if (!IsEqualIID(&pspDevInfoData->ClassGuid, &GUID_DEVCLASS_SOUND))
|
||||
return ERROR_DI_DO_DEFAULT;
|
||||
|
||||
Length = GetWindowsDirectoryW(szBuffer, MAX_PATH);
|
||||
if (!Length || Length >= MAX_PATH - 14)
|
||||
{
|
||||
return ERROR_GEN_FAILURE;
|
||||
}
|
||||
|
||||
pBuffer = PathAddBackslashW(szBuffer);
|
||||
if (!pBuffer)
|
||||
{
|
||||
return ERROR_GEN_FAILURE;
|
||||
}
|
||||
|
||||
wcscpy(pBuffer, L"inf\\audio.inf");
|
||||
|
||||
hInf = SetupOpenInfFileW(szBuffer,
|
||||
NULL,
|
||||
INF_STYLE_WIN4,
|
||||
NULL);
|
||||
|
||||
if (hInf == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
return ERROR_GEN_FAILURE;
|
||||
}
|
||||
|
||||
Context = SetupInitDefaultQueueCallback(NULL);
|
||||
if (Context == NULL)
|
||||
{
|
||||
SetupCloseInfFile(hInf);
|
||||
return ERROR_GEN_FAILURE;
|
||||
}
|
||||
|
||||
Result = SetupInstallFromInfSectionW(NULL,
|
||||
hInf,
|
||||
L"AUDIO_Inst.NT",
|
||||
SPINST_ALL,
|
||||
NULL,
|
||||
NULL,
|
||||
SP_COPY_NEWER,
|
||||
SetupDefaultQueueCallbackW,
|
||||
Context,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
if (Result)
|
||||
{
|
||||
Result = SetupInstallServicesFromInfSectionW(hInf,
|
||||
L"Audio_Inst.NT.Services",
|
||||
0);
|
||||
}
|
||||
|
||||
SetupTermDefaultQueueCallback(Context);
|
||||
SetupCloseInfFile(hInf);
|
||||
|
||||
return ERROR_DI_DO_DEFAULT;
|
||||
|
||||
}
|
||||
|
||||
DWORD
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<library>advapi32</library>
|
||||
<library>shell32</library>
|
||||
<library>setupapi</library>
|
||||
<library>shlwapi</library>
|
||||
<file>mmsys.c</file>
|
||||
<file>sounds.c</file>
|
||||
<file>volume.c</file>
|
||||
|
|
|
@ -22,6 +22,7 @@ AddReg = AUDIOClass.NT.AddReg
|
|||
HKR, , , 0, %AUDIOClassName%
|
||||
HKR, , EnumPropPages32,0, "MmSys.Cpl,MediaPropPageProvider"
|
||||
HKR, , Icon, 0, "-51"
|
||||
HKR, , Installer32, 0, "MmSys.Cpl,MediaClassInstaller"
|
||||
|
||||
;-------------------------------- Audio installation ----------------------------------------
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue