Поделиться через


Структура 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

Строка со значением NULL, указывающая путь к файлу манифеста или образу PE, который будет использоваться для создания контекста активации. Если этот путь ссылается на ФАЙЛ EXE или DLL, необходимо использовать элемент lpResourceName .

wProcessorArchitecture

Определяет тип используемого процессора. Задает архитектуру процессора системы.

Это значение может быть одним из следующих значений:

wLangId

Указывает языковой манифест, который следует использовать. По умолчанию используется текущий язык пользовательского интерфейса текущего пользователя.

Если запрошенный язык не найден, выполняется поиск приближения в следующем порядке:

  • Язык текущего пользователя. Например, для английского языка США (1033).
  • Основной язык текущего пользователя. Например, для английского языка (9).
  • Язык текущей системы.
  • Основной язык текущей системы.
  • Неспецифичный язык по всему миру. Язык нейтрален (0).

lpAssemblyDirectory

Базовый каталог, в котором выполняется проверка частных сборок, если сборки в контексте активации отсутствуют в системном хранилище.

lpResourceName

Указатель на строку, завершающуюся значением NULL, которая содержит имя ресурса, загружаемого из pe, указанного в hModule или lpSource. Если имя ресурса является целым числом, задайте этот член с помощью MAKEINTRESOURCE. Этот член является обязательным, если lpSource ссылается на EXE или DLL.

lpApplicationName

Имя текущего приложения. Если для этого элемента задано значение NULL, используется имя исполняемого файла, запускающего текущий процесс.

hModule

Используйте этот член, а не lpSource, если вы уже загрузили библиотеку DLL и хотите использовать ее для создания контекстов активации, а не для использования пути в lpSource. Правила поиска ресурсов в этом модуле см. в разделе lpResourceName .

Комментарии

Если файл, определенный по значению элемента lpSource , является файлом образа PE, CreateActCtx ищет манифест в файле .manifest, расположенном в том же каталоге, и в первом ресурсе RT_MANIFEST, расположенном в файле образа PE. Чтобы найти конкретный именованный ресурс из образа, задайте для lpResourceName имя ресурса и добавьте ACTCTX_FLAG_RESOURCE_NAME_VALID в член dwFlags . Дополнительные сведения об указании имен ресурсов см. в разделе FindResource .

В большинстве случаев вызывающий объект не должен задавать ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID и ACTCTX_FLAG_LANGID_VALID флаги элемента dwFlags . Кроме того, в большинстве случаев значение элемента lpResourceName должно иметь значение NULL.

Значения lpApplicationName и lpAssemblyDirectory не имеют значения NULL, если исполняемый файл, создающий контекст активации, является узлом для приложения. В этом случае узел может задать другое имя для приложения, чтобы находить файлы конфигурации, сообщать об ошибках и т. д.

Примечание

Заголовок winbase.h определяет ACTCTX как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winbase.h (включая Windows.h)

См. также раздел

ACTCTX_SECTION_KEYED_DATA

CreateActCtx