Ignore:
Timestamp:
Jul 16, 2001, 11:25:16 AM (24 years ago)
Author:
sandervl
Message:

RegEnumKeyExW fix (lpszClass can be NULL)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/registry.cpp

    r5505 r6346  
    1 /* $Id: registry.cpp,v 1.10 2001-04-15 09:06:50 sandervl Exp $ */
     1/* $Id: registry.cpp,v 1.11 2001-07-16 09:25:16 sandervl Exp $ */
    22
    33/*
     
    420420 *****************************************************************************/
    421421
    422 ODINFUNCTION8(LONG,RegEnumKeyExW,HKEY,      arg1,
    423                                  DWORD,     arg2,
    424                                  LPWSTR,    arg3,
    425                                  LPDWORD,   arg4,
    426                                  LPDWORD,   arg5,
    427                                  LPWSTR,    arg6,
    428                                  LPDWORD,   arg7,
    429                                  LPFILETIME,arg8)
     422ODINFUNCTION8(LONG,RegEnumKeyExW,HKEY,      hKey,
     423                                 DWORD,     iSubkey,
     424                                 LPWSTR,    lpszName,
     425                                 LPDWORD,   lpcchName,
     426                                 LPDWORD,   lpdwReserved,
     427                                 LPWSTR,    lpszClass,
     428                                 LPDWORD,   lpcchClass,
     429                                 LPFILETIME,lpffLastWrite)
    430430{
    431431  char *astring;
    432432  LONG  rc;
    433433
    434   rc = O32_RegEnumKeyEx(ConvertKey(arg1),
    435                         arg2,
    436                         (char *)arg3,
    437                         arg4,
    438                         arg5,
    439                         (char *)arg6,
    440                         arg7,
    441                         arg8);
     434  rc = O32_RegEnumKeyEx(ConvertKey(hKey),
     435                        iSubkey,
     436                        (char *)lpszName,
     437                        lpcchName,
     438                        lpdwReserved,
     439                        (char *)lpszClass,
     440                        lpcchClass,
     441                        lpffLastWrite);
    442442  if(rc == ERROR_SUCCESS)
    443443  {
    444     astring = (char *)malloc(max(*arg4+1, *arg7+1));   //class & keyname
    445     strcpy(astring, (char *)arg3);
    446     AsciiToUnicode(astring, arg3);
    447     if(arg6 != NULL)
     444    astring = (char *)malloc(max(*lpcchName+1, (lpcchClass) ? (*lpcchClass+1) : 0));   //class & keyname
     445    strcpy(astring, (char *)lpszName);
     446    AsciiToUnicode(astring, lpszName);
     447    if(lpszClass != NULL)
    448448    {
    449       strcpy(astring, (char *)arg6);
    450       AsciiToUnicode(astring, arg6);
     449      strcpy(astring, (char *)lpszClass);
     450      AsciiToUnicode(astring, lpszClass);
    451451    }
    452452    free(astring);
Note: See TracChangeset for help on using the changeset viewer.