* On Mon, 14 May 2007, Juan Lang wrote:
>
> +static const WCHAR Software_Publishing[] = {
> + 'S','o','f','t','w','a','r','e','\\',
> + 'M','i','c','r','o','s','o','f','t','\\',
> + 'W','i','n','d','o','w','s','\\',
> + 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
> + 'W','i','n','t','r','u','s','t','\\',
> + 'T','r','u','s','t',' ','P','r','o','v','i','d','e','r','s','\\',
> + 'S','o','f','t','w','a','r','e',' ',
> + 'P','u','b','l','i','s','h','i','n','g',0 };
> +static const WCHAR State[] = { 'S','t','a','t','e',0 };
> +
> /***********************************************************************
> * WintrustGetRegPolicyFlags (WINTRUST.@)
> */
> void WINAPI WintrustGetRegPolicyFlags( DWORD* pdwPolicyFlags )
> {
> - FIXME("%p\n", pdwPolicyFlags);
> + HKEY key;
> + LONG r;
> +
> + TRACE("%p\n", pdwPolicyFlags);
> +
> *pdwPolicyFlags = 0;
> + r = RegCreateKeyExW(HKEY_CURRENT_USER, Software_Publishing, 0, NULL, 0,
> + KEY_READ, NULL, &key, NULL);
> + if (!r)
> + {
> + DWORD size = sizeof(DWORD);
> +
> + r = RegQueryValueExW(key, State, NULL, NULL, (LPBYTE)pdwPolicyFlags,
> + &size);
> + RegCloseKey(key);
This function tries to open Software_Publishing key. And creates it, if
the key didn't exist, I suppose. It is absent in a clean $WINEPREFIX.
Hence 4 test failures:
$ wine dlls/wintrust/tests/wintrust_test.exe.so register
register.c:327: Test failed: RegOpenKeyEx failed: 2
register.c:331: Test failed: RegQueryValueEx failed: 6
register.c:334: Test failed: Didn't get expected flags
register.c:341: Test failed: Didn't get expected flags
register: 43 tests executed (0 marked as todo, 4 failures), 0 skipped.
During next run failures are gone, and I get this difference between two
registry dumps:
+[HKEY_USERS\S-1-5-4\Software\Microsoft\Windows\CurrentVersion\Wintrust]
+
+[HKEY_USERS\S-1-5-4\Software\Microsoft\Windows\CurrentVersion\Wintrust\Trust Providers]
+
+[HKEY_USERS\S-1-5-4\Software\Microsoft\Windows\CurrentVersion\Wintrust\Trust Providers\Software Publishing]
+"State"=dword:00023c00
So this key should be registered during wineprefix run at some point,
right?