ACTCTXA 结构 (winbase.h)
CreateActCtx 函数使用 ACTCTX 结构来创建激活上下文。
语法
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 创建激活上下文失败,并返回无效的参数错误代码。
lpSource
以 Null 结尾的字符串,指定要用于创建激活上下文的清单文件或 PE 映像的路径。 如果此路径引用 EXE 或 DLL 文件,则需要 lpResourceName 成员。
wProcessorArchitecture
标识使用的处理器类型。 指定系统的处理器体系结构。
此值可以是以下值之一:
wLangId
指定应使用的语言清单。 默认值为当前用户的当前 UI 语言。
如果找不到请求的语言,将按以下顺序搜索近似值:
- 当前用户的特定语言。 例如,对于美国英语(1033)。
- 当前用户的主要语言。 例如,对于英语(9)。
- 当前系统的特定语言。
- 当前系统的主要语言。
- 非特定全球语言。 语言中性(0)。
lpAssemblyDirectory
如果激活上下文中的程序集不在系统范围的存储中,则执行专用程序集探测的基目录。
lpResourceName
指向一个以 null 结尾的字符串的指针,该字符串包含要从 hModule 中指定的 PE 加载的资源名称,或 lpSource。 如果资源名称是整数,请使用 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。
lpApplicationName 和 lpAssemblyDirectory 的值在创建激活上下文的可执行文件是应用程序的主机时,不会设置为 null。 在这种情况下,主机可以为应用程序设置不同的名称来查找配置文件、报告错误等。
注意
winbase.h 标头将 ACTCTX 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | winbase.h (包括 Windows.h) |