"Vincent Povirk" vincent@codeweavers.com writes:
+HRESULT register_classes(void) +{
- int i;
- HKEY clsid_key, ips32_key;
- LONG res=0;
- HRESULT hr=S_OK;
- static const WCHAR inprocserver32W[] = {'I','n','P','r','o','c','S','e','r','v','e','r','3','2',0};
- for (i=0; wic_classes[i].classid; i++)
- {
hr = get_clsid_key(wic_classes[i].classid, KEY_READ|KEY_WRITE, &clsid_key);
if (!SUCCEEDED(hr)) break;
res = RegCreateKeyExW(clsid_key, inprocserver32W, 0, NULL, 0,
KEY_READ|KEY_WRITE, NULL, &ips32_key, NULL);
if (res == ERROR_SUCCESS)
{
res = RegSetValueExA(ips32_key, NULL, 0, REG_SZ, (CONST BYTE*)"windowscodecs.dll", lstrlenA("windowscodecs.dll") + 1);
if (res != ERROR_SUCCESS)
break;
res = RegSetValueExA(ips32_key, "ThreadingModel", 0, REG_SZ, (CONST BYTE*)"Apartment", lstrlenA("Apartment") + 1);
if (res != ERROR_SUCCESS)
break;
}
else
break;
RegCloseKey(clsid_key);
- }
- if (res != 0) hr = HRESULT_FROM_WIN32(res);
- return hr;
+}
Please copy the standard regsvr.c registration code instead.