• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 如何利用ATL播放MP3文件?

如何利用ATL播放MP3文件?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了cf文件atl71.dll,cf缺少atl71.dll文件,atl71.dll文件,atl头文件,缺少atl71.dll文件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 如何利用ATL播放MP3文件?
描述:

需要在程序中播放MP3文件,在MFC中我知道怎么弄,但在ATL/WTL下不知道该从何入手。下面的尝试是模仿MFC的做法,利用Active Movie Control。但是失败:
 
//get the CLSID of Active Movie Control
CLSID const& GetClsid()
 {
  static CLSID const clsid
   = { 0x5589FA1, 0xC356, 0x11CE, { 0xBF, 0x1, 0x0, 0xAA, 0x0, 0x55, 0x59, 0x5A } };
  return clsid;
 }
 
//get IDispatch interface
::CoCreateInstance(GetClsid(), NULL, CLSCTX_INPROC_SERVER, IID_IDispatch, (void **)&pIDispatch);
 
//get DISPID of "FileName"
 DISPID dispid = -1;
 OLECHAR * name = L"FileName";
 hr = pIDispatch->GetIDsOfNames(IID_NULL, &name, 1, GetUserDefaultLCID(), &dispid);
 
//set the filename to be demo.mp3
wchar_t wszIn[] = L"demo.mp3";
 BSTR bstrIn = ::SysAllocString(wszIn);
 
 VARIANTARG varg;
 ::VariantInit(&varg);
 varg.vt = VT_BSTR;
 varg.bstrVal = bstrIn;
 
 DISPPARAMS param;
 param.cArgs = 1;
 param.rgvarg = &varg;
 param.cNamedArgs = 0;
 param.rgdispidNamedArgs = NULL;
 
 hr = pIDispatch->Invoke(dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_PROPERTYPUT, &param, NULL, NULL, NULL);
 
GetIDsOfNames()调用成功,返回11。但是Invoke()调用失败。返回值是
-2147352572。通过VC6自带的Error Lookup
察看,返回信息“找不到参数”。
在Invoke()调用失败后,通过GetLastError()获得失败信息,返回值为0。
哪里出问题了呢?如果这种方法不行,请教用什么方法可以实现播放MP3文件呢?
谢谢~~


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 在ATL中不能用#import导入excel9olb文件么??
  • 在ATL工程中怎么写文件?用fprintf老是报错!!!
  • ATL中怎么不能创建本地文件!
  • 如何用ATL开发一个读取EXCEL文件的控件
  • 用ATL怎么实现从本地选择文件上传到服务器?
  • ATL对文件的操作??(等待中)
  • 如何执行ATL生成的文件
  • ATL中如何使用旧的IDL文件
  • ATL怎样下载文件。。。。。。。。。。。标题长
  • ATL工程里面的rgs文件,似乎是个多余的存在

相关文章

  • 2017-06-05 请问过来人:windows高级编程与windows核心编程哪本好?
  • 2017-06-04 newquestion请求帮助
  • 2017-06-04 请高手讲一下VC++的字符串操作?
  • 2017-06-04 一个简单的ATL程序编译没有问题,但报此错误,是何原因
  • 2017-06-05 在win32dll中执行到调用线程函数时程序当掉了
  • 2017-06-04 vc60下在一个Win32Dynamic_linkLibrary下能同时编写两个DLL文件不?
  • 2017-06-04 关于加载组件的一个问题,请大家给看看
  • 2017-06-04 我做了一个active按钮的控件,然后在容器中调用多个按钮,怎么来判别是哪个按钮被按下了呢~~~~~~
  • 2017-06-05 由进程ID如何得到其主窗口的句柄?
  • 2017-06-04 求ADSL拨号的网卡类型和VPN拨号的网卡类型?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何在ATL的COM组件里为MFC的MDI程序创建一个MDI子窗口?
    • 请教各位大侠:为什么_beginthread传递的指针参数内容发生了变化
    • 如何得到一个进程主线程的类名
    • PE学习笔记
    • 小弟初学dll,请问各位大虾,如何编写dll的内部函数阿?
    • DLL中静态变量和全局变量的问题
    • 高分求助,写的控件在浏览器在调用中崩溃
    • COM传递结构问题
    • VS2012+opencv30一直无法打开文件“opencv_contrib300dlib”
    • 请教:进程A如何向进程B发送消息?谢谢!

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有