RegOverridePredefKey 함수(winreg.h)
미리 정의된 레지스트리 키를 지정된 레지스트리 키에 매핑합니다.
구문
LSTATUS RegOverridePredefKey(
[in] HKEY hKey,
[in, optional] HKEY hNewHKey
);
매개 변수
[in] hKey
다음 미리 정의된 키 중 하나에 대한 핸들입니다.
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_PERFORMANCE_DATA
- HKEY_USERS
[in, optional] hNewHKey
열린 레지스트리 키에 대한 핸들입니다. 이 핸들은 RegCreateKeyEx 또는 RegOpenKeyEx 함수에 의해 반환됩니다. 미리 정의된 키 중 하나일 수 없습니다. 함수는 hNewHKey 키를 참조하도록 hKey를 매핑합니다. 이는 호출 프로세스에만 영향을 줍니다.
hNewHKey가 NULL인 경우 함수는 미리 정의된 키의 기본 매핑을 복원합니다.
반환 값
함수가 성공하면 반환 값이 ERROR_SUCCESS.
함수가 실패하면 반환 값은 Winerror.h에 정의된 0이 아닌 오류 코드입니다. FormatMessage 함수를 FORMAT_MESSAGE_FROM_SYSTEM 플래그와 함께 사용하여 오류에 대한 일반적인 설명을 가져올 수 있습니다.
설명
RegOverridePredefKey 함수는 소프트웨어 설치 프로그램을 위한 것입니다. 미리 정의된 키를 다시 매핑하고, 시스템에 설치될 DLL 구성 요소를 로드하고, DLL의 진입점을 호출하고, 구성 요소가 시도한 레지스트리의 변경 내용을 검사할 수 있습니다. 그런 다음 설치 프로그램은 DLL이 의도한 위치에 이러한 변경 내용을 작성하거나 데이터를 작성하기 전에 데이터를 변경할 수 있습니다.
예를 들어 애플리케이션 설치의 일부로 ActiveX 컨트롤을 설치하는 설치 프로그램을 고려해 보세요. 설치 프로그램은 컨트롤이 자신을 등록할 수 있도록 컨트롤의 DllRegisterServer 진입점을 호출해야 합니다. 이 호출 전에 설치 프로그램은 RegOverridePredefKey 를 호출하여 HKEY_CLASSES_ROOT 임시 키(예: HKEY_CURRENT_USER\TemporaryInstall\DllRegistration)에 다시 매핑할 수 있습니다. 그런 다음 DllRegisterServer를 호출하여 ActiveX 컨트롤이 레지스트리 항목을 임시 키에 쓰게 합니다. 그런 다음 설치 프로그램에서 RegOverridePredefKey 를 다시 호출하여 HKEY_CLASSES_ROOT 원래 매핑을 복원합니다. 설치 프로그램은 필요한 경우 임시 키에 기록된 키를 수정한 후 원래 HKEY_CLASSES_ROOT 복사할 수 있습니다.
RegOverridePredefKey를 호출한 후 RegCloseKey를 안전하게 호출하여 hNewHKey 핸들을 닫을 수 있습니다. 시스템은 hNewHKey에 대한 자체 참조를 유지 관리합니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winreg.h(Windows.h 포함) |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |