Здравствуйте THEOS, Вы писали: THEOS>Чем интересна "CALLBACK" функция в чём её смысл, особенности и чем она отличается от функции типа callforward . Ничем. Callback-функциями называют такие функции, которые реализуются в приложении, а вызываются операционной системой (или, в общем случае, другим модулем). Типичный пример callback-функции — функция окна. Поскольку вызывающий callback-функцию код уже написан и скомпилирован, типы аргументов и способ передачи аргументов (calling convention) строго определены. Так, например, функция окна обязательна должна соответствовать следующему прототипу:
Все callback-функции в Win32 имеют соглашение о вызове __stdcall. Макрос CALLBACK, используемый в объявлении таких функций, определен как
и несет двоякую роль: c одной стороны он устанавливает правильное соглашение о вызове (что можно сделать и без его помощи, как показано в примере выше), а с другой — сообщает о том, что объявляемая функция используется в качестве callback-функции. Поэтому чаще всего можно встретить объявление функции окна в таком виде:
который полностью эквивалентен предыдующему. |