Quantcast
Viewing all articles
Browse latest Browse all 516897

Callback функции в Windows - C++ и WinAPI

Нужно получить runtime способность вызыва любой callback функции. Например обрабочики wndproc, enumwindows, enumfont, enumprocess и другие, но для них всех нужен свой прототип. Мне хотелось бы свести все callback функции к одной, может через лямбду или шаблон, иди ещё как..

Подробнее: есть структура типа VARIANT, есть механизм вызова любой функции из DLL, вот нужно вызвать такую, где аргументом является callback (xxxPROC), при этом мне хочется все возможные виды таких функций соединть в одной, и по некоторым иным признакам уже в ней определять обработку, не знаю как соеденить их все в одну.


Буду благодарен если кто поможет с данным вопросом.

Добавлено через 8 минут
Например:

Код:

int k = 0;
int CALLBACK AnyProc(...); // прототип

//ляляля, код код..
k = 1;
EnumFontFamiliesExA(Dc,&lf,AnyProc,0,0); //вызов перечисления шрифтов, тип должен быть FONTENUMPROC
//ещё какой то код..
k = 2;
wcx.lpfnWndProc = AnyProc; //где то регистрирую окно и прикручиваю обработчик
//глубже в лес
k = 3;
EnumChildWindows(hwn,AnyProc,0);
//и собственно сама ф.
int CALLBACK AnyProc(...)
{
 int res = 0;
 int kArgs = 0;
 //вычисляю аргументы? (как - не знаю, обычно используют 0 агрумент типа int, для таких дел
 //по k - определяю в цикле тип действия и обработку
 return res;
}


Viewing all articles
Browse latest Browse all 516897

Trending Articles