-static int ffmpeg_initialized = 0;
-static CvCaptureFromFile icvCaptureFromFile_FFMPEG_p = 0;
-static CvCreateVideoWriter icvCreateVideoWriter_FFMPEG_p = 0;
-static CvWriteFrame icvWriteFrame_FFMPEG_p = 0;
-static CvReleaseVideoWriter icvReleaseVideoWriter_FFMPEG_p = 0;
-static HMODULE ffopencv = 0;
+extern "C"
+{
+typedef CvCapture* (*CvCreateFileCapture_Plugin)( const char* filename );
+typedef CvCapture* (*CvCreateCameraCapture_Plugin)( int index );
+typedef void (*CvReleaseCapture_Plugin)( CvCapture** capture );
+typedef CvVideoWriter* (*CvCreateVideoWriter_Plugin)( const char* filename, int fourcc,
+ double fps, CvSize frameSize, int isColor );
+typedef void (*CvReleaseVideoWriter_Plugin)( CvVideoWriter** writer );
+}
+
+static HMODULE icvFFOpenCV = 0;
+static CvCreateFileCapture_Plugin icvCreateFileCapture_FFMPEG_p = 0;
+static CvReleaseCapture_Plugin icvReleaseCapture_FFMPEG_p = 0;
+static CvCreateVideoWriter_Plugin icvCreateVideoWriter_FFMPEG_p = 0;
+static CvReleaseVideoWriter_Plugin icvReleaseVideoWriter_FFMPEG_p = 0;
+