Приветствую!
Столкнулся с тем, что понадобилось использовать 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
);
Стало вообще непонятно, что кого вызывает...