Welcome to CAVICapWnd, A freeware MFC class to encapsulate the Video For Windows API.
Features
- The class provides a familiar MFC interface to the VFW API. The class derives
from CWnd and translates the message based VFW API into standard C++ methods.
- All code compiles cleanly at level 4 and is UNICODE enabled.
The enclosed zip file contains the CAVICapWnd
source code, documentation and a simple MFC SDI app which implements the same functionality
as the VFW SDK sample "AviCap32".
Updates
v1.19 (6 June 2022)
- Updated the code to use C++ uniform initialization for all variable
declarations
- Updated copyright details.
v1.18 (4 April 2020)
- Updated copyright details.
- Fixed more Clang-Tidy static code analysis warnings in the code.
v1.17 (26 December 2019)
- Fixed various Clang-Tidy static code analysis warnings in the code.
- Updated initialization of various structs to use C++ 11 list
initialization
v1.16 (25 September 2019)
- Fixed a number of compiler warnings when the code is compiled with VS
2019 Preview
v1.15 (3 June 2019)
- Updated copyright details.
- Updated the code to clean compile on VC 2019
v1.14 (28 December 2018)
- Updated copyright details
- Fixed a number of C++ core guidelines compiler warnings. These changes
mean that the code will now only compile on VC 2017 or later.
v1.13 (8 January 2016)
- Updated copyright details
- Updated the code to compile cleanly in VC 2008 - VC 2015.
- Fixed a bug in CAVICapWnd::GetVersion where it was using the message WM_CAP_DRIVER_GET_NAME
instead of WM_CAP_DRIVER_GET_VERSION
- Added SAL annotations to all the code
3 July 2009
- Updated the zip file to include correct sln and vcproj files
v1.12 (29 December 2008)
- Updated copyright details
- Removed VC 6 style AppWizard comments from the code.
- Updated code to compile correctly using _ATL_CSTRING_EXPLICIT_CONSTRUCTORS
define
- Code now compiles cleanly using Code Analysis (/analyze)
- The code now only supports VC 2005 or later.
- Fixed a bug in the ManualCreatePalette method where the wrong windows message
was being used.
- Various functions now take a LPCTSTR instead of a const CString& parameter.
- Code now supports the WM_CAP_GET_MCI_DEVICE message
- SetScroll method now takes a LPPOINT parameter
- Fixed a bug in GetDescription where the description parameter was not being
passed by reference.
v1.11 (19 December 2006)
- Updated the copyright details
- Updated the sample app to clean compile on VC 2005
- Updated the documentation to use the same style as my web site.
- Code now uses newer C++ style casts instead of C style casts.
- Removed CAVICapWnd destructor as it was unused
- Fixed a bug in CAVICapWnd::SetUserData where the wrong message was being
used.
- Reviewed all TRACE statements for correctness.
- Addition of a AVICAPWND_EXT_CLASS preprocessor macro to allow the class
to be more easily added to an extension DLL.
v1.1 (16 October 2000)
- The following values have been made persistent
a) The name of the capture
file
b) The capture frame rate
c) Whether audio should be captured
d) The limit capture option
e) The time limit option
f) The capture width,
height and bit depth
g) The stretch option
h) The VFW device last connected
to
i) The audio settings
j) The overlay and preview state
- The program auto connects if there is only one device
- Stretching the image to the client area is now supported
- User is now prompted to hit ok when starting to capture video
- Sample app now handles palette messages correctly
- The program brings up the connection dialog initially if there is multiple
devices installed.
v1.0 (11 October 2000)