다음을 통해 공유


ACTCTXA 구조체(winbase.h)

ACTCTX 구조체는 CreateActCtx 함수에서 활성화 컨텍스트를 만드는 데 사용됩니다.

구문

typedef struct tagACTCTXA {
  ULONG   cbSize;
  DWORD   dwFlags;
  LPCSTR  lpSource;
  USHORT  wProcessorArchitecture;
  LANGID  wLangId;
  LPCSTR  lpAssemblyDirectory;
  LPCSTR  lpResourceName;
  LPCSTR  lpApplicationName;
  HMODULE hModule;
} ACTCTXA, *PACTCTXA;

멤버

cbSize

이 구조체의 크기(바이트)입니다. 이 구조체의 버전을 확인하는 데 사용됩니다.

dwFlags

이 구조체에 포함된 값을 사용하는 방법을 나타내는 플래그입니다. dwFlags의 정의되지 않은 비트를 0으로 설정합니다. 정의되지 않은 비트가 0으로 설정되지 않은 경우 활성화 컨텍스트를 만드는 CreateActCtx 호출이 실패하고 잘못된 매개 변수 오류 코드를 반환합니다.

비트 플래그 의미
ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID
1
0x001
ACTCTX_FLAG_LANGID_VALID
2
0x002
ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID
4
0x004
ACTCTX_FLAG_RESOURCE_NAME_VALID
8
0x008
ACTCTX_FLAG_SET_PROCESS_DEFAULT
16
0x010
ACTCTX_FLAG_APPLICATION_NAME_VALID
32
0x020
ACTCTX_FLAG_HMODULE_VALID
128
0x080

lpSource

활성화 컨텍스트를 만드는 데 사용할 매니페스트 파일 또는 PE 이미지의 경로를 지정하는 Null로 끝나는 문자열입니다. 이 경로가 EXE 또는 DLL 파일을 참조하는 경우 lpResourceName 멤버가 필요합니다.

wProcessorArchitecture

사용되는 프로세서 유형을 식별합니다. 시스템의 프로세서 아키텍처를 지정합니다.

이 값은 다음 값 중 하나일 수 있습니다.

wLangId

사용해야 하는 언어 매니페스트를 지정합니다. 기본값은 현재 사용자의 현재 UI 언어입니다.

요청된 언어를 찾을 수 없는 경우 다음 순서를 사용하여 근사값을 검색합니다.

  • 현재 사용자의 특정 언어입니다. 예를 들어 미국 영어(1033)의 경우입니다.
  • 현재 사용자의 기본 언어입니다. 예를 들어 영어(9)의 경우입니다.
  • 현재 시스템의 특정 언어입니다.
  • 현재 시스템의 기본 언어입니다.
  • 비특이적 전 세계 언어입니다. 언어 중립(0).

lpAssemblyDirectory

활성화 컨텍스트의 어셈블리가 시스템 전체 저장소에 없는 경우 프라이빗 어셈블리 검색을 수행할 기본 디렉터리입니다.

lpResourceName

hModule 또는 lpSource에 지정된 PE에서 로드할 리소스 이름을 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 리소스 이름이 정수인 경우 MAKEINTRESOURCE를 사용하여 이 멤버를 설정합니다. lpSource가 EXE 또는 DLL을 참조하는 경우 이 멤버가 필요합니다.

lpApplicationName

현재 애플리케이션의 이름입니다. 이 멤버의 값을 null로 설정하면 현재 프로세스를 시작한 실행 파일의 이름이 사용됩니다.

hModule

이미 DLL을 로드하고 lpSource 의 경로를 사용하는 대신 활성화 컨텍스트를 만드는 데 사용하려는 경우 lpSource 대신 이 멤버를 사용합니다. 이 모듈에서 리소스를 조회하는 규칙은 lpResourceName 을 참조하세요.

설명

lpSource 멤버의 값으로 식별된 파일이 PE 이미지 파일인 경우 CreateActCtx는 동일한 디렉터리와 PE 이미지 파일에 있는 첫 번째 RT_MANIFEST 리소스에 있는 .manifest 파일에서 매니페스트를 검색합니다. 이미지에서 명명된 특정 리소스를 찾으려면 lpResourceName 을 리소스 이름으로 설정하고 dwFlags 멤버에 ACTCTX_FLAG_RESOURCE_NAME_VALID 추가합니다. 리소스 이름을 지정하는 방법에 대한 자세한 내용은 FindResource 를 참조하세요.

대부분의 경우 호출자는 dwFlags 멤버의 ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID 및 ACTCTX_FLAG_LANGID_VALID 플래그를 설정해서는 안 됩니다. 또한 대부분의 경우 lpResourceName 멤버의 값을 null로 설정해야 합니다.

활성화 컨텍스트를 만드는 실행 파일이 애플리케이션의 호스트인 경우 lpApplicationNamelpAssemblyDirectory 의 값은 null로 설정되지 않습니다. 이 경우 호스트는 애플리케이션의 다른 이름을 설정하여 구성 파일을 찾고 오류를 보고할 수 있습니다.

참고

winbase.h 헤더는 ACTCTX를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winbase.h(Windows.h 포함)

추가 정보

ACTCTX_SECTION_KEYED_DATA

CreateActCtx