관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

RegEnumValue(A) 본문

API 관련/Win32 API 함수

RegEnumValue(A)

님투 2007. 11. 8. 23:19
반응형

RegEnumValue(A)

지정된 레지스트리 키가 가지는 값을 열거합니다.이 함수는, 불려 갈 때마다,1개의 값의 이름과 대응하는 값의 데이터를 취득합니다.

LONG RegEnumValueA(
    HKEY   hKey,         // 키의 핸들
    DWORD  dwIndex,      // 값의 인덱스
    PTSTR  pValueName,   // 값의 이름을 격납하는 버퍼
    PDWORD pcbValueName, // lpValueName의 사이즈를 넣은 변수
    PDWORD pReserved,    // 예약(NULL(을)를 지정)
    PTSTR  pType,        // 값의 타입을 격납하는 버퍼
    PBYTE  pData,        // 값의 데이터를 격납하는 버퍼
    PDWORD pcbData       // lpData의 사이즈를 넣은 변수
);

ADVAPI32.DLL

인수

hKey

현재 오픈되고 있는 키의 핸들을 지정합니다.이 핸들은 KEY_QUERY_VALUE 액세스를 가지고 있지 않으면 안됩니다.

다음의 정의가 끝난 키를 지정할 수도 있습니다.

정의가 끝난 키
0x80000000 HKEY_CLASSES_ROOT
0x80000001 HKEY_CURRENT_USER
0x80000002 HKEY_LOCAL_MACHINE
0x80000003 HKEY_USERS
0x80000004 Windows NT/2000/XP: HKEY_PERFORMANCE_DATA
0x80000005 HKEY_CURRENT_CONFIG
0x80000006 Windows 95/98/Me: HKEY_DYN_DATA
dwIndex

취득하는 값의 0 (으)로부터 시작되는 인덱스를 지정합니다.

pValueName

값의 이름을 격납하기 위한 버퍼의 주소를 지정합니다.

pcbValueName

pValueName 파라미터로 나타내지는 버퍼의 아르바이트수(Unicode 판의 경우는 문자수) 단위의 사이즈를 격납한 변수의 주소를 지정합니다.함수가 제어를 돌려주면, pValueName 파라미터의 버퍼에 카피된 문자열의 아르바이트수(Unicode 판의 경우는 문자수)가 이 변수에 격납됩니다.

pReserved

예약되고 있습니다. 0 (을)를 지정하지 않으면 안됩니다.

pType

값의 데이터의 형태(을)를 격납하기 위한 변수의 주소를 지정합니다.함수가 제어를 돌려주면, 값의 데이터의 형태를 나타내는 값이 격납됩니다.값의 데이터의 형태에 대한 정보가 불요의 경우는 0 (NULL) (을)를 지정할 수 있습니다.

pData

값의 데이터를 격납하기 위한 버퍼의 주소를 지정합니다.값의 데이터가 불요의 경우는 0 (NULL) (을)를 지정할 수 있습니다.

pcbData

pData 파라미터로 나타내지는 버퍼의 아르바이트 단위의 사이즈를 격납한 변수의 주소를 지정합니다.함수가 제어를 돌려주면, 버퍼에 격납된 데이터의 아르바이트수가 격납됩니다. pData 파라미터에 0 (NULL) (을)를 지정했을 경우는, 이 파라미터에 0 (NULL) (을)를 지정할 수 있습니다.

반환값

성공하면 0 (ERROR_SUCCESS) 하지만 돌아갑니다.

실패하면 0 이외의 에러 코드가 돌아갑니다.이 에러 코드와 FORMAT_MESSAGE_FROM_SYSTEM 플래그를 지정해 FormatMessage 함수를 호출하는 것으로, 에러 메세지를 취득할 수 있습니다.

해설

값을 열거하려면 , 우선 dwIndex 파라미터에 0 (을)를 지정하고 나서 RegEnumValue 함수를 호출합니다.이후, dwIndex 파라미터를 인크리먼트(increment)(1두개가산) 하면서 RegEnumValue 함수를 호출합니다.이 조작을, 모든 값이 열거될 때까지(RegEnumValue 함수가 반환값 259 (ERROR_NO_MORE_ITEMS) (을)를 돌려줄 때까지) 반복합니다.

반대로, 최초의 함수 호출시에 dwIndex 파라미터에 마지막 값의 인덱스를 지정해, 인덱스가 0 (이)가 될 때까지 dwIndex 파라미터를 감소(1두개감산) 하면서 함수를 호출해 갈 수도 있습니다.이 때, 마지막 값의 인덱스를 취득하려면 RegQueryInfoKey 함수를 사용합니다.

지정된 레지스트리 키가 가지는 값으로 가장 긴 값의 이름의 길이를 취득하려면 RegQueryInfoKey 함수를 사용합니다.

대응 정보

Windows 95 이후 / Windows NT 3.1 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

RegOpenKeyEx(A)  (0) 2007.11.08
RegFlushKey  (0) 2007.11.08
RegEnumKeyEx(A)  (0) 2007.11.08
RegDeleteValue(A)  (0) 2007.11.08
RegDeleteKey(A)  (0) 2007.11.08
Comments