레지스트리 매크로
이러한 매크로는 유용한 형식 라이브러리 및 레지스트리 기능을 정의합니다.
속성 | 설명 |
---|---|
_ATL_STATIC_REGISTRY | ATL.DLL 종속성을 방지하기 위해 개체에 대한 등록 코드를 개체에 저장하도록 함을 나타냅니다. |
DECLARE_LIBID | ATL에서 형식 라이브러리의 libid를 가져오는 방법을 제공합니다. |
DECLARE_NO_REGISTRY | 기본 ATL 등록을 방지합니다. |
DECLARE_REGISTRY | 시스템 레지스트리에서 주 개체의 항목을 입력하거나 제거합니다. |
DECLARE_REGISTRY_APPID_RESOURCEID | appid를 자동으로 등록하는 데 필요한 정보를 지정합니다. |
DECLARE_REGISTRY_RESOURCE | 명명된 리소스를 찾아서 해당 리소스 내에서 레지스트리 스크립트를 실행합니다. |
DECLARE_REGISTRY_RESOURCEID | ID 번호로 식별된 리소스를 찾아서 해당 리소스 내에서 레지스트리 스크립트를 실행합니다. |
요구 사항
헤더: atlcom.h
_ATL_STATIC_REGISTRY
ATL.DLL 종속성을 방지하기 위해 개체에 대한 등록 코드가 개체에 있도록 함을 나타내는 기호입니다.
#define _ATL_STATIC_REGISTRY
설명
ATL_STATIC_REGISTRY 정의할 때 다음 코드를 사용해야 합니다.
#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#endif
DECLARE_LIBID
ATL에서 형식 라이브러리의 libid를 가져오는 방법을 제공합니다.
DECLARE_LIBID( libid )
매개 변수
libid
형식 라이브러리의 GUID입니다.
설명
파생 클래스에서 CAtlModuleT
DECLARE_LIBID 사용합니다.
예시
특성이 없는 마법사에서 생성된 ATL 프로젝트에는 이 매크로를 사용하는 샘플이 있습니다.
DECLARE_NO_REGISTRY
이 매크로가 표시되는 클래스에 대한 기본 ATL 등록을 방지하려면 DECLARE_NO_REGISTRY 사용합니다.
DECLARE_NO_REGISTRY()
DECLARE_REGISTRY
표준 클래스 등록을 시스템 레지스트리에 입력하거나 시스템 레지스트리에서 제거합니다.
DECLARE_REGISTRY(
class,
pid,
vpid,
nid,
flags )
매개 변수
class
[in] 이전 버전과의 호환성을 위해 포함됩니다.
pid
[in] 버전별 프로그램 식별자인 LPCTSTR입니다.
vpid
[in] 버전 독립적 프로그램 식별자인 LPCTSTR입니다.
nid
[in] 프로그램에 대한 설명으로 사용할 레지스트리의 리소스 문자열 인덱스인 UINT입니다.
flags
[in] 레지스트리에서 프로그램의 스레딩 모델을 포함하는 DWORD입니다. THREADFLAGS_APARTMENT, THREADFLAGS_BOTH 또는 AUTPRXFLAG 값 중 하나여야 합니다.
설명
표준 등록은 CLSID, 프로그램 ID, 버전 독립적 프로그램 ID, 설명 문자열 및 스레드 모델로 구성됩니다.
ATL 클래스 추가 마법사를 사용하여 개체 또는 컨트롤을 만들 때 마법사는 스크립트 기반 레지스트리 지원을 자동으로 구현하고 파일에 DECLARE_REGISTRY_RESOURCEID 매크로를 추가합니다. 스크립트 기반 레지스트리를 지원하지 않으려면 이 매크로를 DECLARE_REGISTRY 바꾸어야 합니다. DECLARE_REGISTRY 위에서 설명한 5개의 기본 키만 레지스트리에 삽입합니다. 레지스트리에 다른 키를 삽입하는 코드를 수동으로 작성해야 합니다.
DECLARE_REGISTRY_APPID_RESOURCEID
appid를 자동으로 등록하는 데 필요한 정보를 지정합니다.
DECLARE_REGISTRY_APPID_RESOURCEID(
resid,
appid )
매개 변수
resid
appid에 대한 정보를 포함하는 .rgs 파일의 리소스 ID입니다.
appid
GUID
설명
파생 클래스에서 CAtlModuleT
DECLARE_REGISTRY_APPID_RESOURCEID 사용합니다.
예시
클래스 코드 추가 마법사를 사용하여 ATL 프로젝트에 추가된 클래스에는 이 매크로를 사용하는 샘플이 있습니다.
DECLARE_REGISTRY_RESOURCE
레지스트리 파일을 포함하는 명명된 리소스를 가져오고 스크립트를 실행하여 시스템 레지스트리에 개체를 입력하거나 시스템 레지스트리에서 제거합니다.
DECLARE_REGISTRY_RESOURCE( x )
매개 변수
x
[in] 리소스의 문자열 식별자입니다.
설명
ATL 프로젝트 마법사를 사용하여 개체 또는 컨트롤을 만들 때 마법사는 스크립트 기반 레지스트리 지원을 자동으로 구현하고 DECLARE_REGISTRY_RESOURCE 유사한 DECLARE_REGISTRY_RESOURCEID 매크로를 파일에 추가합니다.
최적화된 레지스트리 액세스를 위해 ATL 레지스트리 구성 요소(등록 기관)와 정적으로 연결할 수 있습니다. 등록자 코드에 정적으로 연결하려면 pch.h 파일(Visual Studio 2017 이하의 stdafx.h)에 다음 줄을 추가합니다.
#define _ATL_STATIC_REGISTRY
ATL이 런타임에 대체 값을 대체하도록 하려면 DECLARE_REGISTRY_RESOURCE 또는 DECLARE_REGISTRY_RESOURCEID 매크로를 지정하지 마세요. 대신 각 항목에 런타임에 자리 표시자를 대체할 값과 쌍을 이루는 변수 자리 표시자가 포함된 구조체 배열 _ATL_REGMAP_ENTRIES
을 만듭니다. 그런 다음, CAtlModule::UpdateRegistryFromResourceD 또는 CAtlModule::UpdateRegistryFromResourceS를 호출하여 배열을 전달합니다. 이렇게 하면 구조체의 모든 대체 값이 _ATL_REGMAP_ENTRIES
등록 기관의 대체 맵에 추가됩니다.
대체 가능한 매개 변수 및 스크립팅에 대한 자세한 내용은 ATL 레지스트리 구성 요소(등록 기관) 문서를 참조하세요.
DECLARE_REGISTRY_RESOURCEID
문자열 이름이 아닌 마법사에서 생성된 UINT를 사용하여 리소스를 식별한다는 점을 제외하면 DECLARE_REGISTRY_RESOURCE 동일합니다.
DECLARE_REGISTRY_RESOURCEID( x )
매개 변수
x
[in] 마법사에서 생성된 리소스 식별자입니다.
설명
ATL 프로젝트 마법사를 사용하여 개체 또는 컨트롤을 만들 때 마법사는 스크립트 기반 레지스트리 지원을 자동으로 구현하고 파일에 DECLARE_REGISTRY_RESOURCEID 매크로를 추가합니다.
최적화된 레지스트리 액세스를 위해 ATL 레지스트리 구성 요소(등록 기관)와 정적으로 연결할 수 있습니다. 등록자 코드에 정적으로 연결하려면 stdafx.h 파일(Visual Studio 2019 이상에서 pch.h)에 다음 줄을 추가합니다.
#define _ATL_STATIC_REGISTRY
ATL이 런타임에 대체 값을 대체하도록 하려면 DECLARE_REGISTRY_RESOURCE 또는 DECLARE_REGISTRY_RESOURCEID 매크로를 지정하지 마세요. 대신 각 항목에 런타임에 자리 표시자를 대체할 값과 쌍을 이루는 변수 자리 표시자가 포함된 구조체 배열 _ATL_REGMAP_ENTRIES
을 만듭니다. 그런 다음, CAtlModule::UpdateRegistryFromResourceD 또는 CAtlModule::UpdateRegistryFromResourceS를 호출하여 배열을 전달합니다. 이렇게 하면 구조체의 모든 대체 값이 _ATL_REGMAP_ENTRIES
등록 기관의 대체 맵에 추가됩니다.
대체 가능한 매개 변수 및 스크립팅에 대한 자세한 내용은 ATL 레지스트리 구성 요소(등록 기관) 문서를 참조하세요.