RegQueryValueExW retrieves Unicode strings but the size must be
specified in
bytes. Fixes bug 770.
Modified: trunk/reactos/lib/comctl32/comctl32undoc.c
_____
Modified: trunk/reactos/lib/comctl32/comctl32undoc.c
--- trunk/reactos/lib/comctl32/comctl32undoc.c 2005-09-16 18:18:48 UTC
(rev 17887)
+++ trunk/reactos/lib/comctl32/comctl32undoc.c 2005-09-16 19:47:44 UTC
(rev 17888)
@@ -682,17 +682,17 @@
/* get values from key 'MRUList' */
if (newkey) {
- datasize = mp->extview.nMaxItems + 1;
+ datasize = (mp->extview.nMaxItems + 1) * sizeof(WCHAR);
if((err=RegQueryValueExW( newkey, strMRUList, 0, &type,
(LPBYTE)mp->realMRU, &datasize))) {
- /* not present - set size to 1 (will become 0 later) */
- datasize = 1;
+ /* not present - set size to 2 (will become 0 later) */
+ datasize = 2;
*mp->realMRU = 0;
}
TRACE("MRU list = %s, datasize = %ld\n",
debugstr_w(mp->realMRU), datasize);
- mp->cursize = datasize - 1;
+ mp->cursize = datasize / sizeof(WCHAR) - 1;
/* datasize now has number of items in the MRUList */
/* get actual values for each entry */