ReactOS  0.4.15-dev-2979-gfd8baca
mmsys.c File Reference
#include "mmsys.h"
#include <winsvc.h>
#include <shlwapi.h>
#include <debug.h>
#include <swenum.h>
#include <newdev.h>
#include <initguid.h>
#include <devguid.h>
Include dependency graph for mmsys.c:

Go to the source code of this file.

Classes

struct  EVENT_LABEL_ITEM
 
struct  SYSTEM_SCHEME_ITEM
 

Macros

#define UPDATEDRIVERFORPLUGANDPLAYDEVICES   "UpdateDriverForPlugAndPlayDevicesW"
 
#define NUM_APPLETS   (1)
 

Typedefs

typedef enum HWPAGE_DISPLAYMODEPHWPAGE_DISPLAYMODE
 
typedef BOOL(WINAPIUpdateDriverForPlugAndPlayDevicesProto) (IN OPTIONAL HWND hwndParent, IN LPCTSTR HardwareId, IN LPCTSTR FullInfPath, IN DWORD InstallFlags, OUT OPTIONAL PBOOL bRebootRequired)
 

Enumerations

enum  HWPAGE_DISPLAYMODE {
  HWPD_STANDARDLIST = 0, HWPD_LARGELIST, HWPD_MAX = HWPD_LARGELIST, HWPD_STANDARDLIST = 0,
  HWPD_LARGELIST, HWPD_MAX = HWPD_LARGELIST, HWPD_STANDARDLIST = 0, HWPD_LARGELIST,
  HWPD_MAX = HWPD_LARGELIST, HWPD_STANDARDLIST = 0, HWPD_LARGELIST, HWPD_MAX = HWPD_LARGELIST
}
 

Functions

HWND WINAPI DeviceCreateHardwarePageEx (HWND hWndParent, LPGUID lpGuids, UINT uNumberOfGuids, HWPAGE_DISPLAYMODE DisplayMode)
 
HRESULT WINAPI DllCanUnloadNow (VOID)
 
HRESULT WINAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 
VOID WINAPI ShowDriverSettingsAfterForkW (HWND hwnd, HINSTANCE hInstance, LPWSTR lpszCmd, int nCmdShow)
 
VOID WINAPI ShowDriverSettingsAfterForkA (HWND hwnd, HINSTANCE hInstance, LPSTR lpszCmd, int nCmdShow)
 
VOID WINAPI ShowDriverSettingsAfterFork (HWND hwnd, HINSTANCE hInstance, LPSTR lpszCmd, int nCmdShow)
 
BOOL WINAPI ShowMMCPLPropertySheet (HWND hwnd, LPCSTR pszPropSheet, LPSTR pszName, LPSTR pszCaption)
 
VOID WINAPI mmseRunOnceW (HWND hwnd, HINSTANCE hInstance, LPWSTR lpszCmd, int nCmdShow)
 
VOID WINAPI mmseRunOnceA (HWND hwnd, HINSTANCE hInstance, LPSTR lpszCmd, int nCmdShow)
 
VOID WINAPI mmseRunOnce (HWND hwnd, HINSTANCE hInstance, LPSTR lpszCmd, int nCmdShow)
 
BOOL WINAPI MediaPropPageProvider (LPVOID Info, LPFNADDPROPSHEETPAGE PropSheetPage, LPARAM lParam)
 
VOID InstallSystemSoundLabels (HKEY hKey)
 
VOID InstallSystemSoundSchemeNames (HKEY hKey)
 
VOID InstallDefaultSystemSoundScheme (HKEY hRootKey)
 
VOID InstallSystemSoundScheme ()
 
BOOL IsSoftwareBusPnpEnumeratorInstalled ()
 
DWORD InstallSoftwareBusPnpEnumerator (LPWSTR InfPath, LPCWSTR HardwareIdList)
 
DWORD MMSYS_InstallDevice (HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
 
DWORD MMSYS_RemoveDevice (HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
 
DWORD MMSYS_AllowInstallDevice (HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
 
DWORD MMSYS_SelectDevice (HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
 
DWORD MMSYS_DetectDevice (HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
 
DWORD MMSYS_SelectBestCompatDRV (HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
 
DWORD WINAPI MediaClassInstaller (IN DI_FUNCTION diFunction, IN HDEVINFO hDevInfo, IN PSP_DEVINFO_DATA pspDevInfoData OPTIONAL)
 
static INT_PTR CALLBACK HardwareDlgProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static int CALLBACK PropSheetProc (HWND hwndDlg, UINT uMsg, LPARAM lParam)
 
LONG APIENTRY MmSysApplet (HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
 
VOID InitPropSheetPage (PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
 
LONG CALLBACK CPlApplet (HWND hwndCpl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
 
VOID WINAPI ShowAudioPropertySheet (HWND hwnd, HINSTANCE hInstance, LPTSTR lpszCmd, int nCmdShow)
 
VOID WINAPI ShowFullControlPanel (HWND hwnd, HINSTANCE hInstance, LPSTR lpszCmd, int nCmdShow)
 
BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpReserved)
 

Variables

static EVENT_LABEL_ITEM EventLabels []
 
static SYSTEM_SCHEME_ITEM SystemSchemes []
 
HINSTANCE hApplet = 0
 
const APPLET Applets [NUM_APPLETS]
 

Macro Definition Documentation

◆ NUM_APPLETS

#define NUM_APPLETS   (1)

Definition at line 100 of file mmsys.c.

◆ UPDATEDRIVERFORPLUGANDPLAYDEVICES

#define UPDATEDRIVERFORPLUGANDPLAYDEVICES   "UpdateDriverForPlugAndPlayDevicesW"

Definition at line 99 of file mmsys.c.

Typedef Documentation

◆ PHWPAGE_DISPLAYMODE

◆ UpdateDriverForPlugAndPlayDevicesProto

typedef BOOL(WINAPI * UpdateDriverForPlugAndPlayDevicesProto) (IN OPTIONAL HWND hwndParent, IN LPCTSTR HardwareId, IN LPCTSTR FullInfPath, IN DWORD InstallFlags, OUT OPTIONAL PBOOL bRebootRequired)

Definition at line 92 of file mmsys.c.

Enumeration Type Documentation

◆ HWPAGE_DISPLAYMODE

Enumerator
HWPD_STANDARDLIST 
HWPD_LARGELIST 
HWPD_MAX 
HWPD_STANDARDLIST 
HWPD_LARGELIST 
HWPD_MAX 
HWPD_STANDARDLIST 
HWPD_LARGELIST 
HWPD_MAX 
HWPD_STANDARDLIST 
HWPD_LARGELIST 
HWPD_MAX 

Definition at line 23 of file mmsys.c.

24 {
Definition: mmsys.c:27
HWPAGE_DISPLAYMODE
Definition: mmsys.c:23
enum HWPAGE_DISPLAYMODE * PHWPAGE_DISPLAYMODE

Function Documentation

◆ CPlApplet()

LONG CALLBACK CPlApplet ( HWND  hwndCpl,
UINT  uMsg,
LPARAM  lParam1,
LPARAM  lParam2 
)

Definition at line 750 of file mmsys.c.

754 {
755  switch(uMsg)
756  {
757  case CPL_INIT:
758  return TRUE;
759 
760  case CPL_GETCOUNT:
761  return NUM_APPLETS;
762 
763  case CPL_INQUIRE:
764  {
765  CPLINFO *CPlInfo = (CPLINFO*)lParam2;
766  UINT uAppIndex = (UINT)lParam1;
767 
768  CPlInfo->lData = 0;
769  CPlInfo->idIcon = Applets[uAppIndex].idIcon;
770  CPlInfo->idName = Applets[uAppIndex].idName;
771  CPlInfo->idInfo = Applets[uAppIndex].idDescription;
772  break;
773  }
774 
775  case CPL_DBLCLK:
776  {
777  UINT uAppIndex = (UINT)lParam1;
778  Applets[uAppIndex].AppletProc(hwndCpl,
779  uMsg,
780  lParam1,
781  lParam2);
782  break;
783  }
784 
785  case CPL_STARTWPARMSW:
786  return Applets[(UINT)lParam1].AppletProc(hwndCpl, uMsg, lParam1, lParam2);
787  }
788 
789  return FALSE;
790 }
Definition: cpl.h:24
#define TRUE
Definition: types.h:120
int idName
Definition: hotplug.h:36
int idIcon
Definition: hotplug.h:35
int idInfo
Definition: cpl.h:27
int idIcon
Definition: cpl.h:25
int idDescription
Definition: hotplug.h:37
#define CPL_DBLCLK
Definition: cpl.h:16
#define FALSE
Definition: types.h:117
#define NUM_APPLETS
Definition: mmsys.c:100
const APPLET Applets[NUM_APPLETS]
Definition: mmsys.c:106
APPLET_PROC AppletProc
Definition: hotplug.h:38
#define CPL_STARTWPARMSW
Definition: cpl.h:21
#define CPL_INIT
Definition: cpl.h:12
#define CPL_INQUIRE
Definition: cpl.h:14
LONG_PTR lData
Definition: cpl.h:28
int idName
Definition: cpl.h:26
unsigned int UINT
Definition: ndis.h:50
#define CPL_GETCOUNT
Definition: cpl.h:13

◆ DeviceCreateHardwarePageEx()

HWND WINAPI DeviceCreateHardwarePageEx ( HWND  hWndParent,
LPGUID  lpGuids,
UINT  uNumberOfGuids,
HWPAGE_DISPLAYMODE  DisplayMode 
)

Referenced by HardwareDlgProc().

◆ DllCanUnloadNow()

HRESULT WINAPI DllCanUnloadNow ( VOID  )

Definition at line 113 of file mmsys.c.

114 {
115  DPRINT1("DllCanUnloadNow() stubs\n");
116  return S_OK;
117 }
#define S_OK
Definition: intsafe.h:52
#define DPRINT1
Definition: precomp.h:8

◆ DllGetClassObject()

HRESULT WINAPI DllGetClassObject ( REFCLSID  rclsid,
REFIID  riid,
LPVOID ppv 
)

Definition at line 120 of file mmsys.c.

123 {
124  DPRINT1("DllGetClassObject() stubs\n");
125  return S_OK;
126 }
#define S_OK
Definition: intsafe.h:52
#define DPRINT1
Definition: precomp.h:8

◆ DllMain()

BOOL WINAPI DllMain ( HINSTANCE  hinstDLL,
DWORD  dwReason,
LPVOID  lpReserved 
)

Definition at line 857 of file mmsys.c.

860 {
861  UNREFERENCED_PARAMETER(lpReserved);
862  switch(dwReason)
863  {
864  case DLL_PROCESS_ATTACH:
865  hApplet = hinstDLL;
866  DisableThreadLibraryCalls(hinstDLL);
867  break;
868  }
869 
870  return TRUE;
871 }
#define TRUE
Definition: types.h:120
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
DWORD dwReason
Definition: misc.cpp:154
HINSTANCE hApplet
Definition: mmsys.c:103

◆ HardwareDlgProc()

static INT_PTR CALLBACK HardwareDlgProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 647 of file mmsys.c.

651 {
654  switch(uMsg)
655  {
656  case WM_INITDIALOG:
657  {
658  GUID Guids[2];
659  Guids[0] = GUID_DEVCLASS_CDROM;
660  Guids[1] = GUID_DEVCLASS_MEDIA;
661 
662  /* Create the hardware page */
664  Guids,
665  sizeof(Guids) / sizeof(Guids[0]),
667  break;
668  }
669  }
670 
671  return FALSE;
672 }
HWND WINAPI DeviceCreateHardwarePageEx(HWND hWndParent, LPGUID lpGuids, UINT uNumberOfGuids, HWPAGE_DISPLAYMODE DisplayMode)
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
WPARAM wParam
Definition: combotst.c:138
#define FALSE
Definition: types.h:117
#define WM_INITDIALOG
Definition: winuser.h:1721
LPARAM lParam
Definition: combotst.c:139

Referenced by MmSysApplet(), and ShowFullControlPanel().

◆ InitPropSheetPage()

VOID InitPropSheetPage ( PROPSHEETPAGE psp,
WORD  idDlg,
DLGPROC  DlgProc 
)

Definition at line 735 of file mmsys.c.

738 {
739  ZeroMemory(psp, sizeof(PROPSHEETPAGE));
740  psp->dwSize = sizeof(PROPSHEETPAGE);
741  psp->dwFlags = PSP_DEFAULT;
742  psp->hInstance = hApplet;
743  psp->pszTemplate = MAKEINTRESOURCE(idDlg);
744  psp->pfnDlgProc = DlgProc;
745 }
WORD idDlg
Definition: desk.c:110
#define MAKEINTRESOURCE
Definition: winuser.h:591
#define ZeroMemory
Definition: winbase.h:1664
HINSTANCE hApplet
Definition: mmsys.c:103
#define PSP_DEFAULT
Definition: prsht.h:22
DLGPROC DlgProc
Definition: desk.c:111
#define PROPSHEETPAGE
Definition: prsht.h:389

Referenced by MmSysApplet(), ShowAudioPropertySheet(), and ShowFullControlPanel().

◆ InstallDefaultSystemSoundScheme()

VOID InstallDefaultSystemSoundScheme ( HKEY  hRootKey)

Definition at line 241 of file mmsys.c.

242 {
243  HKEY hKey, hSubKey;
245  UINT i = 0;
246 
248  return;
249 
250  RegSetValueExW(hKey, NULL, 0, REG_SZ, (LPBYTE)SystemSchemes[0].DefaultName, (wcslen(SystemSchemes[0].DefaultName)+1) * sizeof(WCHAR));
251  swprintf(Path, L"@mmsys.cpl,-%u", SystemSchemes[0].IconId);
252  RegSetValueExW(hKey, L"DispFileName", 0, REG_SZ, (LPBYTE)Path, (wcslen(Path)+1) * sizeof(WCHAR));
253 
254  do
255  {
257  {
258  HKEY hScheme;
259 
260  swprintf(Path, L"%%SystemRoot%%\\media\\%s", EventLabels[i].FileName);
261  if (RegCreateKeyExW(hSubKey, L".Current", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hScheme, NULL) == ERROR_SUCCESS)
262  {
263  RegSetValueExW(hScheme, NULL, 0, REG_EXPAND_SZ, (LPBYTE)Path, (wcslen(Path)+1) * sizeof(WCHAR));
264  RegCloseKey(hScheme);
265  }
266 
267  if (RegCreateKeyExW(hSubKey, L".Default", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hScheme, NULL) == ERROR_SUCCESS)
268  {
269  RegSetValueExW(hScheme, NULL, 0, REG_EXPAND_SZ, (LPBYTE)Path, (wcslen(Path)+1) * sizeof(WCHAR));
270  RegCloseKey(hScheme);
271  }
272  RegCloseKey(hSubKey);
273  }
274  i++;
275  }while(EventLabels[i].LabelName);
276 
277  RegCloseKey(hKey);
278 }
#define ERROR_SUCCESS
Definition: deptool.c:10
static EVENT_LABEL_ITEM EventLabels[]
Definition: mmsys.c:45
#define swprintf
Definition: precomp.h:40
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1091
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:53
#define REG_OPTION_NON_VOLATILE
Definition: nt_native.h:1057
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define MAX_PATH
Definition: compat.h:34
static const WCHAR L[]
Definition: oid.c:1250
PRTL_UNICODE_STRING_BUFFER Path
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
FxAutoRegKey hKey
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
#define REG_EXPAND_SZ
Definition: nt_native.h:1494
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static SYSTEM_SCHEME_ITEM SystemSchemes[]
Definition: mmsys.c:67
#define REG_SZ
Definition: layer.c:22

Referenced by InstallSystemSoundScheme().

◆ InstallSoftwareBusPnpEnumerator()

DWORD InstallSoftwareBusPnpEnumerator ( LPWSTR  InfPath,
LPCWSTR  HardwareIdList 
)

Definition at line 368 of file mmsys.c.

369 {
372  GUID ClassGUID;
373  TCHAR ClassName[50];
374  int Result = 0;
375  HMODULE hModule = NULL;
377  BOOL reboot = FALSE;
378  DWORD flags = 0;
379 
380  if (!SetupDiGetINFClass(InfPath,&ClassGUID,ClassName,sizeof(ClassName)/sizeof(ClassName[0]),0))
381  {
382  return -1;
383  }
384 
387  {
388  return -1;
389  }
390 
393  {
395  return -1;
396  }
397 
398  if(!SetupDiSetDeviceRegistryProperty(DeviceInfoSet, &DeviceInfoData, SPDRP_HARDWAREID, (LPBYTE)HardwareIdList, (lstrlen(HardwareIdList)+1+1)*sizeof(TCHAR)))
399  {
401  return -1;
402  }
403 
405  {
407  return -1;
408  }
409 
410  if(GetFileAttributes(InfPath)==(DWORD)(-1)) {
412  return -1;
413  }
414 
416  hModule = LoadLibraryW(L"newdev.dll");
417  if(!hModule) {
419  return -1;
420  }
421 
423  if(!UpdateProc)
424  {
427  return -1;
428  }
429 
430  if(!UpdateProc(NULL, HardwareIdList, InfPath, flags, &reboot))
431  {
434  return -1;
435  }
436 
439  return Result;
440 }
#define UPDATEDRIVERFORPLUGANDPLAYDEVICES
Definition: mmsys.c:99
#define INSTALLFLAG_FORCE
Definition: newdev.h:34
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
BOOL WINAPI SetupDiCallClassInstaller(DI_FUNCTION InstallFunction, HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData)
Definition: devinst.c:4020
BOOL(WINAPI * UpdateDriverForPlugAndPlayDevicesProto)(IN OPTIONAL HWND hwndParent, IN LPCTSTR HardwareId, IN LPCTSTR FullInfPath, IN DWORD InstallFlags, OUT OPTIONAL PBOOL bRebootRequired)
Definition: mmsys.c:92
unsigned char * LPBYTE
Definition: typedefs.h:53
#define FALSE
Definition: types.h:117
HDEVINFO WINAPI SetupDiCreateDeviceInfoList(const GUID *ClassGuid, HWND hwndParent)
Definition: devinst.c:1205
unsigned int BOOL
Definition: ntddk_ex.h:94
#define DIF_REGISTERDEVICE
Definition: setupapi.h:144
#define LoadLibraryW(x)
Definition: compat.h:606
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:426
static const WCHAR ClassGUID[]
Definition: devclass.c:30
struct _SP_DEVINFO_DATA SP_DEVINFO_DATA
char TCHAR
Definition: xmlstorage.h:189
#define FreeLibrary(x)
Definition: compat.h:607
#define SetupDiCreateDeviceInfo
Definition: setupapi.h:2574
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
Definition: devinst.c:2889
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData
Definition: setupapi.h:1523
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetupDiSetDeviceRegistryProperty
Definition: setupapi.h:2615
#define SPDRP_HARDWAREID
Definition: setupapi.h:503
GLbitfield flags
Definition: glext.h:7161
static const WCHAR L[]
Definition: oid.c:1250
#define GetFileAttributes
Definition: winbase.h:3671
#define lstrlen
Definition: winbase.h:3732
#define NULL
Definition: types.h:112
#define GetProcAddress(x, y)
Definition: compat.h:612
#define SetupDiGetINFClass
Definition: setupapi.h:2604
HMODULE hModule
Definition: animate.c:44
#define DICD_GENERATE_ID
Definition: setupapi.h:110

Referenced by MMSYS_InstallDevice().

◆ InstallSystemSoundLabels()

VOID InstallSystemSoundLabels ( HKEY  hKey)

Definition at line 203 of file mmsys.c.

204 {
205  UINT i = 0;
206  HKEY hSubKey;
207  WCHAR Buffer[40];
208 
209  do
210  {
212  {
213  RegSetValueExW(hSubKey, NULL, 0, REG_SZ, (LPBYTE)EventLabels[i].DefaultName, (wcslen(EventLabels[i].DefaultName)+1) * sizeof(WCHAR));
214  swprintf(Buffer, L"@mmsys.cpl,-%u", EventLabels[i].LocalizedResId);
215  RegSetValueExW(hSubKey, L"DispFileName", 0, REG_SZ, (LPBYTE)Buffer, (wcslen(Buffer)+1) * sizeof(WCHAR));
216 
217  RegCloseKey(hSubKey);
218  }
219  i++;
220  }while(EventLabels[i].LabelName);
221 }
#define ERROR_SUCCESS
Definition: deptool.c:10
static EVENT_LABEL_ITEM EventLabels[]
Definition: mmsys.c:45
#define swprintf
Definition: precomp.h:40
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1091
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:53
Definition: bufpool.h:45
#define REG_OPTION_NON_VOLATILE
Definition: nt_native.h:1057
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
__wchar_t WCHAR
Definition: xmlstorage.h:180
static const WCHAR L[]
Definition: oid.c:1250
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
FxAutoRegKey hKey
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define REG_SZ
Definition: layer.c:22

Referenced by InstallSystemSoundScheme().

◆ InstallSystemSoundScheme()

VOID InstallSystemSoundScheme ( )

Definition at line 282 of file mmsys.c.

283 {
284  HKEY hKey, hSubKey;
285  DWORD dwDisposition;
286 
288  return;
289 
290  if (RegCreateKeyExW(hKey, L"EventLabels", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hSubKey, NULL) == ERROR_SUCCESS)
291  {
292  InstallSystemSoundLabels(hSubKey);
293  RegCloseKey(hSubKey);
294  }
295 
296  if (RegCreateKeyExW(hKey, L"Schemes", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hSubKey, &dwDisposition) == ERROR_SUCCESS)
297  {
298  HKEY hNames;
299 
300  if (RegCreateKeyExW(hSubKey, L"Names", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hNames, NULL) == ERROR_SUCCESS)
301  {
303  RegCloseKey(hNames);
304  }
305 
306  if (RegCreateKeyExW(hSubKey, L"Apps", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hNames, NULL) == ERROR_SUCCESS)
307  {
309  RegCloseKey(hNames);
310  if (dwDisposition & REG_CREATED_NEW_KEY)
311  {
312  // FIXME
313  RegSetValueExW(hSubKey, NULL, 0, REG_SZ, (LPBYTE)L".Default", (wcslen(L".Default")+1) * sizeof(WCHAR));
314  }
315  }
316 
317  RegCloseKey(hSubKey);
318  }
319 
320  RegCloseKey(hKey);
321 }
VOID InstallSystemSoundSchemeNames(HKEY hKey)
Definition: mmsys.c:224
VOID InstallDefaultSystemSoundScheme(HKEY hRootKey)
Definition: mmsys.c:241
#define ERROR_SUCCESS
Definition: deptool.c:10
#define HKEY_CURRENT_USER
Definition: winreg.h:11
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1091
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:53
#define REG_CREATED_NEW_KEY
Definition: nt_native.h:1084
#define REG_OPTION_NON_VOLATILE
Definition: nt_native.h:1057
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
static const WCHAR L[]
Definition: oid.c:1250
FxAutoRegKey hKey
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
#define NULL
Definition: types.h:112
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
VOID InstallSystemSoundLabels(HKEY hKey)
Definition: mmsys.c:203
#define REG_SZ
Definition: layer.c:22

Referenced by MMSYS_InstallDevice().

◆ InstallSystemSoundSchemeNames()

VOID InstallSystemSoundSchemeNames ( HKEY  hKey)

Definition at line 224 of file mmsys.c.

225 {
226  UINT i = 0;
227  HKEY hSubKey;
228 
229  do
230  {
232  {
233  RegSetValueExW(hSubKey, NULL, 0, REG_SZ, (LPBYTE)SystemSchemes[i].DefaultName, (wcslen(SystemSchemes[i].DefaultName)+1) * sizeof(WCHAR));
234  RegCloseKey(hSubKey);
235  }
236  i++;
237  }while(SystemSchemes[i].LabelName);
238 }
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1091
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:53
#define REG_OPTION_NON_VOLATILE
Definition: nt_native.h:1057
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
__wchar_t WCHAR
Definition: xmlstorage.h:180
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
FxAutoRegKey hKey
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static SYSTEM_SCHEME_ITEM SystemSchemes[]
Definition: mmsys.c:67
#define REG_SZ
Definition: layer.c:22

Referenced by InstallSystemSoundScheme().

◆ IsSoftwareBusPnpEnumeratorInstalled()

BOOL IsSoftwareBusPnpEnumeratorInstalled ( )

Definition at line 324 of file mmsys.c.

325 {
326  HDEVINFO hDevInfo;
327  SP_DEVICE_INTERFACE_DATA DeviceInterfaceData;
329  PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData;
330 
332  if (!hDevInfo)
333  {
334  // failed
335  return FALSE;
336  }
337 
338  DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
339  if (!SetupDiEnumDeviceInterfaces(hDevInfo, NULL, &SWBusGuid, 0, &DeviceInterfaceData))
340  {
341  // failed
343  return FALSE;
344  }
345 
346  DeviceInterfaceDetailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA_W)HeapAlloc(GetProcessHeap(), 0, MAX_PATH * sizeof(WCHAR) + sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W));
347  if (!DeviceInterfaceDetailData)
348  {
349  // failed
351  return FALSE;
352  }
353 
354  DeviceInterfaceDetailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W);
355  if (!SetupDiGetDeviceInterfaceDetailW(hDevInfo, &DeviceInterfaceData, DeviceInterfaceDetailData,MAX_PATH * sizeof(WCHAR) + sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W), NULL, NULL))
356  {
357  // failed
358  HeapFree(GetProcessHeap(), 0, DeviceInterfaceDetailData);
360  return FALSE;
361  }
362  HeapFree(GetProcessHeap(), 0, DeviceInterfaceDetailData);
364  return TRUE;
365 }
HDEVINFO WINAPI SetupDiGetClassDevsW(CONST GUID *class, LPCWSTR enumstr, HWND parent, DWORD flags)
Definition: devinst.c:2288
#define TRUE
Definition: types.h:120
BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(HDEVINFO DeviceInfoSet, PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData, DWORD DeviceInterfaceDetailDataSize, PDWORD RequiredSize, PSP_DEVINFO_DATA DeviceInfoData)
Definition: devinst.c:3007
struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA_W
#define FALSE
Definition: types.h:117
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
Definition: devinst.c:2889
#define MAX_PATH
Definition: compat.h:34
struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W * PSP_DEVICE_INTERFACE_DETAIL_DATA_W
#define STATIC_BUSID_SoftwareDeviceEnumerator
Definition: swenum.h:25
BOOL WINAPI SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, CONST GUID *InterfaceClassGuid, DWORD MemberIndex, PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData)
Definition: devinst.c:2776
#define NULL
Definition: types.h:112
#define DIGCF_DEVICEINTERFACE
Definition: setupapi.h:174
struct _SP_DEVICE_INTERFACE_DATA SP_DEVICE_INTERFACE_DATA
#define HeapFree(x, y, z)
Definition: compat.h:594
#define DIGCF_PRESENT
Definition: setupapi.h:171

Referenced by MMSYS_InstallDevice().

◆ MediaClassInstaller()

DWORD WINAPI MediaClassInstaller ( IN DI_FUNCTION  diFunction,
IN HDEVINFO  hDevInfo,
IN PSP_DEVINFO_DATA pspDevInfoData  OPTIONAL 
)

Definition at line 621 of file mmsys.c.

624 {
625  switch (diFunction)
626  {
627  case DIF_INSTALLDEVICE:
628  return MMSYS_InstallDevice(hDevInfo, pspDevInfoData);
629  case DIF_REMOVE:
630  return MMSYS_RemoveDevice(hDevInfo, pspDevInfoData);
631  case DIF_ALLOW_INSTALL:
632  return MMSYS_AllowInstallDevice(hDevInfo, pspDevInfoData);
633  case DIF_SELECTDEVICE:
634  return MMSYS_SelectDevice(hDevInfo, pspDevInfoData);
635  case DIF_DETECT:
636  return MMSYS_DetectDevice(hDevInfo, pspDevInfoData);
638  return MMSYS_SelectBestCompatDRV(hDevInfo, pspDevInfoData);
639  default:
640  return ERROR_DI_DO_DEFAULT;
641  }
642 }
#define DIF_SELECTDEVICE
Definition: setupapi.h:120
DWORD MMSYS_SelectDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
Definition: mmsys.c:603
DWORD MMSYS_InstallDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
Definition: mmsys.c:443
#define DIF_INSTALLDEVICE
Definition: setupapi.h:121
DWORD MMSYS_DetectDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
Definition: mmsys.c:609
DWORD MMSYS_RemoveDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
Definition: mmsys.c:591
#define ERROR_DI_DO_DEFAULT
Definition: setupapi.h:305
#define DIF_ALLOW_INSTALL
Definition: setupapi.h:143
#define DIF_REMOVE
Definition: setupapi.h:124
#define DIF_SELECTBESTCOMPATDRV
Definition: setupapi.h:142
DWORD MMSYS_SelectBestCompatDRV(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
Definition: mmsys.c:615
DWORD MMSYS_AllowInstallDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pspDevInfoData)
Definition: mmsys.c:597
#define DIF_DETECT
Definition: setupapi.h:134

◆ MediaPropPageProvider()

BOOL WINAPI MediaPropPageProvider ( LPVOID  Info,
LPFNADDPROPSHEETPAGE  PropSheetPage,
LPARAM  lParam 
)

Definition at line 194 of file mmsys.c.

197 {
198  DPRINT1("MediaPropPageProvider() stubs\n");
199  return TRUE;
200 }
#define TRUE
Definition: types.h:120
#define DPRINT1
Definition: precomp.h:8

◆ mmseRunOnce()

VOID WINAPI mmseRunOnce ( HWND  hwnd,
HINSTANCE  hInstance,
LPSTR  lpszCmd,
int  nCmdShow 
)

Definition at line 185 of file mmsys.c.

189 {
190  DPRINT1("mmseRunOnce() stubs\n");
191 }
#define DPRINT1
Definition: precomp.h:8

◆ mmseRunOnceA()

VOID WINAPI mmseRunOnceA ( HWND  hwnd,
HINSTANCE  hInstance,
LPSTR  lpszCmd,
int  nCmdShow 
)

Definition at line 176 of file mmsys.c.

180 {
181  DPRINT1("mmseRunOnceA() stubs\n");
182 }
#define DPRINT1
Definition: precomp.h:8

◆ mmseRunOnceW()

VOID WINAPI mmseRunOnceW ( HWND  hwnd,
HINSTANCE  hInstance,
LPWSTR  lpszCmd,
int  nCmdShow 
)

Definition at line 167 of file mmsys.c.

171 {
172  DPRINT1("mmseRunOnceW() stubs\n");
173 }
#define DPRINT1
Definition: precomp.h:8

◆ MMSYS_AllowInstallDevice()

DWORD MMSYS_AllowInstallDevice ( HDEVINFO  hDevInfo,
PSP_DEVINFO_DATA  pspDevInfoData 
)

Definition at line 597 of file mmsys.c.

598 {
599  return ERROR_DI_DO_DEFAULT;
600 }
#define ERROR_DI_DO_DEFAULT
Definition: setupapi.h:305

Referenced by MediaClassInstaller().

◆ MMSYS_DetectDevice()

DWORD MMSYS_DetectDevice ( HDEVINFO  hDevInfo,
PSP_DEVINFO_DATA  pspDevInfoData 
)

Definition at line 609 of file mmsys.c.

610 {
611  return ERROR_DI_DO_DEFAULT;
612 }
#define ERROR_DI_DO_DEFAULT
Definition: setupapi.h:305

Referenced by MediaClassInstaller().

◆ MMSYS_InstallDevice()

DWORD MMSYS_InstallDevice ( HDEVINFO  hDevInfo,
PSP_DEVINFO_DATA  pspDevInfoData 
)

Definition at line 443 of file mmsys.c.

444 {
445  UINT Length;
446  LPWSTR pBuffer;
447  WCHAR szBuffer[MAX_PATH];
448  HINF hInf;
449  PVOID Context;
450  BOOL Result;
451  SC_HANDLE hSCManager, hService;
452  WCHAR WaveName[20];
453  HKEY hKey;
455  ULONG Index;
456 
457  if (!IsEqualIID(&pspDevInfoData->ClassGuid, &GUID_DEVCLASS_SOUND) &&
458  !IsEqualIID(&pspDevInfoData->ClassGuid, &GUID_DEVCLASS_MEDIA))
459  return ERROR_DI_DO_DEFAULT;
460 
461  Length = GetWindowsDirectoryW(szBuffer, MAX_PATH);
462  if (!Length || Length >= MAX_PATH - 14)
463  {
464  return ERROR_GEN_FAILURE;
465  }
466 
467  pBuffer = PathAddBackslashW(szBuffer);
468  if (!pBuffer)
469  {
470  return ERROR_GEN_FAILURE;
471  }
472 
473  wcscpy(pBuffer, L"inf\\audio.inf");
474 
475  hInf = SetupOpenInfFileW(szBuffer,
476  NULL,
478  NULL);
479 
480  if (hInf == INVALID_HANDLE_VALUE)
481  {
482  return ERROR_GEN_FAILURE;
483  }
484 
486  if (Context == NULL)
487  {
488  SetupCloseInfFile(hInf);
489  return ERROR_GEN_FAILURE;
490  }
491 
493  hInf,
494  L"AUDIO_Inst.NT",
495  SPINST_ALL,
496  NULL,
497  NULL,
500  Context,
501  NULL,
502  NULL);
503 
504  if (Result)
505  {
507  L"Audio_Inst.NT.Services",
508  0);
509  }
510 
512  SetupCloseInfFile(hInf);
513 
515  {
516  Length = GetWindowsDirectoryW(szBuffer, MAX_PATH);
517  if (!Length || Length >= MAX_PATH - 14)
518  {
519  return ERROR_GEN_FAILURE;
520  }
521 
522  pBuffer = PathAddBackslashW(szBuffer);
523  if (!pBuffer)
524  {
525  return ERROR_GEN_FAILURE;
526  }
527 
528  wcscpy(pBuffer, L"inf\\machine.inf");
529  InstallSoftwareBusPnpEnumerator(szBuffer, L"ROOT\\SWENUM\0");
530  }
531 
533  if (!hSCManager)
534  {
535  return ERROR_DI_DO_DEFAULT;
536  }
537 
538  hService = OpenService(hSCManager, L"AudioSrv", SERVICE_ALL_ACCESS);
539  if (hService)
540  {
541  /* Make AudioSrv start automatically */
543 
544  StartService(hService, 0, NULL);
545  CloseServiceHandle(hService);
546  }
548 
549  if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Drivers32", 0, GENERIC_READ | GENERIC_WRITE, &hKey) == ERROR_SUCCESS)
550  {
551  szBuffer[Length] = '\0';
552  pBuffer = PathAddBackslashW(szBuffer);
553  wcscpy(pBuffer, L"system32\\wdmaud.drv");
554 
555  for(Index = 1; Index <= 4; Index++)
556  {
557  swprintf(WaveName, L"wave%u", Index);
558  if (RegQueryValueExW(hKey, WaveName, 0, NULL, NULL, &BufferSize) != ERROR_MORE_DATA)
559  {
560  /* Store new audio driver entry */
561  RegSetValueExW(hKey, WaveName, 0, REG_SZ, (LPBYTE)szBuffer, (wcslen(szBuffer)+1) * sizeof(WCHAR));
562  break;
563  }
564  else
565  {
567  BufferSize = sizeof(Buffer);
568 
569  if (RegQueryValueExW(hKey, WaveName, 0, NULL, (LPBYTE)Buffer, &BufferSize) == ERROR_SUCCESS)
570  {
571  /* Make sure the buffer is zero terminated */
572  Buffer[MAX_PATH-1] = L'\0';
573 
574  if (!wcsicmp(Buffer, szBuffer))
575  {
576  /* An entry already exists */
577  break;
578  }
579  }
580  }
581  }
582  RegCloseKey(hKey);
583  }
585 
586  return ERROR_DI_DO_DEFAULT;
587 
588 }
#define StartService
Definition: winsvc.h:585
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define INF_STYLE_WIN4
Definition: infsupp.h:41
#define ERROR_SUCCESS
Definition: deptool.c:10
#define SC_MANAGER_CONNECT
Definition: winsvc.h:14
IN BOOLEAN OUT PSTR Buffer
Definition: progress.h:34
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
#define SERVICE_ALL_ACCESS
Definition: winsvc.h:62
#define swprintf
Definition: precomp.h:40
HINF WINAPI SetupOpenInfFileW(PCWSTR name, PCWSTR class, DWORD style, UINT *error)
Definition: parser.c:1229
#define OpenService
Definition: winsvc.h:576
VOID WINAPI SetupCloseInfFile(IN HINF InfHandle)
Definition: infsupp.c:43
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
Definition: path.c:2351
#define SERVICE_NO_CHANGE
Definition: winsvc.h:20
#define ChangeServiceConfig
Definition: winsvc.h:567
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:53
#define SP_COPY_NEWER
Definition: setupapi.h:473
LPWSTR WINAPI PathAddBackslashW(LPWSTR lpszPath)
Definition: path.c:294
unsigned int BOOL
Definition: ntddk_ex.h:94
BOOL IsSoftwareBusPnpEnumeratorInstalled()
Definition: mmsys.c:324
#define GENERIC_WRITE
Definition: nt_native.h:90
BOOL WINAPI CloseServiceHandle(SC_HANDLE hSCObject)
Definition: scm.c:580
PVOID pBuffer
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:426
Definition: bufpool.h:45
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
#define OpenSCManager
Definition: winsvc.h:575
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4116
__wchar_t WCHAR
Definition: xmlstorage.h:180
_In_ WDFCOLLECTION _In_ ULONG Index
#define MAX_PATH
Definition: compat.h:34
unsigned long DWORD
Definition: ntddk_ex.h:95
#define wcsicmp
Definition: compat.h:15
BOOL WINAPI SetupInstallFromInfSectionW(HWND owner, HINF hinf, PCWSTR section, UINT flags, HKEY key_root, PCWSTR src_root, UINT copy_flags, PSP_FILE_CALLBACK_W callback, PVOID context, HDEVINFO devinfo, PSP_DEVINFO_DATA devinfo_data)
Definition: install.c:1327
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
static const WCHAR L[]
Definition: oid.c:1250
UINT WINAPI SetupDefaultQueueCallbackW(PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2)
Definition: queue.c:1777
void WINAPI SetupTermDefaultQueueCallback(PVOID context)
Definition: queue.c:1704
#define SPINST_ALL
Definition: setupapi.h:596
#define GENERIC_READ
Definition: compat.h:135
VOID InstallSystemSoundScheme()
Definition: mmsys.c:282
SC_HANDLE hSCManager
Definition: sc.c:12
#define ERROR_MORE_DATA
Definition: dderror.h:13
BOOL WINAPI SetupInstallServicesFromInfSectionW(HINF Inf, PCWSTR SectionName, DWORD Flags)
Definition: install.c:1612
FxAutoRegKey hKey
PVOID WINAPI SetupInitDefaultQueueCallback(HWND owner)
Definition: queue.c:1677
DWORD InstallSoftwareBusPnpEnumerator(LPWSTR InfPath, LPCWSTR HardwareIdList)
Definition: mmsys.c:368
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define SERVICE_AUTO_START
Definition: cmtypes.h:977
#define ERROR_DI_DO_DEFAULT
Definition: setupapi.h:305
struct tagContext Context
Definition: acpixf.h:1034
unsigned int ULONG
Definition: retypes.h:1
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3366
#define ERROR_GEN_FAILURE
Definition: winerror.h:134
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define BufferSize
Definition: mmc.h:75
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:251
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define REG_SZ
Definition: layer.c:22

Referenced by MediaClassInstaller().

◆ MMSYS_RemoveDevice()

DWORD MMSYS_RemoveDevice ( HDEVINFO  hDevInfo,
PSP_DEVINFO_DATA  pspDevInfoData 
)

Definition at line 591 of file mmsys.c.

592 {
593  return ERROR_DI_DO_DEFAULT;
594 }
#define ERROR_DI_DO_DEFAULT
Definition: setupapi.h:305

Referenced by MediaClassInstaller().

◆ MMSYS_SelectBestCompatDRV()

DWORD MMSYS_SelectBestCompatDRV ( HDEVINFO  hDevInfo,
PSP_DEVINFO_DATA  pspDevInfoData 
)

Definition at line 615 of file mmsys.c.

616 {
617  return ERROR_DI_DO_DEFAULT;
618 }
#define ERROR_DI_DO_DEFAULT
Definition: setupapi.h:305

Referenced by MediaClassInstaller().

◆ MMSYS_SelectDevice()

DWORD MMSYS_SelectDevice ( HDEVINFO  hDevInfo,
PSP_DEVINFO_DATA  pspDevInfoData 
)

Definition at line 603 of file mmsys.c.

604 {
605  return ERROR_DI_DO_DEFAULT;
606 }
#define ERROR_DI_DO_DEFAULT
Definition: setupapi.h:305

Referenced by MediaClassInstaller().

◆ MmSysApplet()

LONG APIENTRY MmSysApplet ( HWND  hwnd,
UINT  uMsg,
LPARAM  wParam,
LPARAM  lParam 
)

Definition at line 692 of file mmsys.c.

696 {
697  PROPSHEETPAGE psp[5];
698  PROPSHEETHEADER psh; // = { 0 };
699  TCHAR Caption[256];
700  INT nPage = 0;
701 
705 
706  if (uMsg == CPL_STARTWPARMSW && lParam != 0)
707  nPage = _wtoi((PWSTR)lParam);
708 
709  LoadString(hApplet, IDS_CPLNAME, Caption, _countof(Caption));
710 
711  psh.dwSize = sizeof(PROPSHEETHEADER);
713  psh.hwndParent = hwnd;
714  psh.hInstance = hApplet;
715  psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLICON);
716  psh.pszCaption = Caption;
717  psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
718  psh.nStartPage = 0;
719  psh.ppsp = psp;
720  psh.pfnCallback = PropSheetProc;
721 
727 
728  if (nPage != 0 && nPage <= psh.nPages)
729  psh.nStartPage = nPage;
730 
731  return (LONG)(PropertySheet(&psh) != -1);
732 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
INT_PTR CALLBACK AudioDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: audio.c:241
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
uint16_t * PWSTR
Definition: typedefs.h:56
_Check_return_ _CRTIMP int __cdecl _wtoi(_In_z_ const wchar_t *_Str)
#define IDD_VOLUME
Definition: resource.h:19
static int CALLBACK PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam)
Definition: mmsys.c:675
VOID InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
Definition: mmsys.c:735
#define PSH_USECALLBACK
Definition: prsht.h:48
int32_t INT
Definition: typedefs.h:58
WPARAM wParam
Definition: combotst.c:138
#define IDD_AUDIO
Definition: resource.h:21
#define IDS_CPLNAME
Definition: resource.h:8
#define PSH_USEICONID
Definition: prsht.h:42
long LONG
Definition: pedump.c:60
#define PROPSHEETHEADER
Definition: prsht.h:392
HINSTANCE hApplet
Definition: mmsys.c:103
INT_PTR CALLBACK SoundsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: sounds.c:1091
char TCHAR
Definition: xmlstorage.h:189
#define PSH_PROPTITLE
Definition: prsht.h:40
#define _countof(array)
Definition: sndvol32.h:68
#define IDD_HARDWARE
Definition: resource.h:28
#define IDI_CPLICON
Definition: resource.h:4
#define CPL_STARTWPARMSW
Definition: cpl.h:21
#define IDD_SOUNDS
Definition: resource.h:20
#define IDD_VOICE
Definition: resource.h:22
#define PSH_PROPSHEETPAGE
Definition: prsht.h:43
INT_PTR CALLBACK VoiceDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: voice.c:15
#define PropertySheet
Definition: prsht.h:400
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
static INT_PTR CALLBACK HardwareDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: mmsys.c:647
LPARAM lParam
Definition: combotst.c:139
#define LoadString
Definition: winuser.h:5794
INT_PTR CALLBACK VolumeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: volume.c:417
#define PROPSHEETPAGE
Definition: prsht.h:389

◆ PropSheetProc()

static int CALLBACK PropSheetProc ( HWND  hwndDlg,
UINT  uMsg,
LPARAM  lParam 
)
static

Definition at line 675 of file mmsys.c.

676 {
677  // NOTE: This callback is needed to set large icon correctly.
678  HICON hIcon;
679  switch (uMsg)
680  {
681  case PSCB_INITIALIZED:
682  {
684  SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
685  break;
686  }
687  }
688  return 0;
689 }
static HICON
Definition: imagelist.c:84
LONG_PTR LPARAM
Definition: windef.h:208
HINSTANCE hApplet
Definition: mmsys.c:103
#define IDI_CPLICON
Definition: resource.h:4
#define PSCB_INITIALIZED
Definition: prsht.h:75
HICON hIcon
Definition: msconfig.c:44
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2044
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define ICON_BIG
Definition: tnclass.cpp:51

Referenced by MmSysApplet(), ShowAudioPropertySheet(), and ShowFullControlPanel().

◆ ShowAudioPropertySheet()

VOID WINAPI ShowAudioPropertySheet ( HWND  hwnd,
HINSTANCE  hInstance,
LPTSTR  lpszCmd,
int  nCmdShow 
)

Definition at line 793 of file mmsys.c.

797 {
798  PROPSHEETPAGE psp[1];
799  PROPSHEETHEADER psh;
800  TCHAR Caption[256];
801 
802  DPRINT("ShowAudioPropertySheet()\n");
803 
804  LoadString(hApplet, IDS_CPLNAME, Caption, _countof(Caption));
805 
806  psh.dwSize = sizeof(PROPSHEETHEADER);
808  psh.hwndParent = hwnd;
809  psh.hInstance = hInstance;
810  psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLICON);
811  psh.pszCaption = Caption;
812  psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
813  psh.nStartPage = 0;
814  psh.ppsp = psp;
815  psh.pfnCallback = PropSheetProc;
816 
818 
819  PropertySheet(&psh);
820 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
INT_PTR CALLBACK AudioDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: audio.c:241
static int CALLBACK PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam)
Definition: mmsys.c:675
VOID InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
Definition: mmsys.c:735
#define PSH_USECALLBACK
Definition: prsht.h:48
#define IDD_AUDIO
Definition: resource.h:21
HINSTANCE hInstance
Definition: charmap.c:20
#define IDS_CPLNAME
Definition: resource.h:8
#define PSH_USEICONID
Definition: prsht.h:42
#define PROPSHEETHEADER
Definition: prsht.h:392
HINSTANCE hApplet
Definition: mmsys.c:103
char TCHAR
Definition: xmlstorage.h:189
#define PSH_PROPTITLE
Definition: prsht.h:40
#define _countof(array)
Definition: sndvol32.h:68
#define IDI_CPLICON
Definition: resource.h:4
#define PSH_PROPSHEETPAGE
Definition: prsht.h:43
#define PropertySheet
Definition: prsht.h:400
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define DPRINT
Definition: sndvol32.h:71
#define LoadString
Definition: winuser.h:5794
#define PROPSHEETPAGE
Definition: prsht.h:389

◆ ShowDriverSettingsAfterFork()

VOID WINAPI ShowDriverSettingsAfterFork ( HWND  hwnd,
HINSTANCE  hInstance,
LPSTR  lpszCmd,
int  nCmdShow 
)

Definition at line 148 of file mmsys.c.

152 {
153  DPRINT1("ShowDriverSettingsAfterFork() stubs\n");
154 }
#define DPRINT1
Definition: precomp.h:8

◆ ShowDriverSettingsAfterForkA()

VOID WINAPI ShowDriverSettingsAfterForkA ( HWND  hwnd,
HINSTANCE  hInstance,
LPSTR  lpszCmd,
int  nCmdShow 
)

Definition at line 139 of file mmsys.c.

143 {
144  DPRINT1("ShowDriverSettingsAfterForkA() stubs\n");
145 }
#define DPRINT1
Definition: precomp.h:8

◆ ShowDriverSettingsAfterForkW()

VOID WINAPI ShowDriverSettingsAfterForkW ( HWND  hwnd,
HINSTANCE  hInstance,
LPWSTR  lpszCmd,
int  nCmdShow 
)

Definition at line 130 of file mmsys.c.

134 {
135  DPRINT1("ShowDriverSettingsAfterForkW() stubs\n");
136 }
#define DPRINT1
Definition: precomp.h:8

◆ ShowFullControlPanel()

VOID WINAPI ShowFullControlPanel ( HWND  hwnd,
HINSTANCE  hInstance,
LPSTR  lpszCmd,
int  nCmdShow 
)

Definition at line 823 of file mmsys.c.

827 {
828  PROPSHEETPAGE psp[5];
829  PROPSHEETHEADER psh;
830  TCHAR Caption[256];
831 
832  DPRINT("ShowFullControlPanel()\n");
833 
834  LoadString(hApplet, IDS_CPLNAME, Caption, _countof(Caption));
835 
836  psh.dwSize = sizeof(PROPSHEETHEADER);
838  psh.hwndParent = hwnd;
839  psh.hInstance = hInstance;
840  psh.pszIcon = MAKEINTRESOURCEW(IDI_CPLICON);
841  psh.pszCaption = Caption;
842  psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
843  psh.nStartPage = 0;
844  psh.ppsp = psp;
845  psh.pfnCallback = PropSheetProc;
846 
852 
853  PropertySheet(&psh);
854 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
INT_PTR CALLBACK AudioDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: audio.c:241
#define IDD_VOLUME
Definition: resource.h:19
static int CALLBACK PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam)
Definition: mmsys.c:675
VOID InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
Definition: mmsys.c:735
#define PSH_USECALLBACK
Definition: prsht.h:48
#define IDD_AUDIO
Definition: resource.h:21
HINSTANCE hInstance
Definition: charmap.c:20
#define IDS_CPLNAME
Definition: resource.h:8
#define PSH_USEICONID
Definition: prsht.h:42
#define PROPSHEETHEADER
Definition: prsht.h:392
HINSTANCE hApplet
Definition: mmsys.c:103
INT_PTR CALLBACK SoundsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: sounds.c:1091
char TCHAR
Definition: xmlstorage.h:189
#define PSH_PROPTITLE
Definition: prsht.h:40
#define _countof(array)
Definition: sndvol32.h:68
#define IDD_HARDWARE
Definition: resource.h:28
#define IDI_CPLICON
Definition: resource.h:4
#define IDD_SOUNDS
Definition: resource.h:20
#define IDD_VOICE
Definition: resource.h:22
#define PSH_PROPSHEETPAGE
Definition: prsht.h:43
INT_PTR CALLBACK VoiceDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: voice.c:15
#define PropertySheet
Definition: prsht.h:400
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
static INT_PTR CALLBACK HardwareDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: mmsys.c:647
#define DPRINT
Definition: sndvol32.h:71
#define LoadString
Definition: winuser.h:5794
INT_PTR CALLBACK VolumeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: volume.c:417
#define PROPSHEETPAGE
Definition: prsht.h:389

◆ ShowMMCPLPropertySheet()

BOOL WINAPI ShowMMCPLPropertySheet ( HWND  hwnd,
LPCSTR  pszPropSheet,
LPSTR  pszName,
LPSTR  pszCaption 
)

Definition at line 157 of file mmsys.c.

161 {
162  DPRINT1("ShowMMCPLPropertySheet() stubs\n");
163  return TRUE;
164 }
#define TRUE
Definition: types.h:120
#define DPRINT1
Definition: precomp.h:8

Variable Documentation

◆ Applets

Initial value:
=
{
}
LONG APIENTRY MmSysApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
Definition: mmsys.c:692
#define IDS_CPLNAME
Definition: resource.h:8
#define IDS_CPLDESCRIPTION
Definition: resource.h:9
#define IDI_CPLICON
Definition: resource.h:4

Definition at line 106 of file mmsys.c.

Referenced by CPlApplet().

◆ EventLabels

EVENT_LABEL_ITEM EventLabels[]
static
Initial value:
=
{
{
L"WindowsLogon",
L"ReactOS Logon",
L"ReactOS_Logon.wav"
},
{
L"WindowsLogoff",
L"ReactOS Logoff",
L"ReactOS_Logoff.wav"
},
{
0,
}
}
#define IDS_REACTOS_LOGOFF
Definition: resource.h:81
static const WCHAR L[]
Definition: oid.c:1250
#define IDS_REACTOS_LOGON
Definition: resource.h:82
#define NULL
Definition: types.h:112

Definition at line 45 of file mmsys.c.

Referenced by InstallDefaultSystemSoundScheme(), and InstallSystemSoundLabels().

◆ hApplet

◆ SystemSchemes

SYSTEM_SCHEME_ITEM SystemSchemes[]
static
Initial value:
=
{
{
L".Default",
L"ReactOS Standard",
},
{
L".None",
L"No Sounds",
-1
},
{
}
}
#define IDS_REACTOS_DEFAULT_SCHEME
Definition: resource.h:83
static const WCHAR L[]
Definition: oid.c:1250
#define NULL
Definition: types.h:112

Definition at line 67 of file mmsys.c.

Referenced by InstallDefaultSystemSoundScheme(), and InstallSystemSoundSchemeNames().