Envoyé par
scarlaty
Salut !
Merci pour ta réponse à propos de RegEnumValue.
Tu me conseil 2 méthode dont une ou j'alloue la mémoire grace à RegEnumValue...
Mais je ne trouve pas ou elle me renvoi la taille que je dois allouer..
Si tu te souviens ?
Encore Merci
Lu dans le MSDN : le prototype de RegEnumValue
LONG WINAPI RegEnumValue(
__in HKEY hKey,
__in DWORD dwIndex,
__out LPTSTR lpValueName,
__inout LPDWORD lpcchValueName,
__reserved LPDWORD lpReserved,
__out_opt LPDWORD lpType,
__out_opt LPBYTE lpData,
__inout_opt LPDWORD lpcbData
);
lpValueName contient le buffer dans lequel mettre la valeur lue
lpcchValueName contient la taille du buffer alloué par toi même
Lu dans le MSDN : If the buffer specified by lpData is not large enough to hold the data, the function returns ERROR_MORE_DATA and stores the required buffer size in the variable pointed to by lpcbData. In this case, the contents of lpData are undefined.
Traduction : si ton buffer n'est pas assez grand, RegEnumValue() renseigne dans lpcchValueName la valeur qu'il aurait fallut et retourne ERROR_MORE_DATA.
Dans ce cas, tu créés un autre buffer (ou tu réalloues) et tu recommences l'appel à RegEnumValue() qui devrait passer ce coup ci.
Partager