199{
200 WCHAR extensions_path[278] =
L"Media Type\\Extensions\\";
205
207 {
210
213 {
214 size =
sizeof(guidstr);
217
218 size =
sizeof(guidstr);
221
222 size =
sizeof(guidstr);
225
228 }
229 }
230
233 {
236 }
237
239 {
242 }
243
244 for (majortype_idx = 0; ; ++majortype_idx)
245 {
246 WCHAR majortype_str[39];
249
252 break;
253
254 if (!
wcscmp(majortype_str,
L"Extensions"))
255 continue;
256
258 continue;
259
260 for (subtype_idx = 0; ; ++subtype_idx)
261 {
265
268 break;
269
271 continue;
272
273 if (
RegQueryInfoKeyW(subtype_key,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL, &
max_size,
NULL,
NULL))
274 continue;
275
277
278 for (value_idx = 0; ; ++value_idx)
279 {
280
281 WCHAR value_name[14], source_clsid_str[39];
283
285 if (
RegEnumValueW(subtype_key, value_idx, value_name, &value_len,
287 break;
288
289 if (!
wcscmp(value_name,
L"Source Filter"))
290 continue;
291
293 continue;
294
295 if (majortype)
299 size =
sizeof(source_clsid_str);
303
310 }
311
314 }
315
317 }
318
322}
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define RegCloseKey(hKey)
static BOOL process_pattern_string(const WCHAR *pattern, HANDLE file)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
LONG WINAPI RegEnumValueW(_In_ HKEY hKey, _In_ DWORD index, _Out_ LPWSTR value, _Inout_ PDWORD val_count, _Reserved_ PDWORD reserved, _Out_opt_ PDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ PDWORD count)
LONG WINAPI RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
HRESULT WINAPI CLSIDFromString(LPCOLESTR str, LPCLSID clsid)
static const WCHAR *const ext[]
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
#define HKEY_CLASSES_ROOT