LONG WINAPI RegOpenKeyEx( _In_ HKEY hKey, -----① _In_opt_ LPCTSTR lpSubKey, -----② _Reserved_ DWORD ulOptions, -----③ _In_ REGSAM samDesired, -----④ _Out_ PHKEY phkResult -----⑤ );
③ ulOptions :
예약값, 0을 넣어준다.
④ samDesired :
오픈하는 키의 핸들의 시큐리티 엑세스 마스크를 지정. 자세한건 RegCreateKeyEx 참고.
⑤ phkResult :
오픈된 키의 핸들을 저장하지 위한 변수의 주소를 지정.
LONG WINAPI RegEnumKeyEx( _In_ HKEY hKey, -------① _In_ DWORD dwIndex, -------② _Out_ LPTSTR lpName, -------③ _Inout_ LPDWORD lpcName, -------④ _Reserved_ LPDWORD lpReserved, -------⑤ _Inout_ LPTSTR lpClass, -------⑥ _Inout_opt_ LPDWORD lpcClass, -------⑦ _Out_opt_ PFILETIME lpftLastWriteTime -------⑧ );
함수 설명 :
지정된 레지스트리 키의 서브키를 열거한다. 불릴때마다 하나의 서브키에 관한 정보만 획득한다.
① hKey :
오픈되고 있는 키의 핸들을 지정합니다. 이 핸들은 KEY_ENUMERATE_SUB_KEYS 엑세스를 가지고 있으면 안되다.
② dwIndex :
취득하는 서브 키의 0부터 시작되는 인덱스를 지정합니다.
③ lpName :
서브 키의 이름을 격납하기 위한 버퍼의 주소를 지정한다. 서브 키의 이름만 카피하지 계층 전체를 카피하는것은 아니다.
④ lpcName :
lpName 파라미터로 나타내지는 버퍼의 아르바이트수 단위의 사이즈를 격납한 변수의 주소를 지정한다.
⑤ lpReserced:
예약된 값으로 0을 넣아야 한다.
⑥ lpClass :
서브 키의 클래스명을 격납하는 버퍼주소를 지정한다. 필요없을 경우 NULL을 지정해 줄 수 있다.
⑦ lpcClass :
lpClass 파라미터로 나타내는 버퍼의 사이즈를 격납한 변수의 주소를 지정한다. 함수 사용시 plClass 파라미터의 버퍼에 카피된 사이즈가 이 변수에 격납 된다. plClass 파파미터에 NULL(0)을 지정했을 경우에는 이 값에 NULL(0)을 넣을 수 있다.
⑧ lpftLastWriteTime :
서브키의 최종 기입 시간을 격납하기 위한 FILETIME 구조체의 주소를 지정한다.
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 --------⑧ );
함수 설명 :
지정된 레지스트리 키가 가지는 값을 열거한다. 불릴때 마다 1개의 값의 이름과 대응하는 데이터를 취득한다.
① hKey :
현재 오픈되고 있는 키의 핸들을 지정한다. 이 핸들은 KEY_QUERY_VALUE 엑세스를 가지고 있어야 한다.
② dwIndex :
취들하는 값 0으로부터 시작되는 인덱스를 지정한다.
③ IpValueName :
값의 이름을 격납하기 위한 버퍼의 주소를 지정한다.
④ lpcchValuewName :
IpValueName 파라미터로 나타내는 버퍼의 사이즈를 저장한 변수의 주소를 인자로 넘겨준다. IpValueName파라미터의 버퍼에 카피된 문자열의 사이즈가 저장된다.
⑤ lpReserved :
예약된 값 0을 넘겨준다.
⑥ lpType :
값의 데이터 타입의 종류를 저장한 변수 주소를 넘겨준다. 불필요한경우 NULL을 지정할 수 있다.
값 |
유형 |
REG_BINARY |
바이터리 데이터 |
REG_DWORD |
32 비트 숫자. |
REG_DWORD_LITTLE_ENDIAN |
리틀 엔디안 형식의 32 비트 숫자. 창은 리틀 엔디안 컴퓨터 아키텍처에서 실행되도록 설계되었습니다. 따라서,이 값은 Windows 헤더 파일에있는 REG_DWORD로 정의됩니다. |
REG_DWORD_BIG_ENDIAN |
빅 엔디안 형식의 32 비트 숫자. |
REG_EXPAND_SZ |
환경 변수 (예를 들어, "% 경로 %")로 확장되지 않은 참조를 포함 null로 끝나는 문자열입니다. 그것은 당신이 유니 코드 또는 ANSI 함수를 사용하는지 여부에 따라 유니 코드 또는 ANSI 문자열이됩니다. |
REG_LINK |
호출에 의해 생성 된 심볼릭 링크의 대상 경로를 포함하는 null로 끝나는 유니 코드 문자열 |
REG_MULTI_SZ |
빈 문자열 (\ 0)로 종료 null로 끝나는 문자열의 순서. |
REG_NONE |
데이터 타입을 지정하지 않음. |
REG_QWORD |
64비트 숫자 |
REG_QWORD_LITTLE_ENDIAN |
리틀 엔디안 형식의 64 비트 숫자입니다. |
REG_SZ |
null로 끝나는 문자열입니다. 이것은 유니 코드 또는 ANSI 함수를 사용하는지 여부에 따라 하나 유니 코드 또는 ANSI 문자열이어야합니다. |
⑦ lpData :
데이터 값을 저장하기위한 버퍼 주소를 지정한다. 필요없으면 NULL 가능
⑧ lpcbData :
데이터의 버퍼 크기를 저장할 변수 포인터를 넘겨준다. lpData가 NULL일경우 NULL값을 주면 된다.