Функция CallProcEx32W


Функция CallProcEx32W используется в 16-разрядном коде, чтобы вызвать функцию точки входа в динамически подключаемую библиотеку (DLL) Win32.

Синтаксис

DWORD FAR CallProcEx32W(
  DWORD nParams,
  DWORD fAddressConvert,
  DWORD lpProcAddress,
  DWORD param1,
   ...
);

Параметры

nParams

[in] Число параметров, которое передается в функцию (от param1 до paramN). Для функций, которые не получают никаких параметров, этот параметр должен быть нуль. Вы можете также указать, в соответствии соглашением о вызовах, использование оператора OR (ИЛИ), чтобы объединить это значение с одним из ниже перечисленных значений.

Значение

Предназначение

CPEX_DEST_STDCALL Функция использует в соответствии с соглашением о вызовах - стандартный вызов. Это - значение по умолчанию.
CPEX_DEST_CDECL Функция использует соглашение о вызовах языка C.

fAddressConvert

[in] Представление битовой маски, какие параметры должны быть обработаны как указатели 16:16, а какие преобразованы в плоскость линейных указателей перед передачей их в 32-разрядную процедуру. Самый младший бит в маске представляет первый параметр заданный как (param1), второй самый младший бит представляет второй от последнего параметра, заданный как (param2) и так далее, так, чтобы самый старший бит в маске представлял paramN.

lpProcAddress

[in] Значение, соответствующее вызываемой процедуре, которое возвращается функцией GetProcAddress32W.

param1

[in] Первый параметр для 32-разрядной процедуры, представленной параметром lpProcAddress.

...

[in] Дополнительные параметры для 32-разрядной процедуры, представленной lpProcAddress. Может быть от param2 до param32.

Возвращаемые значения

Возвращает значение из 32-разрядной процедуры, представленной lpProcAddress. Возвращаемое значение может также быть нулем при нижеследующих условиях:

Замечания

Функция CallProcEx32W автоматически не устанавливает глобальные дескрипторы памяти, которые преобразуются в указатели 0:32. Поэтому, Вы должны сначала вызвать по дескриптору функцию GlobalFix или GlobalWire, а потом GlobalUnfix и GlobalUnwire.

Windows Me/98/95: Глобальное сжатие информации в любое время может переместить блоки памяти в ходе исполнения 32-разрядного кода текущего потока. Из-за этого, сегменты, перед вызовом целевой функции, работающей в Windows NT, не фиксируются, и могут послужить причиной приведения в состояние гонки в Windows Me/98/95.

Смотри также

Обзор Унифицированные "переходники " между 16-ти и 32-разрядными модулями, 16-разрядные функции унифицированного "переходника", GetProcAddress32W

Размещение и совместимость CallProcEx32W
К Windows XP Да
л Windows 2000 Professional Да
и Windows NT Workstation Да
е Windows Me Да
н Windows 98 Да
т Windows 95 Да
С Windows 2003 Server Да
е Windows 2000 Server Да
р Windows NT Server Да
в
е
р
Используемая библиотека -
Используемая DLL -
Заголовочный файл
- объявлено в Wownt16.h
- включено в -
Unicode
Замечания по платформе Не имеется

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz