愚痴解決 [プログラミング]
Video Fow Windowsをクラスでカプセル化していて、コールバック関数を
BOOL TVfwWrapper::SetCallbackOnVideoStream(TVideoStreamCbProc fpProc) {
return SndVFWMsg(WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0,(LPARAM)(LPVOID)(fpProc));
}
ってな風に作っていました。
そして
typedef LRESULT (TVideoStreamCbProc)(HWND,VIDEOHDR static LRESULT VideoStreamCbProc(HWND hWnd,VIDEOHDR* lpVHdr) {
TVfwWrapper* pThis = (TVfwWrapper*)GetProp(hWnd,"ThisPoint");
return (pThis != NULL)? pThis->VideoStreamCallback(lpVHdr):(LRESULT)0;
}
としていたのを、
typedef LRESULT (CALLBACK *TVideoStreamCbProc)(HWND,VIDEOHDR*);
static LRESULT CALLBACK VideoStreamCbProc(HWND hWnd,VIDEOHDR* lpVHdr) {
TVfwWrapper* pThis = (TVfwWrapper*)GetProp(hWnd,"ThisPoint");
return (pThis != NULL)? pThis->VideoStreamCallback(lpVHdr):(LRESULT)0;
}
と、直したら、ちゃんと動くようになりました。
愚痴ってふて寝して目が覚めたら解決とは・・・。
この2週間はなんだったんだ(苦笑)。
コメント 0