Показать сообщение отдельно
  #1  
Старый 07.10.2014, 21:13
Аватар для Sergios
Sergios Sergios вне форума
Прохожий
 
Регистрация: 07.10.2014
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
Восклицание Callback функции

Приветствую!
Столкнулся с тем, что понадобилось использовать callback functions.
В исходниках (заголовочные файлы) функции определены как:
Код:
WINBASEAPI
BOOL
WINAPI
EnumFuncA(
    _In_ A_ENUMPROC lpEnumProc,
    _In_ DWORD                   dwFlags,
    _In_ LONG_PTR                lParam);

WINBASEAPI
BOOL
WINAPI
EnumFuncB(
    _In_ B_ENUMPROC lpEnumProc,
    _In_ DWORD            dwFlags);
Далее нашел как определены A_ENUMPROC и B_ENUMPROC:
Код:
#ifdef STRICT
typedef BOOL (CALLBACK* A_ENUMPROC)(LPSTR, LPSTR, LPSTR, DWORD, LONG_PTR);
typedef BOOL (CALLBACK* B_ENUMPROC)(LPSTR);
#else
typedef FARPROC A_ENUMPROC;
typedef FARPROC B_ENUMPROC;
#endif
Естественно возникает сразу вопрос "Как перевести на "русский" (т.е. на Delphi) вторую часть (там где определены типы (typedef)). Во-вторых, как после этого использовать callback функции. Я об этой разновидности функций имею весьма общее представление.
Гугл мне тут не помог.
Благодарю заранее за помощь.
UPD (нашел и сами функции):
Код:
BOOL CALLBACK EnumProc_A(
  _In_  LPSTR lpArg0,
  _In_  LPSTR lpArg1,
  _In_  LPSTR lpArg2,
  _In_  DWORD dwFlags,
  _In_  LONG_PTR lParam
);

BOOL CALLBACK EnumProc_B(
  _In_  LPSTR lpArg
);
Стало вообще непонятно, что кого вызывает...
Ответить с цитированием