前些日子捣鼓了下VFW,里面注册回调(callback)函数是通过sendmessage函数实现的,也就是把回调函数的指针作为参数发送给hWnd即可。折腾了不少时间,下面是代码
这是C/C++代码
typedef struct videohdr_tag {
LPBYTE lpData;
DWORD dwBufferLength;
DWORD dwBytesUsed;
DWORD dwTimeCaptured;
DWORD dwUser;
DWORD dwFlags;
DWORD dwReserved[4];
} VIDEOHDR, *PVIDEOHDR, *LPVIDEOHDR;
#define capSetCallbackOnVideoStream(handle, callback)
(safeSendMessage (handle, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, callback))
capSetCallbackOnVideoStream(mhwnd, VideoCallback);
LRESULT CALLBACK VDCaptureDriverVFW::VideoCallback(HWND hwnd, LPVIDEOHDR lpVHdr) {
VDCaptureDriverVFW *pThis = (VDCaptureDriverVFW *)capGetUse