다음을 통해 공유


레지스트리 매크로

이러한 매크로는 유용한 형식 라이브러리 및 레지스트리 기능을 정의합니다.

이름 설명
_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입니다.

설명

파생 클래스에서 CAtlModuleTDECLARE_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

설명

파생 클래스에서 CAtlModuleTDECLARE_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 레지스트리 구성 요소(등록 기관) 문서를 참조하세요.

참고 항목

매크로