cleanup a->w cross calls in advapi32/crypt.c

Dmitry Timoshkov dmitry at baikal.ru
Sun Aug 1 08:13:44 CDT 2004


"James Hawkins" <truiken at gmail.com> wrote:

> What is left to change?

> - DWORD keytype, type, len;
> + DWORD keytype, type, len, size;

Why do you need new 'size' variable? 'len' works fine.

> -  CRYPT_Free(keyname);
> -  r = RegQueryValueExA(key, "Name", NULL, &keytype, NULL, &len);
> -  if( r != ERROR_SUCCESS || !len || keytype != REG_SZ)
> +        CRYPT_Free(keyname);
> +        r = RegQueryValueExW(key, nameW, NULL, &keytype, NULL, &size);

Please do not change formatting here and everywhere else, use tab equal
to 8 spaces by default, not 4.

> - r = RegQueryValueExA(key, "Image Path", NULL, &keytype, NULL, &len);
> +    size = sizeof(DWORD);
> + r = RegQueryValueExW(key, imagePathW, NULL, &keytype, NULL, &size);

It was already explained. There are another similar cases.

Take into account that CryptEnumProvidersA/W, CryptEnumProviderTypesA/W,
CryptGetDefaultProviderA/W take number of bytes for in/out buffer in all
cases: when making cross calls to them and in internal implementation.

> - if (RegSetValueExA(hKey, "Name", 0, REG_SZ, pszProvName, strlen(pszProvName) +1))
> + if (RegSetValueExW(hKey, nameW, 0, REG_SZ, (LPBYTE)pszProvName, strlenW(pszProvName) +1))

Already was explained.

-- 
Dmitry.




More information about the wine-devel mailing list