ACTCTXW 结构 (winbase.h)

CreateActCtx 函数使用 ACTCTX 结构来创建激活上下文。

语法

typedef struct tagACTCTXW {
  ULONG   cbSize;
  DWORD   dwFlags;
  LPCWSTR lpSource;
  USHORT  wProcessorArchitecture;
  LANGID  wLangId;
  LPCWSTR lpAssemblyDirectory;
  LPCWSTR lpResourceName;
  LPCWSTR lpApplicationName;
  HMODULE hModule;
} ACTCTXW, *PACTCTXW;

成员

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

以 Null 结尾的字符串,指定要用于创建激活上下文的清单文件或 PE 映像的路径。 如果此路径引用 EXE 或 DLL 文件,则需要 lpResourceName 成员。

wProcessorArchitecture

标识使用的处理器类型。 指定系统的处理器体系结构。

此值可以是以下值之一:

wLangId

指定应使用的语言清单。 默认值为当前用户的当前 UI 语言。

如果找不到请求的语言,则使用以下顺序搜索近似值:

  • 当前用户的特定语言。 例如,对于美国英语 (1033) 。
  • 当前用户的主要语言。 例如,对于英语 (9) 。
  • 当前系统的特定语言。
  • 当前系统的主要语言。
  • 一种非特定全球语言。 非特定语言 (0) 。

lpAssemblyDirectory

如果激活上下文中的程序集不存在于系统范围的存储中,则执行专用程序集探测的基目录。

lpResourceName

指向以 null 结尾的字符串的指针,该字符串包含要从 hModulelpSource 中指定的 PE 加载的资源名称。 如果资源名称为整数,请使用 MAKEINTRESOURCE 设置此成员。 如果 lpSource 引用 EXE 或 DLL,则此成员是必需的。

lpApplicationName

当前应用程序的名称。 如果此成员的值设置为 null,则使用启动当前进程的可执行文件的名称。

hModule

如果已加载 DLL 并希望使用它来创建激活上下文,而不是 在 lpSource 中使用路径,请使用此成员而不是 lpSource。 有关在此模块中查找资源的规则,请参阅 lpResourceName

注解

如果 由 lpSource 成员的值标识的文件是 PE 映像文件, CreateActCtx 将在位于同一目录的 .manifest 文件中搜索清单,并在 PE 映像文件中的第一个RT_MANIFEST资源中搜索清单。 若要从映像中查找特定的命名资源,请将 lpResourceName 设置为该资源的名称,并将ACTCTX_FLAG_RESOURCE_NAME_VALID添加到 dwFlags 成员。 有关指定资源名称的详细信息,请参阅 FindResource

在大多数情况下,调用方不应设置 dwFlags 成员的ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID和ACTCTX_FLAG_LANGID_VALID标志。 此外,在大多数情况下, lpResourceName 成员的值应设置为 null。

当创建激活上下文的可执行文件是应用程序的主机时, lpApplicationNamelpAssemblyDirectory 的值不会设置为 null。 在这种情况下,主机可以为应用程序设置不同的名称,以查找配置文件、报告错误等。

注意

winbase.h 标头将 ACTCTX 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winbase.h (包括 Windows.h)

另请参阅

ACTCTX_SECTION_KEYED_DATA

CreateActCtx