Nikolay Sivov : msdmo: Registry API functions don't return HRESULT codes.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Dec 29 15:42:42 CST 2014
Module: wine
Branch: master
Commit: 5c91d011bbdff0cac6535c866ef5498b1ddc42c7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5c91d011bbdff0cac6535c866ef5498b1ddc42c7
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Dec 29 00:13:56 2014 +0300
msdmo: Registry API functions don't return HRESULT codes.
---
dlls/msdmo/dmoreg.c | 83 +++++++++++++++++++++++++++++------------------------
1 file changed, 46 insertions(+), 37 deletions(-)
diff --git a/dlls/msdmo/dmoreg.c b/dlls/msdmo/dmoreg.c
index e8f67c5..77ddfa6 100644
--- a/dlls/msdmo/dmoreg.c
+++ b/dlls/msdmo/dmoreg.c
@@ -129,10 +129,11 @@ static BOOL IsMediaTypeEqual(const DMO_PARTIAL_MEDIATYPE* mt1, const DMO_PARTIAL
static HRESULT write_types(HKEY hkey, LPCWSTR name, const DMO_PARTIAL_MEDIATYPE* types, DWORD count)
{
- HRESULT hres = S_OK;
+ LONG ret;
+
if (MSDMO_MAJOR_VERSION > 5)
{
- hres = RegSetValueExW(hkey, name, 0, REG_BINARY, (const BYTE*) types,
+ ret = RegSetValueExW(hkey, name, 0, REG_BINARY, (const BYTE*) types,
count* sizeof(DMO_PARTIAL_MEDIATYPE));
}
else
@@ -141,15 +142,18 @@ static HRESULT write_types(HKEY hkey, LPCWSTR name, const DMO_PARTIAL_MEDIATYPE*
DWORD index = 0;
WCHAR szGuidKey[64];
- hres = RegCreateKeyExW(hkey, name, 0, NULL, REG_OPTION_NON_VOLATILE,
+ ret = RegCreateKeyExW(hkey, name, 0, NULL, REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL, &skey1, NULL);
+ if (ret)
+ return HRESULT_FROM_WIN32(ret);
+
while (index < count)
{
GUIDToString(szGuidKey,&types[index].type);
- hres = RegCreateKeyExW(skey1, szGuidKey, 0, NULL,
+ ret = RegCreateKeyExW(skey1, szGuidKey, 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &skey2, NULL);
GUIDToString(szGuidKey,&types[index].subtype);
- hres = RegCreateKeyExW(skey2, szGuidKey, 0, NULL,
+ ret = RegCreateKeyExW(skey2, szGuidKey, 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &skey3, NULL);
RegCloseKey(skey3);
RegCloseKey(skey2);
@@ -158,7 +162,7 @@ static HRESULT write_types(HKEY hkey, LPCWSTR name, const DMO_PARTIAL_MEDIATYPE*
RegCloseKey(skey1);
}
- return hres;
+ return HRESULT_FROM_WIN32(ret);
}
/***************************************************************
@@ -256,29 +260,29 @@ lend:
*/
HRESULT WINAPI DMOUnregister(REFCLSID clsidDMO, REFGUID guidCategory)
{
- HRESULT hres;
WCHAR szguid[64];
HKEY hrkey = 0;
HKEY hckey = 0;
+ LONG ret;
GUIDToString(szguid, clsidDMO);
TRACE("%s %p\n", debugstr_w(szguid), guidCategory);
- hres = RegOpenKeyExW(HKEY_CLASSES_ROOT, szDMORootKey, 0, KEY_WRITE, &hrkey);
- if (ERROR_SUCCESS != hres)
+ ret = RegOpenKeyExW(HKEY_CLASSES_ROOT, szDMORootKey, 0, KEY_WRITE, &hrkey);
+ if (ERROR_SUCCESS != ret)
goto lend;
- hres = RegDeleteKeyW(hrkey, szguid);
- if (ERROR_SUCCESS != hres)
+ ret = RegDeleteKeyW(hrkey, szguid);
+ if (ERROR_SUCCESS != ret)
goto lend;
- hres = RegOpenKeyExW(hrkey, szDMOCategories, 0, KEY_WRITE, &hckey);
- if (ERROR_SUCCESS != hres)
+ ret = RegOpenKeyExW(hrkey, szDMOCategories, 0, KEY_WRITE, &hckey);
+ if (ERROR_SUCCESS != ret)
goto lend;
- hres = RegDeleteKeyW(hckey, szguid);
- if (ERROR_SUCCESS != hres)
+ ret = RegDeleteKeyW(hckey, szguid);
+ if (ERROR_SUCCESS != ret)
goto lend;
lend:
@@ -287,7 +291,7 @@ lend:
if (hrkey)
RegCloseKey(hrkey);
- return hres;
+ return HRESULT_FROM_WIN32(ret);
}
@@ -299,27 +303,24 @@ lend:
HRESULT WINAPI DMOGetName(REFCLSID clsidDMO, WCHAR szName[])
{
WCHAR szguid[64];
- HRESULT hres;
HKEY hrkey = 0;
HKEY hkey = 0;
static const INT max_name_len = 80;
DWORD count;
+ LONG ret;
TRACE("%s\n", debugstr_guid(clsidDMO));
- hres = RegOpenKeyExW(HKEY_CLASSES_ROOT, szDMORootKey,
- 0, KEY_READ, &hrkey);
- if (ERROR_SUCCESS != hres)
+ ret = RegOpenKeyExW(HKEY_CLASSES_ROOT, szDMORootKey, 0, KEY_READ, &hrkey);
+ if (ERROR_SUCCESS != ret)
goto lend;
- hres = RegOpenKeyExW(hrkey, GUIDToString(szguid, clsidDMO),
- 0, KEY_READ, &hkey);
- if (ERROR_SUCCESS != hres)
+ ret = RegOpenKeyExW(hrkey, GUIDToString(szguid, clsidDMO), 0, KEY_READ, &hkey);
+ if (ERROR_SUCCESS != ret)
goto lend;
count = max_name_len * sizeof(WCHAR);
- hres = RegQueryValueExW(hkey, NULL, NULL, NULL,
- (LPBYTE) szName, &count);
+ ret = RegQueryValueExW(hkey, NULL, NULL, NULL, (LPBYTE) szName, &count);
TRACE(" szName=%s\n", debugstr_w(szName));
lend:
@@ -328,10 +329,9 @@ lend:
if (hkey)
RegCloseKey(hkey);
- return hres;
+ return HRESULT_FROM_WIN32(ret);
}
-
/**************************************************************************
* IEnumDMOImpl_Destructor
*/
@@ -506,6 +506,7 @@ static HRESULT WINAPI IEnumDMO_fnNext(
DWORD len;
UINT count = 0;
HRESULT hres = S_OK;
+ LONG ret;
IEnumDMOImpl *This = impl_from_IEnumDMO(iface);
@@ -519,17 +520,20 @@ static HRESULT WINAPI IEnumDMO_fnNext(
This->index++;
len = MAX_PATH;
- hres = RegEnumKeyExW(This->hkey, This->index, szNextKey, &len, NULL, NULL, NULL, &ft);
- if (hres != ERROR_SUCCESS)
+ ret = RegEnumKeyExW(This->hkey, This->index, szNextKey, &len, NULL, NULL, NULL, &ft);
+ if (ret != ERROR_SUCCESS)
+ {
+ hres = HRESULT_FROM_WIN32(ret);
break;
+ }
TRACE("found %s\n", debugstr_w(szNextKey));
if (!(This->dwFlags & DMO_ENUMF_INCLUDE_KEYED))
{
wsprintfW(szKey, szCat3Fmt, szDMORootKey, szNextKey, szDMOKeyed);
- hres = RegOpenKeyExW(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &hkey);
- if (ERROR_SUCCESS == hres)
+ ret = RegOpenKeyExW(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &hkey);
+ if (ERROR_SUCCESS == ret)
{
RegCloseKey(hkey);
/* Skip Keyed entries */
@@ -538,7 +542,7 @@ static HRESULT WINAPI IEnumDMO_fnNext(
}
wsprintfW(szKey, szCat2Fmt, szDMORootKey, szNextKey);
- hres = RegOpenKeyExW(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &hkey);
+ ret = RegOpenKeyExW(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &hkey);
if (This->pInTypes)
{
@@ -550,7 +554,7 @@ static HRESULT WINAPI IEnumDMO_fnNext(
sizeof(szValue)/sizeof(DMO_PARTIAL_MEDIATYPE),
(DMO_PARTIAL_MEDIATYPE*)szValue);
- if (ERROR_SUCCESS != hres)
+ if (FAILED(hres))
{
RegCloseKey(hkey);
continue;
@@ -587,7 +591,7 @@ static HRESULT WINAPI IEnumDMO_fnNext(
sizeof(szValue)/sizeof(DMO_PARTIAL_MEDIATYPE),
(DMO_PARTIAL_MEDIATYPE*)szValue);
- if (ERROR_SUCCESS != hres)
+ if (FAILED(hres))
{
RegCloseKey(hkey);
continue;
@@ -617,8 +621,8 @@ static HRESULT WINAPI IEnumDMO_fnNext(
/* Media object wasn't filtered so add it to return list */
Names[count] = NULL;
len = MAX_PATH * sizeof(WCHAR);
- hres = RegQueryValueExW(hkey, NULL, NULL, NULL, (LPBYTE) szValue, &len);
- if (ERROR_SUCCESS == hres)
+ ret = RegQueryValueExW(hkey, NULL, NULL, NULL, (LPBYTE)szValue, &len);
+ if (ERROR_SUCCESS == ret)
{
Names[count] = HeapAlloc(GetProcessHeap(), 0, (strlenW(szValue) + 1) * sizeof(WCHAR));
if (Names[count])
@@ -718,11 +722,16 @@ static const IEnumDMOVtbl edmovt =
HRESULT read_types(HKEY root, LPCWSTR key, ULONG *supplied, ULONG requested, DMO_PARTIAL_MEDIATYPE* types )
{
HRESULT ret = S_OK;
+
if (MSDMO_MAJOR_VERSION > 5)
{
DWORD len;
+ LONG rc;
+
len = requested * sizeof(DMO_PARTIAL_MEDIATYPE);
- ret = RegQueryValueExW(root, key, NULL, NULL, (LPBYTE) types, &len);
+ rc = RegQueryValueExW(root, key, NULL, NULL, (LPBYTE) types, &len);
+ ret = HRESULT_FROM_WIN32(rc);
+
*supplied = len / sizeof(DMO_PARTIAL_MEDIATYPE);
}
else
More information about the wine-cvs
mailing list