wine
16 years agocrypt32: Implement decoding CERT_POLICIES_INFO.
Juan Lang [Sat, 15 Nov 2008 02:00:01 +0000 (18:00 -0800)] 
crypt32: Implement decoding CERT_POLICIES_INFO.

16 years agocrypt32: Implement encoding CERT_POLICIES_INFO.
Juan Lang [Sat, 15 Nov 2008 00:06:13 +0000 (16:06 -0800)] 
crypt32: Implement encoding CERT_POLICIES_INFO.

16 years agocrypt32: Add tests for encoding/decoding CERT_POLICIES_INFO.
Juan Lang [Fri, 14 Nov 2008 23:00:30 +0000 (15:00 -0800)] 
crypt32: Add tests for encoding/decoding CERT_POLICIES_INFO.

16 years agocrypt32: Implement decoding CERT_POLICY_QUALIFIER_USER_NOTICE.
Juan Lang [Fri, 14 Nov 2008 22:55:35 +0000 (14:55 -0800)] 
crypt32: Implement decoding CERT_POLICY_QUALIFIER_USER_NOTICE.

16 years agocrypt32: Implement encoding CERT_POLICY_QUALIFIER_USER_NOTICE.
Juan Lang [Thu, 13 Nov 2008 21:45:29 +0000 (13:45 -0800)] 
crypt32: Implement encoding CERT_POLICY_QUALIFIER_USER_NOTICE.

16 years agocrypt32: Add tests for encoding/decoding CERT_POLICY_QUALIFIER_USER_NOTICE.
Juan Lang [Thu, 13 Nov 2008 21:45:07 +0000 (13:45 -0800)] 
crypt32: Add tests for encoding/decoding CERT_POLICY_QUALIFIER_USER_NOTICE.

16 years agoquartz: Fix FilterGraph2_Connect to be thread-safe and not recurse infinitely.
Maarten Lankhorst [Fri, 14 Nov 2008 15:42:41 +0000 (16:42 +0100)] 
quartz: Fix FilterGraph2_Connect to be thread-safe and not recurse infinitely.

16 years agokernel32/tests: Fix pipe test on w2k3.
Alexandre Julliard [Mon, 17 Nov 2008 12:16:26 +0000 (13:16 +0100)] 
kernel32/tests: Fix pipe test on w2k3.

16 years agomsi/tests: Skip tests on win9x by checking functionality instead of registry keys.
Paul Vriens [Sun, 16 Nov 2008 13:35:50 +0000 (14:35 +0100)] 
msi/tests: Skip tests on win9x by checking functionality instead of registry keys.

16 years agoshdocvw: Fixed buffer size to GetPrivateProfileStringW.
Marcus Meissner [Sun, 16 Nov 2008 09:32:37 +0000 (10:32 +0100)] 
shdocvw: Fixed buffer size to GetPrivateProfileStringW.

16 years agowordpad: Update resources for date and time dialog.
Hirofumi Katayama [Sat, 15 Nov 2008 00:10:57 +0000 (09:10 +0900)] 
wordpad: Update resources for date and time dialog.

16 years agoinclude: Fixed a typo for ITextHost::TxSetCaretPos declaration.
Dylan Smith [Sun, 16 Nov 2008 03:06:56 +0000 (22:06 -0500)] 
include: Fixed a typo for ITextHost::TxSetCaretPos declaration.

16 years agorichedit: Update strings and comments regarding IME Status messages.
Dylan Smith [Sun, 16 Nov 2008 02:01:48 +0000 (21:01 -0500)] 
richedit: Update strings and comments regarding IME Status messages.

16 years agouser32: Added message spy string for IME Status messages.
Dylan Smith [Sun, 16 Nov 2008 02:01:44 +0000 (21:01 -0500)] 
user32: Added message spy string for IME Status messages.

16 years agoinclude: Added missing macros for EM_SETIMESTATUS and EM_GETIMESTATUS.
Dylan Smith [Sun, 16 Nov 2008 02:01:40 +0000 (21:01 -0500)] 
include: Added missing macros for EM_SETIMESTATUS and EM_GETIMESTATUS.

16 years agorichedit: Removed comment in header for non-existent wintest.c.
Dylan Smith [Sun, 16 Nov 2008 02:01:36 +0000 (21:01 -0500)] 
richedit: Removed comment in header for non-existent wintest.c.

16 years agowidl: Remove superfluous semicolons.
Andrew Talbot [Sat, 15 Nov 2008 07:53:38 +0000 (07:53 +0000)] 
widl: Remove superfluous semicolons.

16 years agoRevert "quartz: Reaching a renderer in the filtergraph is not an error."
Maarten Lankhorst [Fri, 14 Nov 2008 21:50:34 +0000 (22:50 +0100)] 
Revert "quartz: Reaching a renderer in the filtergraph is not an error."

This is plain wrong, input pin and output pin are supposed to be
connected to each other, not the input pin being connected to a renderer
pin and NOT reaching output pin

16 years agocrypt32: Implement CryptFormatObject for alternate names.
Juan Lang [Fri, 14 Nov 2008 20:31:28 +0000 (12:31 -0800)] 
crypt32: Implement CryptFormatObject for alternate names.

16 years agocrypt32: When formatting a directory name as a multiline string, put a newline betwee...
Juan Lang [Fri, 14 Nov 2008 18:25:40 +0000 (10:25 -0800)] 
crypt32: When formatting a directory name as a multiline string, put a newline between the heading and the value.

16 years agocrypt32: Indent directory name when formatting an alt name entry.
Juan Lang [Fri, 14 Nov 2008 18:02:10 +0000 (10:02 -0800)] 
crypt32: Indent directory name when formatting an alt name entry.

16 years agocrypt32: Add a function to format a CERT_NAME_BLOB as an indented string, and impleme...
Juan Lang [Fri, 14 Nov 2008 17:59:00 +0000 (09:59 -0800)] 
crypt32: Add a function to format a CERT_NAME_BLOB as an indented string, and implement CertNameToStrW on top of it.

16 years agocrypt32: Use correct string for directory names in a CERT_ALT_NAME_ENTRY.
Juan Lang [Fri, 14 Nov 2008 17:01:16 +0000 (09:01 -0800)] 
crypt32: Use correct string for directory names in a CERT_ALT_NAME_ENTRY.

16 years agocrypt32: Correct heading for a certificate issuer in a CERT_AUTHORITY_KEY_ID2.
Juan Lang [Fri, 14 Nov 2008 17:00:23 +0000 (09:00 -0800)] 
crypt32: Correct heading for a certificate issuer in a CERT_AUTHORITY_KEY_ID2.

16 years agowinspool.drv: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 11:52:56 +0000 (11:52 +0000)] 
winspool.drv: Added Portuguese translation.

16 years agocrypt32: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 11:47:45 +0000 (11:47 +0000)] 
crypt32: Added Portuguese translation.

16 years agohhctrl.ocx: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 11:33:19 +0000 (11:33 +0000)] 
hhctrl.ocx: Added Portuguese translation.

16 years agowldap32: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 11:27:05 +0000 (11:27 +0000)] 
wldap32: Added Portuguese translation.

16 years agouser32/tests: Fix the resource tests for various Windows versions.
Alexandre Julliard [Fri, 14 Nov 2008 20:17:48 +0000 (21:17 +0100)] 
user32/tests: Fix the resource tests for various Windows versions.

16 years agokernel32/tests: Fix the write watch tests on Win98 and Win2000.
Alexandre Julliard [Fri, 14 Nov 2008 19:36:20 +0000 (20:36 +0100)] 
kernel32/tests: Fix the write watch tests on Win98 and Win2000.

16 years agontdll: Add private function to manage system virtual views instead of abusing NtAlloc...
Alexandre Julliard [Fri, 14 Nov 2008 16:40:54 +0000 (17:40 +0100)] 
ntdll: Add private function to manage system virtual views instead of abusing NtAllocateVirtualMemory.

16 years agod3d10: Use the factory that created the adapter to create a swapchain.
Henri Verbeet [Fri, 14 Nov 2008 12:57:07 +0000 (13:57 +0100)] 
d3d10: Use the factory that created the adapter to create a swapchain.

16 years agod3d10: Implement D3D10CreateDevice() on top of D3D10CoreCreateDevice().
Henri Verbeet [Fri, 14 Nov 2008 12:57:06 +0000 (13:57 +0100)] 
d3d10: Implement D3D10CreateDevice() on top of D3D10CoreCreateDevice().

16 years agod3d10core: Implement D3D10CoreCreateDevice().
Henri Verbeet [Fri, 14 Nov 2008 12:57:06 +0000 (13:57 +0100)] 
d3d10core: Implement D3D10CoreCreateDevice().

16 years agodxgi: Implement DXGID3D10CreateDevice().
Henri Verbeet [Fri, 14 Nov 2008 12:57:06 +0000 (13:57 +0100)] 
dxgi: Implement DXGID3D10CreateDevice().

16 years agodxgi: Implement DXGID3D10RegisterLayers().
Henri Verbeet [Fri, 14 Nov 2008 12:57:06 +0000 (13:57 +0100)] 
dxgi: Implement DXGID3D10RegisterLayers().

16 years agokernel32/tests: Fix timeouts on NT4 and W2K.
Paul Vriens [Fri, 14 Nov 2008 13:00:12 +0000 (14:00 +0100)] 
kernel32/tests: Fix timeouts on NT4 and W2K.

16 years agouser32: Initial .ani support (only first frame).
Andrew Riedi [Sun, 9 Nov 2008 22:00:54 +0000 (14:00 -0800)] 
user32: Initial .ani support (only first frame).

Based on patches by Henri Verbeet.

16 years agoshdocvw, winemenubuilder: Generate fd.o entries for .url files.
Damjan Jovanovic [Thu, 13 Nov 2008 06:19:25 +0000 (08:19 +0200)] 
shdocvw, winemenubuilder: Generate fd.o entries for .url files.

16 years agokernel32/tests: Fix the file test on various Windows versions.
Alexandre Julliard [Fri, 14 Nov 2008 12:30:16 +0000 (13:30 +0100)] 
kernel32/tests: Fix the file test on various Windows versions.

16 years agocomctl32/tests: Make the header test dpi aware.
Detlef Riekenberg [Fri, 14 Nov 2008 04:29:57 +0000 (05:29 +0100)] 
comctl32/tests: Make the header test dpi aware.

16 years agourlmon/tests: Accept IInternetProtocolEx interface id.
Alexandre Julliard [Fri, 14 Nov 2008 11:08:26 +0000 (12:08 +0100)] 
urlmon/tests: Accept IInternetProtocolEx interface id.

16 years agoinclude: Added the IInternetProtocolEx interface.
Alexandre Julliard [Fri, 14 Nov 2008 11:08:03 +0000 (12:08 +0100)] 
include: Added the IInternetProtocolEx interface.

Based on an old patch by Reece Dunn.

16 years agod3dx8: Change the debug channel of d3dx8 into the generic d3dx.
David Adam [Thu, 13 Nov 2008 22:44:22 +0000 (23:44 +0100)] 
d3dx8: Change the debug channel of d3dx8 into the generic d3dx.

16 years agokernel32: NT drivers can handle IOCTL codes with HIWORD == 0.
Alexander Morozov [Thu, 13 Nov 2008 10:15:10 +0000 (13:15 +0300)] 
kernel32: NT drivers can handle IOCTL codes with HIWORD == 0.

16 years agoshell32/tests: Properly cleanup the created favorites shell folder.
Alexandre Julliard [Fri, 14 Nov 2008 10:18:34 +0000 (11:18 +0100)] 
shell32/tests: Properly cleanup the created favorites shell folder.

16 years agokernel32/tests: Added a bunch of tests for write watches.
Alexandre Julliard [Fri, 14 Nov 2008 09:54:45 +0000 (10:54 +0100)] 
kernel32/tests: Added a bunch of tests for write watches.

16 years agokernel32: Added GetWriteWatch and ResetWriteWatch.
Alexandre Julliard [Fri, 14 Nov 2008 09:49:45 +0000 (10:49 +0100)] 
kernel32: Added GetWriteWatch and ResetWriteWatch.

16 years agontdll: Added stubs for NtGetWriteWatch and NtResetWriteWatch.
Alexandre Julliard [Fri, 14 Nov 2008 09:49:02 +0000 (10:49 +0100)] 
ntdll: Added stubs for NtGetWriteWatch and NtResetWriteWatch.

16 years agoquartz: Reaching a renderer in the filtergraph is not an error.
Lei Zhang [Fri, 14 Nov 2008 01:52:51 +0000 (17:52 -0800)] 
quartz: Reaching a renderer in the filtergraph is not an  error.

16 years agomsxml3: Void function should not return a value.
Andrew Talbot [Thu, 13 Nov 2008 22:20:52 +0000 (22:20 +0000)] 
msxml3: Void function should not return a value.

16 years agourlmon: Sign-compare warnings fix.
Andrew Talbot [Thu, 13 Nov 2008 22:20:48 +0000 (22:20 +0000)] 
urlmon: Sign-compare warnings fix.

16 years agosetupapi/tests: Don't use hardcoded C: for the system drive.
Paul Vriens [Fri, 14 Nov 2008 07:37:05 +0000 (08:37 +0100)] 
setupapi/tests: Don't use hardcoded C: for the system drive.

16 years agoquartz/tests: Fix a few failures on Win95 and NT4.
Paul Vriens [Thu, 13 Nov 2008 17:07:01 +0000 (18:07 +0100)] 
quartz/tests: Fix a few failures on Win95 and NT4.

16 years agoole32/tests: Fix a couple of test failures on Win9x and NT4.
Alexandre Julliard [Thu, 13 Nov 2008 20:45:57 +0000 (21:45 +0100)] 
ole32/tests: Fix a couple of test failures on Win9x and NT4.

16 years agoole32/tests: Don't hardcode the Ansi codepage value.
Alexandre Julliard [Thu, 13 Nov 2008 20:45:41 +0000 (21:45 +0100)] 
ole32/tests: Don't hardcode the Ansi codepage value.

16 years agoole32/tests: Use a CLSID that is more likely to exist on old Windows versions.
Alexandre Julliard [Thu, 13 Nov 2008 20:45:25 +0000 (21:45 +0100)] 
ole32/tests: Use a CLSID that is more likely to exist on old Windows versions.

16 years agoole32/tests: Fix a couple of global stream test failures on Win9x.
Alexandre Julliard [Thu, 13 Nov 2008 20:45:04 +0000 (21:45 +0100)] 
ole32/tests: Fix a couple of global stream test failures on Win9x.

16 years agomsi/tests: Skip some tests on Win9x and WinMe.
Paul Vriens [Thu, 13 Nov 2008 14:34:22 +0000 (15:34 +0100)] 
msi/tests: Skip some tests on Win9x and WinMe.

16 years agogdi32/tests: Fix a few failures on Win9x and WinMe.
Paul Vriens [Thu, 13 Nov 2008 13:41:34 +0000 (14:41 +0100)] 
gdi32/tests: Fix a few failures on Win9x and WinMe.

16 years agod3dx8: Implement D3DXMatrixTransformation2D.
David Adam [Wed, 12 Nov 2008 18:16:30 +0000 (19:16 +0100)] 
d3dx8: Implement D3DXMatrixTransformation2D.

16 years agod3dx8: Implement D3DXMatrixAffineTransformation2D.
David Adam [Wed, 12 Nov 2008 17:54:50 +0000 (18:54 +0100)] 
d3dx8: Implement D3DXMatrixAffineTransformation2D.

16 years agogdiplus: Return some token value on startup.
Nikolay Sivov [Thu, 13 Nov 2008 13:00:12 +0000 (16:00 +0300)] 
gdiplus: Return some token value on startup.

16 years agomsvcrt/tests: Run time tests for the current year instead of 1970 and fix wrong DST...
Alexandre Julliard [Thu, 13 Nov 2008 13:15:56 +0000 (14:15 +0100)] 
msvcrt/tests: Run time tests for the current year instead of 1970 and fix wrong DST assumptions.

16 years agoshdocvw: Correct tests.
Alistair Leslie-Hughes [Thu, 13 Nov 2008 09:55:59 +0000 (20:55 +1100)] 
shdocvw: Correct tests.

16 years agorichedit: Initial testing of ITextServices methods.
Dylan Smith [Wed, 12 Nov 2008 19:47:24 +0000 (14:47 -0500)] 
richedit: Initial testing of ITextServices methods.

16 years agoshdoclc: Added Portuguese translation.
Ricardo Filipe [Tue, 11 Nov 2008 23:55:05 +0000 (23:55 +0000)] 
shdoclc: Added Portuguese translation.

16 years agomsvidc32: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 04:42:11 +0000 (04:42 +0000)] 
msvidc32: Added Portuguese translation.

16 years agolocalui: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 01:39:04 +0000 (01:39 +0000)] 
localui: Added Portuguese translation.

16 years agolocalspl: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 02:08:38 +0000 (02:08 +0000)] 
localspl: Added Portuguese translation.

16 years agogphoto2.ds: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 00:27:09 +0000 (00:27 +0000)] 
gphoto2.ds: Added Portuguese translation.

16 years agocredui: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 01:48:10 +0000 (01:48 +0000)] 
credui: Added Portuguese translation.

16 years agobrowseui: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 01:24:28 +0000 (01:24 +0000)] 
browseui: Added Portuguese translation.

16 years agoappwiz.cpl: Added Portuguese translation.
Ricardo Filipe [Wed, 12 Nov 2008 01:16:24 +0000 (01:16 +0000)] 
appwiz.cpl: Added Portuguese translation.

16 years agod3d10core: Implement D3D10CoreRegisterLayers.
Henri Verbeet [Wed, 12 Nov 2008 14:43:46 +0000 (15:43 +0100)] 
d3d10core: Implement D3D10CoreRegisterLayers.

16 years agodxgi: Add a stub for DXGID3D10RegisterLayers.
Henri Verbeet [Wed, 12 Nov 2008 14:43:46 +0000 (15:43 +0100)] 
dxgi: Add a stub for DXGID3D10RegisterLayers.

16 years agod3d10core: Allow ID3D10Device to be aggregated.
Henri Verbeet [Wed, 12 Nov 2008 14:43:46 +0000 (15:43 +0100)] 
d3d10core: Allow ID3D10Device to be aggregated.

16 years agod3d10core: Implement ID3D10Device in d3d10core instead of d3d10.
Henri Verbeet [Wed, 12 Nov 2008 14:43:46 +0000 (15:43 +0100)] 
d3d10core: Implement ID3D10Device in d3d10core instead of d3d10.

16 years agomsiexec: Build with -mwindows.
Vincent Povirk [Wed, 12 Nov 2008 16:16:24 +0000 (10:16 -0600)] 
msiexec: Build with -mwindows.

16 years agouser32/tests: Print line numbers of callers in check_wnd_state to help debugging.
Vitaliy Margolen [Wed, 12 Nov 2008 15:40:27 +0000 (08:40 -0700)] 
user32/tests: Print line numbers of callers in check_wnd_state to help debugging.

16 years agocrypt32: Fix indenting for szOID_CRL_DIST_POINTS.
Juan Lang [Thu, 13 Nov 2008 04:41:23 +0000 (20:41 -0800)] 
crypt32: Fix indenting for szOID_CRL_DIST_POINTS.

16 years agocrypt32: Fix comment typo.
Juan Lang [Thu, 13 Nov 2008 04:37:15 +0000 (20:37 -0800)] 
crypt32: Fix comment typo.

16 years agocrypt32: Implement formatting an alt name entry with type CERT_ALT_NAME_DIRECTORY_NAME.
Juan Lang [Thu, 13 Nov 2008 04:37:02 +0000 (20:37 -0800)] 
crypt32: Implement formatting an alt name entry with type CERT_ALT_NAME_DIRECTORY_NAME.

16 years agocrypt32: Fix off-by-one error in formatting szOID_AUTHORITY_KEY_IDENTIFIER2.
Juan Lang [Thu, 13 Nov 2008 04:36:33 +0000 (20:36 -0800)] 
crypt32: Fix off-by-one error in formatting szOID_AUTHORITY_KEY_IDENTIFIER2.

16 years agocrypt32: Don't underreport the size available when formatting szOID_AUTHORITY_KEY_IDE...
Juan Lang [Thu, 13 Nov 2008 04:22:32 +0000 (20:22 -0800)] 
crypt32: Don't underreport the size available when formatting szOID_AUTHORITY_KEY_IDENTIFIER2.

16 years agowinedos: Implement mode control register, and the 160x200x4 display mode that it...
Peter Dons Tychsen [Thu, 13 Nov 2008 03:02:42 +0000 (04:02 +0100)] 
winedos: Implement mode control register, and the 160x200x4 display mode that it opens.

16 years agoinclude/shlwapi: Fix some typos.
Austin English [Thu, 13 Nov 2008 01:00:41 +0000 (19:00 -0600)] 
include/shlwapi: Fix some typos.

16 years agokernel32/tests: Fix the thread test to cope with the Win95 InterlockedIncrement behavior.
Alexandre Julliard [Thu, 13 Nov 2008 10:49:36 +0000 (11:49 +0100)] 
kernel32/tests: Fix the thread test to cope with the Win95 InterlockedIncrement behavior.

16 years agokernel32: Don't request unneeded access in OpenFileMapping.
Alexandre Julliard [Thu, 13 Nov 2008 10:49:17 +0000 (11:49 +0100)] 
kernel32: Don't request unneeded access in OpenFileMapping.

16 years agoshlwapi: Sign-compare warnings fix.
Andrew Talbot [Wed, 12 Nov 2008 20:22:09 +0000 (20:22 +0000)] 
shlwapi: Sign-compare warnings fix.

16 years agontdll: Don't poll() on a normal file; it should never block.
Ken Thomases [Wed, 12 Nov 2008 18:15:31 +0000 (12:15 -0600)] 
ntdll: Don't poll() on a normal file; it should never block.

16 years agocrypt32/tests: Fix a test failure on Vista and W2K8.
Paul Vriens [Wed, 12 Nov 2008 16:35:12 +0000 (17:35 +0100)] 
crypt32/tests: Fix a test failure on Vista and W2K8.

16 years agocrypt32/tests: Skip some tests if needed.
Paul Vriens [Wed, 12 Nov 2008 16:30:22 +0000 (17:30 +0100)] 
crypt32/tests: Skip some tests if needed.

16 years agouser32: Don't process other messages when recursing in peek_message for an internal...
Alexandre Julliard [Wed, 12 Nov 2008 18:56:36 +0000 (19:56 +0100)] 
user32: Don't process other messages when recursing in peek_message for an internal message.

16 years agoole32: Don't issue a warning if a flat copy is all that's required.
Huw Davies [Wed, 12 Nov 2008 12:39:58 +0000 (12:39 +0000)] 
ole32: Don't issue a warning if a flat copy is all that's required.

16 years agowinhttp: Correct another difference between InternetCrackurl and WinHttpCrackUrl.
Aric Stewart [Tue, 11 Nov 2008 15:17:29 +0000 (09:17 -0600)] 
winhttp: Correct another difference between InternetCrackurl and WinHttpCrackUrl.

16 years agorichedit: Created initial tests for windowless richedit controls.
Dylan Smith [Tue, 11 Nov 2008 19:08:53 +0000 (14:08 -0500)] 
richedit: Created initial tests for windowless richedit controls.

16 years agoregedit: Fix the wrapping of binary values in export_hkey().
Francois Gouget [Wed, 12 Nov 2008 10:32:23 +0000 (11:32 +0100)] 
regedit: Fix the wrapping of binary values in export_hkey().

Don't wait until the line overflows before wrapping it.
Don't wrap the last line.

16 years agoregedit: Fix a buffer overflow when exporting binary values in export_hkey().
Francois Gouget [Wed, 12 Nov 2008 10:31:40 +0000 (11:31 +0100)] 
regedit: Fix a buffer overflow when exporting binary values in export_hkey().

We must take the indentation into account to compute the number of lines a binary value will use.

16 years agoregedit: Simplify / clean up export_hkey().
Francois Gouget [Wed, 12 Nov 2008 10:29:51 +0000 (11:29 +0100)] 
regedit: Simplify / clean up export_hkey().

Avoid unneeded/redundant calls to lstrcatW() and lstrlenW().
Tighten the scope of variables.