Невозможно понять объявление функции указателя typedef в исходном коде OBS-Studio.
Я понимаю указатель функции typedef, например
typedef void (*myType) ( );
// ^ ^ ^
// return type type name arguments
myType x;
void myFunc() { std::cout<<"Hello\n"; }
x = &myFunc;
x(); // will print "Hello"
Но я не могу понять эту строку из исходного кода OBS Studio по адресу
https://github.com/obsproject/libdshowcapture/blob/master/source/external/IVideoCaptureFilter.h.
//! Message callback
typedef void (CALLBACK* PFN_VIDEO_CAPTURE_FILTER_NOTIFICATION_CALLBACK)(VIDEO_CAPTURE_FILTER_NOTIFICATION nMessage, void* pData, int nSize, void* pContext);
Я не могу понять, почему
CALLBACK*
а также
PFN_VIDEO_CAPTURE_FILTER_NOTIFICATION_CALLBACK
вместе в
()
и что я должен понимать под этим заявлением?