一个简单的DirecxShow应用程序
2011-01-18 22:03
218 查看
刚安装好Direct 9.0b,在VC6.0 下进行了配置。为了检验是否可以使用了,在网上找了一个简单的 DirectShow 应用程序。它是一个播放音频或视频文件的简单控制台程序,只有寥寥数行,但却展示了 DirectShow 编程的强大能力。源代码如下:
#include <dshow.h> #include <>stdio.h void main(void) { IGraphBuilder *pGraph = NULL; IMediaControl *pControl = NULL; IMediaEvent *pEvent = NULL; // Initialize the COM library. HRESULT hr = CoInitialize(NULL); if (FAILED(hr)) { printf("ERROR - Could not initialize COM library"); return; } // Create the filter graph manager and query for interfaces. hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph); if (FAILED(hr)) { printf("ERROR - Could not create the Filter Graph Manager."); return; } hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl); hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); // Build the graph. IMPORTANT: Change this string to a file on your system. hr = pGraph->RenderFile(L"C://Example.avi", NULL); if (SUCCEEDED(hr)) { // Run the graph. hr = pControl->Run(); if (SUCCEEDED(hr)) { // Wait for completion. long evCode; pEvent->WaitForCompletion(INFINITE, &evCode); // Note: Do not use INFINITE in a real application, because it // can block indefinitely. } } pControl->Release(); pEvent->Release(); pGraph->Release(); CoUninitialize(); }
相关文章推荐
- 一个简单的Hibernate应用程序
- 关于(在2410+linux平台上,关于led 的一个简单应用程序)的驱动程序
- 一个简单的java应用程序
- DDraw笔记-一个简单的DDraw应用程序
- 从零开始一步步教你:用C++开发一个简单的hadoop分布式计算应用程序
- Java网络编程(一)- 一个简单的服务端/客户端应用程序
- 连接主机Java网络编程(一)- 一个简单的服务端/客户端应用程序
- 如何为iOS5创建一个简单GLKit应用程序
- IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序
- JS启动应用程序的一个简单例子
- JS启动应用程序的一个简单例子
- Android 初学者入门(一个最简单的应用程序)
- 一个简单的Windows服务应用程序范例
- How to Write a simple UEFI EDKII Application:如何编写一个UEFI简单的应用程序[5]
- 一步一个脚印学习WCF之二构建一个简单的WCF应用程序前必须掌握的WCF基础术语---契约(Contract)
- Java网络编程(一)- 一个简单的服务端/客户端应用程序
- 利用C#编写一个简单的抓网页应用程序
- 一个简单的使用shelve模块的数据库应用程序
- 利用C#编写一个简单的抓网页应用程序
- windows笔记-一个简单的windows GUI应用程序