Функция WOWCallback16Ex


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

Синтаксис

BOOL WINAPI WOWCallback16Ex(
  DWORD vpfn16,
  DWORD dwFlags,
  DWORD cbArgs,
  PVOID pArgs,
  PDWORD pdwRetCode
);

Параметры

vpfn16

[in] Указатель 16:16 на 16-разрядную процедуру обратного вызова, которую передают с 16-разрядной стороны.

dwFlags

[in] Указывает соглашение о вызовах. Этот параметр может быть одним из ниже перечисленных значений.

Значение

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

WCB16_CDECL Вызывает _cdecl процедуру обратного вызова.
WCB16_PASCAL Вызывает _pascal процедуру обратного вызова (значение по умолчанию).

cbArgs

[in] Количество байтов в параметрах (используется, чтобы правильно очистить 16-разрядный стек).

pArgs

[in] Параметры для процедуры обратного вызова.

pdwRetCode

[out] Получает код возврата от процедуры обратного вызова.

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

Если параметр cbArgs является больше, чем WCB16_MAX_ARGS байтов, которое поддерживает система, возвращаемое значение - ЛОЖЬ (FALSE), а функция GetLastError возвращает значение ERROR_INVALID_PARAMETER. В противном случае, возвращаемое значение - ИСТИНА (TRUE) и двойное слово (DWORD), которое указывает при помощи параметра pdwRetCode содержимое кода возврата из процедуры обратного вызова. Если процедура обратного вызова возвращает значение типа слова (WORD) вместо двойного слова (DWORD), старшие 16 битов кода возврата не определяются и должны игнорироваться при помощи использования макроса LOWORD на возвращаемом значении.

Замечания

Функция WOWCallback16Ex позволяет любую комбинацию параметров до общего количества байтов WCB16_MAX_CBARGS, которые передаются в 16-разрядную процедуру обратного вызова. Независимо от значения параметра cbArgs, WCB16_MAX_CBARGS байтов будут всегда копироваться из pArgs в 16-разрядный стек. Если pArgs меньше, чем WCB16_MAX_CBARGS байтов от конца страницы и недоступны на следующей странице, то WOWCallback16Ex подвергнется процедуре нарушения доступа.

Параметры указываются при помощи pArgs, должны быть в правильном порядке в соответствии с соглашением о вызовах процедуры обратного вызова. Например, чтобы вызвать процедуру в соответствии с языком Pascal, поместите параметры в массив pArgs в обратном порядке сначала с наименьшим значимым словом для типов двойного слова (DWORD) и начальным смещением FAR для указателей.

Когда Вы вызываете _cdecl процедуру, то поместите параметры в массив pArgs, по порядку перечисленному в прототипе функции сначала с наименьшим значимым словом для типов двойного слова (DWORD) и начальным смещением FAR для указателей.

Смотри также

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

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

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

Hosted by uCoz