Home | Info | Community | Development | myReactOS | Contact Us
[static]
Definition at line 715 of file dmoreg.c.
Referenced by DMOGetTypes(), and IEnumDMO_fnNext().
{ HRESULT ret = S_OK; if (MSDMO_MAJOR_VERSION > 5) { DWORD len; len = requested * sizeof(DMO_PARTIAL_MEDIATYPE); ret = RegQueryValueExW(root, key, NULL, NULL, (LPBYTE) types, &len); *supplied = len / sizeof(DMO_PARTIAL_MEDIATYPE); } else { HKEY hkey; WCHAR szGuidKey[64]; *supplied = 0; if (ERROR_SUCCESS == RegOpenKeyExW(root, key, 0, KEY_READ, &hkey)) { int index = 0; WCHAR szNextKey[MAX_PATH]; DWORD len; LONG rc = ERROR_SUCCESS; while (rc == ERROR_SUCCESS) { len = MAX_PATH; rc = RegEnumKeyExW(hkey, index, szNextKey, &len, NULL, NULL, NULL, NULL); if (rc == ERROR_SUCCESS) { HKEY subk; int sub_index = 0; LONG rcs = ERROR_SUCCESS; WCHAR szSubKey[MAX_PATH]; RegOpenKeyExW(hkey, szNextKey, 0, KEY_READ, &subk); while (rcs == ERROR_SUCCESS) { len = MAX_PATH; rcs = RegEnumKeyExW(subk, sub_index, szSubKey, &len, NULL, NULL, NULL, NULL); if (rcs == ERROR_SUCCESS) { if (*supplied >= requested) { /* Bailing */ ret = S_FALSE; rc = ERROR_MORE_DATA; rcs = ERROR_MORE_DATA; break; } wsprintfW(szGuidKey,szToGuidFmt,szNextKey); CLSIDFromString(szGuidKey, &types[*supplied].type); wsprintfW(szGuidKey,szToGuidFmt,szSubKey); CLSIDFromString(szGuidKey, &types[*supplied].subtype); TRACE("Adding type %s subtype %s at index %i\n", debugstr_guid(&types[*supplied].type), debugstr_guid(&types[*supplied].subtype), *supplied); (*supplied)++; } sub_index++; } index++; } } RegCloseKey(hkey); } } return ret; }