用动态加载的方式使用未注册的Filter
来源:互联网 发布:网络安全工程师专业 编辑:程序博客网 时间:2024/05/21 20:27
用动态加载的方式使用未注册的Filter 收藏
一般来说,在dshow程序里,要使用Filter,首先要把Filter注册,然后通过CLSID来调用,然而像暴风影音那样,他使用了大量第三方filter,但这些filter都没有注册,那他是怎么做的呢。
其实他是用了动态加载的方式,.ax的Filter本身其实就是个dll,所以当然能够直接动态加载。
直接上代码吧,如要在dshow中加入一个未注册的ffdshow video decoder
typedef int (WINAPI *PROC_DllGetClassObject)(REFCLSID rclsid, REFIID riid, LPVOID FAR* ppv);
PROC_DllGetClassObject g_PROC_DllGetClassObject = NULL;
IBaseFilter *pFFDshow = NULL;
IClassFactory *pClassFactory = NULL;
HMODULE hInstLibrary = LoadLibrary(L"ffdshow.ax");
if (hInstLibrary )
{
g_PROC_DllGetClassObject = (PROC_DllGetClassObject)GetProcAddress(hInstLibrary,"DllGetClassObject");
if(g_PROC_DllGetClassObject)
{
g_PROC_DllGetClassObject(CLSID_FFDshow,IID_IClassFactory,(void**)&pClassFactory);
pClassFactory->CreateInstance(0,IID_IBaseFilter, reinterpret_cast<void**>(&pFFDshow));
m_FilterGraph->AddFilter(pFFDshow,L"ffdshow video decode");
SAFE_RELEASE(pFFDshow);
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mjh1021/archive/2010/04/09/5468150.aspx
- 用动态加载的方式使用未注册的Filter
- 用动态加载的方式使用未注册的Filter
- 手工加载未注册的 COM 组件
- 动态化加载未安装的apk
- VB 使用未注册的ActiveX 代码
- Filter的注册
- Filter的注册2
- dll动态加载的方式
- dll动态加载的方式
- dll动态加载的方式
- dll动态加载的方式
- dll动态加载的方式
- dll动态加载的方式
- 动态调用Dll(未注册的情况下)
- BroadcastReceiver register 广播的动态注册方式
- BroadCastReceiver的动态注册方式.txt
- 动态加载和动态注册类技术的深入探索
- 动态加载和动态注册类技术的深入探索
- 回调函数
- gson学习笔记
- Hdu acm 3095
- 中文分词算法的初步研究
- c++<map>容器的方法
- 用动态加载的方式使用未注册的Filter
- Poj_1005_I Think I Need A HouseBoat
- 交换两个变量的三种方法
- Java学习:不走弯路,就是捷径
- 跳跃表
- 安装impacket
- Book Pile sgu271
- 如何下载coursera视频
- ubuntu root密码