CoCreateInstance(转)】的更多相关文章

引言 前面的一篇博文中总结了开发Windows Thumbnail Handler的一些经验.在公司实际项目中,需要同时针对图片和视频实现缩略图.同时还要在图片和视频文件的顶部加上LOGO.像如下这样的:       于是考虑了一下实现方案:       (1)LOGO资源采用Base64编码编译到DLL中去       (2)公司自有的图片和视频文件进行全景拼接时依赖一串参数,而这串参数需要从文件中提取.因此采用RecipeThumbnailProvider实现IInitializeWithF…
在编写组件程序时,经常会使用CoCreateInstance直接取COM组件的接口,非常方便,那CoCreateInstance到底干了些什么事呢?1.CoCreateInstance取COM组件的接口的基本流程 //参数:rclsid = 组件CLSID //参数:riid = 接口ID WINOLEAPI CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID…
  CoCreateInstance  创建组件的最简单的方法是使用CoCreateInstance函数. 在COM库中包含一个用于创建组件的名为CoCreateInstance的函数.此函数需要一个CLSID参数,在此基础上创建相应组件的一个实例,并返回此组件的某个接口.     CoCreateInstance 的声明 HRESULT _stdcall  CoCreateInstance(REFCLSID rclsid,                         LPUNKNOWN p…
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&g_pGraph); 出现了hr为0x800401f0的错误.就是没有coinitalize. 解决方法: 在大部分COM API函数调用之前都必须调用CoInitalize或CoInitalizeEx进行COM库的初始化…
CoCreateInstance 创建组件的最简单的方法是使用CoCreateInstance函数. 在COM库中包含一个用于创建组件的名为CoCreateInstance的函数.此函数需要一个CLSID参数,在此基础上创建相应组件的一个实例,并返回此组件的某个接口. CoCreateInstance 的声明 HRESULT _stdcall  CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, R…
在普通windows系统连接OPCServer可能会报这样的错,排查很长时间,OPCServer跟Client都运行正常,点号录入也正常. 最后发现,其实是OPCServer 与OPCClient 权限不对等导致, 当以管理员权限运行OPCServer时,也必须以管理员权限运行OPCClient: 反之以普通权限运行OPCServer时,也得以普通权限运行OPCClient: 两者权限相同就可以连接成功.…
当我们运行一个Windows服务的时候,一般情况下,我们会选择以非窗口或者非控制台的方式运行,这样,它就只是一个后台程序,没有界面供我们进行交互. 那么当我们想与Windows服务进行实时交互的时候,我们应该怎么做呢? 快速给Windows服务添加实时交互功能的方案 Windows服务是一个进程,而我们用于交互的程序,又是另外一个进程.我们与Windows服务实时交互,其实就是一个进程间通信的问题.所有的进程间通信的方案基本上都适用于实时交互的方案,比如Socket.共享内存.管道.COM等.…
一.前言 书接上回,话说在 doc(Word) 复合文件中,已经解决了保存 xls(Excel) 数据的问题了.那么,接下来又要解决另一个问题:当 WORD 程序读取复合文件,遇到了 xls 数据的时候,它该如何启动 Excel 呢?启动后,又如何让 Excel 自己去读入.解析.显示 xls 数据呢? 二.CLSID 概念 有一个非常简单的解决方案,那就是在对象数据的前面,保存有处理这个数据的程序名.(见下图左上) 图一.CLSID 的概念 这的确是一个简单的方法,但同时问题也很严重.在“张三…
正常情况下在Richedit中使用OLE,如果需要OLE支持复制粘贴,那么这个OLE对象必须是已经注册的COM对象. 注册COM很简单,关键问题在于注册时需要管理员权限,这样一来,如果希望APP做成绿色版本就不好使了. 为什么需要注册成COM?因为在粘贴时Richedit需要能够从COM对象的GUID实例化出你的OLE对象. 从一个COM的GUID创建一个COM对象,必然需要通过CoCreateInstance(Ex)这个系统API.那么我们是不是只要Hook到这个API就可以不需要注册了呢?…
本文主要介绍如何使用微软TTS语音引擎实现文本朗读,以及生成wav格式的声音文件. 1.语音引擎及语音库的安装 TTS(Text-To-Speech)是指文本语音的简称,即通过TTS引擎把文本转化为语音输出. 微软TTS语音引擎提供了Windows Speech SDK开发包供编程者使用.Windows Speech SDK包含语音合成SS引擎和语音识别SR引擎两种,语音合成引擎用于将文字转换成语音输出,语音识别引擎用于识别语音命令. Windows Speech SDK可以在微软的官网上免费下…
一.介绍 摄像头图像采集处理在业界有着多种成熟的方案.从老的DirectShow.Grabber技术,到新的Windows Media Foundation框架,网络上都有着丰富的参考资料.OpenCV库里面甚至提供了非常简洁的接口,用户只要一两行代码即可实现数据采集.编解码等功能,使用起来甚是方便.但是,如果把数据采集的任务放到我们自己的程序中来实现的话,CPU的占用率会比较高.这在某些情况下不太可取.虽然可以实现,但是在客户端使用时效率非常低下.而公司恰好有一项开发任务:要求采集到摄像头数据…
本文是gtest高级测试指南的译文,由于文章太长,分上下两部分. 一.简介 本文档将向您展示更多的断言,以及如何构造复杂的失败消息,传播致命的故障,重用和加速您的测试夹具,并在您的测试使用各种标志. 二.更多断言 本节包括一些不太常用,但仍然重要的断言. 2.1 显式成功和失败 这三个断言实际上不测试值或表达式. 相反,它们直接产生成功或失败. 与实际执行测试的宏类似,您可以将自定义失败消息流入它们. SUCCEED(); 生成成功. 这不会使整体测试成功. 只有当测试在其执行期间没有任何断言失…
错误提示: 错误信息:内存位置访问无效. (Exception from HRESULT: 0x800703E6) 异常类型:System.BadImageFormatException 堆栈跟踪: at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid) at System.Windows.Forms.AxHos…
前言 DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布.DirectShow为多媒体流的捕捉和回放提供了强有力的支持.用DirectShow开发应用程序,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中. DirectShow是基于COM的,为了编写DirectShow应用程序,需要了解COM客户程序编写的基础知识.DirectShow提供了大量的接口,但在编程中发现还是不够方便,如…
1 最简单的DirectShow应用程序 — 播放视频 1.简介DirectShow是DirectX中的一套处理媒体播放.音视频采集的开发包,在DirectX SDK Summer 2004(DirectX9.0C SDK的第一个版本,下载地址:http://download.microsoft.com/download/7/e/9/7e9f48c6-f28a-469b-9b8e-cc84032efbd4/ dxsdk_sum2004.exe)之前的DirectX SDK中都包含有DirectS…
开发客户端软件时,出现System.Windows.Markup.XamlParseException错误,通过查看错误消息,发现TCPIP的一个COM组件在安装软件过程中被删除了,重新注册了一下TCPIP,问题解决 未处理System.Windows.Markup.XamlParseException HResult=-2146233087 Message=“对类型“TestWorld.MainWindow”的构造函数执行符合指定的绑定约束的调用时引发了异常.”,行号为“8”,行位置为“9”.…
摘要:本篇文档概括性的介绍了DirectShow的主要组成部分,以及一些Directshow的基本概念.熟悉这些基本的知识对于Directshow的应用开发或者过滤器的开发者都会有所帮助. DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布.那么,DirectShow能够做些什么呢?且看,DirectShow为多媒体流 的捕捉和回放提供了强有力的支持.运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据…
在DOM接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap.在这四个基本接口中,Document接口是对文档进行操作的入口,它是从Node接口继承过来的.Node接口是其他大多数接口的父类,象Documet,Element,Attribute,Text,Comment等接口都是从Node接口继承过来的.NodeList接口是一个节点的集合,它包含了某个节点中的所有子节点.NamedNodeMap接口也是一个节点的集合,通过该接口,可以建立节点名…
http://www.vckbase.com/index.php/wv/1315 简序 大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件.那时候只知道COM这个名词,并不知道到底是怎么回事,只知道上网 到处找别人的源码解决自己的问题:那段日子到现在回忆起来都是灰色的,每天呆坐在电脑前,一个网站一个网站的查找自己需要的源码.但并不清楚自己到底在做 什么:那时候对自己能不能成为一个程序员充满了怀疑.在实习结束返校的火车上,一夜间,我把一本<COM本质论>翻看了120…
一.为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的.结构化编程是函数块的形式,通过把一个软件划分成许多模块,每个模块完成各自不同的功能,尽量做到高内聚低藕合,这已经是一个很好的开始,我们可以把不同的模块分给不同的人去做,然后合到一块,这已经有了组装的概念了.软件工程的核心就是要模块化,最理想的情况就是100%内聚0%藕合.整个软件的发展也都是朝着这个方向走的.…
前言: 鄙司原始用的都是ADO来访问数据库,而我现在着手的项目是从我的GPS历史数据库中,取出历时数据的一个接口,一个DLL.用ADO写完之后,测试下来,平均4000条的数据,需要 180 毫秒左右. 包括数据包的排序.领导说有点慢.他是用C#写的. 而后我查找了资料,决定用Native Client OLEDB来试一试. 测试之后,效果还不错.取4000条的数据,只花了50毫秒左右,足足快了三倍.当然这也包括了排序. 鉴于此外加OLEDB资料很少,把我的代码分享出来. WO 对 OLEDB 进…
win32的com组件: 1. 编辑idl,idl文件会生成对应的com class和com interface,例如 [ object, uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx), dual, nonextensible, pointer_default(unique)]interface Iface : IDispatch{ [id(1)] HRESULT SetChange(DWORD arg);}; [ uuid(xxxxxxxx-xxxx-x…
COM技术内幕(笔记) COM--到底是什么?--COM标准的要点介绍,它被设计用来解决什么问题?基本元素的定义--COM术语以及这些术语的含义.使用和处理COM对象--如何创建.使用和销毁COM对象.基本接口--描述IUnknown基本接口及其方法. 掌握串的处理--在COM代码中如何处理串.应用COM技术--例子代码,举例说明本文所讨论的所有概念. 处理HRESULT--HRESULT类型描述,如何监测错误及成功代码.COM--到底是什么? 简单地说,COM是一种跨应用和语言共享二进制代码的…
介绍 DirectX一直是Windows平台中高性能图形的代名词,自Win7开始,微软又推出了Direct2D技术,包装于Direct3D,但专注于2D图形,并且准备取代GDI这样的传统2D图形技术.对于Direct2D是怎么怎么好的具体描述,可以参考附录1. 不过Direct2D是基于COM技术的,看上去有些老旧的气息,而且是非托管的,似乎也和常见的.net语言有些隔阂. 不过微软也为我们提供了一个工具,一个跨越这一边界的工具,那就是SurfaceImageSource一族.该族中Surfac…
下载3个语音API安装包 http://www.microsoft.com/en-us/download/details.aspx?id=10121 需要安装微软语音API安装包:SpeechSDK51LangPack.SpeechSDK51以及 msttss22L. 为了在VC中使用这SDK,必需在工程中添加SDK的include和lib目录,为免每个工程都添加目录,最好的办法是在VC的        Option->Directoris立加上SDK的include和lib目录.也可以直接将s…
  Choosing the threading model for an object depends on the object's function. An object that does extensive I/O might support free-threading to provide maximum response to clients by allowing interface calls during I/O latency. On the other hand, an…
9.7 线程同步对象速查表 对象 何时处于未触发状态 何时处于触发状态 成功等待的副作用 进程 进程仍在运行的时候 进程终止的时(ExitProcess.TerminateProcess) 没有 线程 线程仍在运行的时候 线程终止的时候(ExitThread.TermimateThread) 没有 作业 作业尚未超时的时候 作业超时的时候 没有 文件 有待处理的I/O请求的时候 I/O请求完成的时候 没有 控制台输入 没有输入的时候 有输入的时候 没有 文件变更通知 文件没有变更的时候 文件系统…
在部署Word/Excel到服务器的时候,经常会碰到权限问题.例如;   Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 8000401a 因为配置类型不正确,系统无法开始服务器进程.请检查用户名和密码. (Exception from HRESULT: 0x8000401A).  …
参考:http://www.delphifans.com/InfoView/Article_850.html Delphi 7支持对XML文档的操作,可以通过 TXMLDocument类来实现对XML文档的读写.可以利用TXMLDocument把XML文档读到内存中,从而可以进行编辑.保存操作.TXMLDocument类是通过DOM(文档对象模型)接口来访问XML文档中的各个元素的.对于DOM接口的实现有多种方式,Delphi 支持的方式有 1)微软的MSXML SDK,这种方式是通过COM对象…
#include <windows.h>#include <Wincodec.h>#pragma comment(lib, "Windowscodecs.lib" )HRESULT PNG2WDP(WCHAR* szPngFileName, WCHAR* szWdpFileName){    IWICImagingFactory *piFactory = NULL;    IWICBitmapEncoder *piEncoder = NULL;    IWICB…