다음을 통해 공유


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를 매핑합니다. 이는 호출 프로세스에만 영향을 줍니다.

hNewHKeyNULL인 경우 함수는 미리 정의된 키의 기본 매핑을 복원합니다.

반환 값

함수가 성공하면 반환 값이 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

추가 정보

DllRegisterServer

레지스트리 함수

레지스트리 개요