66 'I',
'n',
't',
'e',
'r',
'f',
'a',
'c',
'e', 0 };
68 'B',
'a',
's',
'e',
'I',
'n',
't',
'e',
'r',
'f',
'a',
'c',
71 'N',
'u',
'm',
'M',
'e',
't',
'h',
'o',
'd',
's', 0 };
73 'P',
'r',
'o',
'x',
'y',
'S',
't',
'u',
'b',
'C',
'l',
's',
76 'P',
'r',
'o',
'x',
'y',
'S',
't',
'u',
'b',
'C',
'l',
's',
77 'i',
'd',
'3',
'2', 0 };
79 'C',
'L',
'S',
'I',
'D', 0 };
81 'C',
'u',
'r',
'V',
'e',
'r', 0 };
83 'I',
'n',
'P',
'r',
'o',
'c',
'S',
'e',
'r',
'v',
'e',
'r',
86 'I',
'n',
'P',
'r',
'o',
'c',
'S',
'e',
'r',
'v',
'e',
'r',
89 'P',
'r',
'o',
'g',
'I',
'D', 0 };
91 'V',
'e',
'r',
's',
'i',
'o',
'n',
'I',
'n',
'd',
'e',
'p',
92 'e',
'n',
'd',
'e',
'n',
't',
'P',
'r',
'o',
'g',
'I',
'D',
105 char const *
progid,
char const *curver_progid,
136 if (
list->base_iid) {
141 if (0 <=
list->num_methods) {
142 static WCHAR const fmt[3] = {
'%',
'd', 0 };
158 if (
list->ps_clsid) {
163 if (
list->ps_clsid32) {
172error_close_interface_key:
195 res = pRegDeleteTreeW(interface_key,
buf);
266 if (
list->viprogid) {
276 error_close_clsid_key:
280error_close_coclass_key:
303 res = pRegDeleteTreeW(coclass_key,
buf);
313 if (
list->viprogid) {
320error_close_coclass_key:
383 char const *curver_progid,
422error_close_progid_key:
431 0xB2F586D4, 0x5558, 0x49D1, {0xA0,0x7B,0x32,0x49,0xDB,0xBB,0x33,0xC2} };
434 { &CLSID_DirectSound,
435 "DirectSound Object",
440 { &CLSID_DirectSound8,
441 "DirectSound 8.0 Object",
447 "DirectSoundBufferConfig Object",
452 { &CLSID_DirectSoundCapture,
453 "DirectSoundCapture Object",
458 { &CLSID_DirectSoundCapture8,
459 "DirectSoundCapture 8.0 Object",
464 { &CLSID_DirectSoundFullDuplex,
465 "DirectSoundFullDuplex Object",
502 if (!advapi32)
return E_FAIL;
503 pRegDeleteTreeA = (
void *)
GetProcAddress(advapi32,
"RegDeleteTreeA");
504 pRegDeleteTreeW = (
void *)
GetProcAddress(advapi32,
"RegDeleteTreeW");
505 if (!pRegDeleteTreeA || !pRegDeleteTreeW)
return E_FAIL;
ACPI_SIZE strlen(const char *String)
#define RegCloseKey(hKey)
static WCHAR const interface_keyname[10]
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
static char const tmodel_valuename[]
static LONG register_key_defvalueW(HKEY base, WCHAR const *name, WCHAR const *value)
static GUID const CLSID_DirectSoundBufferConfig
static WCHAR const num_methods_keyname[11]
static HRESULT unregister_coclasses(struct regsvr_coclass const *list)
HRESULT WINAPI DllRegisterServer(void)
static HRESULT unregister_interfaces(struct regsvr_interface const *list)
static HRESULT register_interfaces(struct regsvr_interface const *list)
static LONG register_progid(WCHAR const *clsid, char const *progid, char const *curver_progid, char const *name, char const *extra)
static WCHAR const ips_keyname[13]
static WCHAR const ps_clsid_keyname[15]
static WCHAR const ips32_keyname[15]
static WCHAR const clsid_keyname[6]
static WCHAR const curver_keyname[7]
static WCHAR const base_ifa_keyname[14]
static LONG register_key_guid(HKEY base, WCHAR const *name, GUID const *guid)
HRESULT WINAPI DllUnregisterServer(void)
static WCHAR const progid_keyname[7]
static struct regsvr_interface const interface_list[]
static WCHAR const ps_clsid32_keyname[17]
static HRESULT register_coclasses(struct regsvr_coclass const *list)
static WCHAR const viprogid_keyname[25]
static LONG register_key_defvalueA(HKEY base, WCHAR const *name, char const *value)
static struct regsvr_coclass const coclass_list[]
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)
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
#define GetProcAddress(x, y)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
GLenum GLuint GLenum GLsizei const GLchar * buf
int WINAPI lstrlenA(LPCSTR lpString)
#define ERROR_FILE_NOT_FOUND
#define HRESULT_FROM_WIN32(x)
#define HKEY_CLASSES_ROOT