On Fri, 5 Sep 2003, hatky wrote:
So should I make it uCommand as in msdn or leave it wcommand?
I'd change both to uCommand as per msdn.
WCHAR clsName[] = { 'M', 'S', '_', 'W', 'I',
'N', 'H', 'E', 'L', 'P', 0 }; hDest = FindWindowW(clsName, NULL);
Don't forget Robert's advice, use: static const WCHAR clsName[] ...
Ok, I get this but why don't we support Unicode literals? seems like it makes the code a mess and there will be another task to clean that up sometime...
Yes, it is inconvenient, but some Unix compilers don't support 16-bit Unicode literals, so we're stuck with that for the moment.
And the code goes like this:? INT len; LPSTR file;
^ LPWSTR
BOOL ret = FALSE; if (!lphelpFile) return WinHelpW( hWnd, NULL,
command, dwData );
len = MultiByteToWideChar( CP_ACP, 0, helpFile,
-1, NULL, 0, NULL, NULL ); if ((file = HeapAlloc( GetProcessHeap(), 0, len ))) { MultiByteToWideChar( CP_ACP, 0, helpFile, -1, file, len, NULL, NULL ); ret = WinHelpW( hWnd, file, command, dwData ); HeapFree( GetProcessHeap(), 0, file ); } return ret;
Wait, if I change lpHelpFile to Unicode then I should change also:
+#include "wine/unicode.h"
This is good.
or should it be +#include <unicode.h>?
This will not work.
nlen = strlen(lpHelpFile) + 1;
nlen = strlenW(lpHelpFile) + 1;
Yes...
strcpy(((char*)lpwh) + sizeof(WINHELP),
lpHelpFile);
strcpyW(((char*)lpwh) + sizeof(WINHELP),
lpHelpFile);
Yes.
and I assume if (lpHelpFile) is still ok, right?
Right.