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


Структура ACTCTXW (winbase.h)

Структура ACTCTX используется функцией CreateActCtx для создания контекста активации.

Синтаксис

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

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

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

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

lpAssemblyDirectory

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

lpResourceName

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

lpApplicationName

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

hModule

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

Замечания

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

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

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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
заголовка winbase.h (включая Windows.h)

См. также

ACTCTX_SECTION_KEYED_DATA

CreateActCtx