Click here to Skip to main content
13,559,305 members
Click here to Skip to main content
Add your own
alternative version


48 bookmarked
Posted 11 Jan 2003

MFC Wrapper Class for MCIWnd

, 11 Jan 2003
Rate this:
Please Sign up or sign in to vote.
An MFC Wrapper Class for MCIWnd
<!-- Download Links --> <!-- Article image -->

Sample Image - MCIWndWrapper.gif

<!-- Add the rest of your HTML here -->


A recent small project required the use of MFC and it also needed to be able to play an AVI file. The Microsoft 'Video for Windows' technology seemed like the easiest route to go. To make the project coding cleaner, I built a MFC wrapper class CMCIWnd for the MCIWnd functions.

Using the code

There are no licensing restrictions on the use of the source code. This is completely an exercise in giving something back to a community that has helped me often when I needed some quick code.

To use the wrapper class in your own project, add MCIWnd.cpp and MCIWnd.h to your project. In your project settings, link to Vfw32.lib and Winmm.lib. Create a variable of type CMCIWnd and then call CMCIWnd::Create() to create the window, CMCIWnd::Open() to open an AVI file, and CMCIWnd::Play() to play the file.

The demo application shows how to do all this. I elected to keep the demo application very simple so you could quickly see how the CMCIWnd wrapper class would be used in an MFC project. Take a look at MCIWndWrapperDlg.cpp and its CWrapperDlg::OnPlayAVI() function. It shows how to use the CMCIWnd wrapper class to play an AVI file. Just in case you need to know how to do it, I also added MFC message handlers for the notifications that the MCIWnd window sends to a parent window.

Points of Interest

I did manage to make one improvement in the wrapper class that is not offered out of the box by MCIWnd. While you can set the MCIWnd to repeat/loop the playing of an AVI, the standard MCIWnd Play() function does not recognize this setting and will only play the AVI one time. I did a bit of digging in the mciSendCommand() function and came up with a way for the wrapper class's CMCIWnd::Play() function to recognize the repeat setting and have the AVI loop if CMCIWnd::GetRepeat() is TRUE.


  • 12/25/2002 Created.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Paul Kissel
Web Developer
United States United States
Paul Kissel is presently a Principal with RiverBend Software, Inc. - a consulting services company specializing in the design and development of consumer-focused, commercial application software for Microsoft Windows.

You may also be interested in...

Comments and Discussions

QuestionOpen file after play error Pin
phydthekid16-Dec-09 4:44
memberphydthekid16-Dec-09 4:44 
GeneralDrag the slider hang the application Pin
Ha_Tim10-Dec-09 16:19
memberHa_Tim10-Dec-09 16:19 
GeneralNeed Information about CDateTimeCtrl in VC++ Pin
John50218-Mar-09 22:28
memberJohn50218-Mar-09 22:28 
GeneralMCIWndOpenInterface & AVI Streams Pin
sdancer7531-Oct-07 2:02
membersdancer7531-Oct-07 2:02 
GeneralRe: MCIWndOpenInterface & AVI Streams Pin
Viorel.31-Oct-07 3:18
memberViorel.31-Oct-07 3:18 
GeneralRe: MCIWndOpenInterface &amp; AVI Streams [modified] Pin
sdancer7531-Oct-07 3:48
membersdancer7531-Oct-07 3:48 
GeneralVideo position using time format hh:mm:ss Pin
sdancer7510-Oct-07 5:21
membersdancer7510-Oct-07 5:21 
QuestionPlay an encrypted AVI Pin
Farshid13583-May-06 9:50
memberFarshid13583-May-06 9:50 
GeneralThanks! Pin
S Douglas24-Jan-06 16:14
memberS Douglas24-Jan-06 16:14 
GeneralRe: Thanks! Pin
LordofthePings11-May-11 9:11
memberLordofthePings11-May-11 9:11 
GeneralRe: Thanks! Pin
S Douglas11-May-11 11:38
memberS Douglas11-May-11 11:38 
GeneralMCIWnd Blinks in Upper Left Corner Pin
PFG2329-Mar-05 5:37
sussPFG2329-Mar-05 5:37 
GeneralMCIWnd has severe bug Pin
yinfudan16-Jan-05 0:59
memberyinfudan16-Jan-05 0:59 
GeneralRe: MCIWnd has severe bug Pin
PFG2329-Mar-05 5:33
sussPFG2329-Mar-05 5:33 
GeneralRe: MCIWnd has severe bug Pin
yinfudan29-Mar-05 14:46
memberyinfudan29-Mar-05 14:46 
Generalhelp!!!!!! Pin
santra11-Jun-03 1:15
susssantra11-Jun-03 1:15 
Generalurgent help Pin
santra28-May-03 21:36
susssantra28-May-03 21:36 
GeneralRe: urgent help Pin
Paul Kissel29-May-03 7:13
memberPaul Kissel29-May-03 7:13 
GeneralRe: urgent help Pin
Santra1-Jun-03 19:23
sussSantra1-Jun-03 19:23 
GeneralRe: urgent help Pin
Paul Kissel1-Jun-03 21:35
memberPaul Kissel1-Jun-03 21:35 
GeneralRe: urgent help Pin
luweiwinson16-Jul-08 21:19
memberluweiwinson16-Jul-08 21:19 
GeneralMemory Leak HELP!!!! Pin
Pablo Vivera30-Apr-03 18:56
sussPablo Vivera30-Apr-03 18:56 
GeneralRe: Memory Leak HELP!!!! Pin
GaryMLong25-Jun-03 16:00
memberGaryMLong25-Jun-03 16:00 
GeneralRe: Memory Leak HELP!!!! Pin
pvivera26-Jun-03 3:41
memberpvivera26-Jun-03 3:41 
GeneralNotification Pin
itlk19-Feb-03 10:26
memberitlk19-Feb-03 10:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04-2016 | 2.8.180515.1 | Last Updated 12 Jan 2003
Article Copyright 2003 by Paul Kissel
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid