On 02/22/2011 09:28 AM, Vitaly Perov wrote:
> Fixed possible hKey leak since last send
>
> + static const WCHAR user_printers_reg_key[] = { 'S','o','f','t','w','a','r','e','\\',
The actual key doesn't look like have anything to do with printers. Please
use variable name that more corresponds to the actual content of the
unicode string.
> + if (!res && !RegQueryValueExW(hKey, device, NULL, NULL, (LPBYTE) driver, &size))
> + {
> + TRACE("Get value from registry\n");
> + }
Message is not really helpful. And just hides empty if() case. It's better to
reverse logic to check for error and combine with the win.ini check. Something like:
if ((RegOpenKeyExW(HKEY_CURRENT_USER, user_printers_reg_key, 0, KEY_READ, &hKey) ||
RegQueryValueExW(hKey, device, NULL, NULL, (LPBYTE) driver, &size) &&
!GetProfileStringW(devicesW, device, empty_strW, driver, size))
> WARN("Unable to find %s in [devices] section of win.ini\n", debugstr_w(device));
This should also mention registry.
> + if (!res) RegCloseKey(hKey);
Instead of using res, initialize hKey to NULL and close it if it's not NULL. It's
more foolproof.
Vitaliy