Hi,
forgot to reply. Thanks for all your reviews, they have been all integrated in the latest submitted patch, which is OK (and working).
And the one that was to be fixed has been fixed (and pushed upstream already :-)).
Cheers,
On 02/08/2015 02:28 PM, Nikolay Sivov wrote:
On 08.02.2015 16:17, Pierre Schweitzer wrote:
On 08/02/2015 13:46, Nikolay Sivov wrote:
- if (MessageString)
- {
len = lstrlenA(MessageString) + 1;
msg = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
if (msg == NULL)
{
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
MultiByteToWideChar(CP_ACP, 0, MessageString, -1, msg, len);
- }
That's not how A->W conversion works, we have tons of examples for that.
Well.... http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/setupapi/query.c#l118
Feel free to point at some other location.
Yes, that one should be fixed too I suppose. Clean way is to call mbtowc twice, and first call would return a length of resulting WCHAR string.
OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW); if (!GetVersionExW(&OsVersionInfo)) return FALSE;
InitializeCriticalSection(&setuplog_critical); SETUPAPI_hInstance = hinstDLL; break; case DLL_PROCESS_DETACH: if (lpvReserved) break;
DeleteCriticalSection(&setuplog_critical); if (CABINET_hInstance) FreeLibrary(CABINET_hInstance); break;
You won't need these calls once you init it like the rest of Wine code does. Also what about closing files on DLL_PROCESS_DETACH?
I couldn't find any evidence that Windows does this. And they'll be closed as soon the process dies.
Yes, but it will leak every time you do LoadLibrary/FreeLibrary.