QueryInterface IUnknown *p2; hr = pInnerUnknown->QueryInterface(vGUID2, (void**)&p2); IUnknown *pOutUnknown; CoCreateInstance(vGUID, NULL, CLSCTX_INPROC_SERVER, vIIDGUID, (void**)&pOutUn
转载 2015-08-17 11:54:00
44阅读
2评论
QueryInterface()QueryInterface()简称QI(),由客户端程序调用这个函数从COM对象请求不同的接口。我们在例子代码中因为只实现一个接口,QI()会很
转载 2023-06-16 11:03:00
54阅读
STDMETHODIMP CMathFactory::QueryInterface(REFIID riid,void ** ppv){IID_IClassFactory || riid =
原创 2023-06-17 07:30:18
71阅读
HRESULT __stdcall QueryInterface( REFIID rii
转载 2022-11-07 20:22:04
374阅读
开始先说一句,学习com之前要学好c++ 对象模型。 QueryInterface的使用:QueryInterface是IUnknown的一个成员函数,客户可以通过此函数来查询某个组件是否支持某个特定的接口。QueryInterface成功返回一个指向此接口的指针。 错误返回一个错误代码。 HRESULT _stdcall QueryInterface(const IID& iid, void **ppv); 下面是一个QueryInterface的使用实例:(可知道相应的组件是否支持某个特定的接口)void ceshi(IUnknown * pI){ IX* pIX = N...
转载 2013-08-04 21:21:00
39阅读
2评论
1.      接口查询关于IUnknown所有的com接口都继承了IUnknown,每个接口的前三个函数是QueryInterface、AddRef、Release。这使得所有的接口都可以当成IUnknown来使用。因此组件的任何一个接口都可以被客户用来获取他所支持的其他接口。 IUnknown指针的获取可以通过一个CreateInstance函数来返回一个IUnknown指针而不必使用new操
转载 2013-05-13 23:43:00
78阅读
2评论
前言 组件对外公布的是接口;一个组件可以实现多个接口,也就是说可以对外公布多个接口,之前也总结过了,你很少会100%的去完全了解一个组件的所有接口,就像你去学习编程一样,你几乎不可能去成为编程中的全才。那么,既然我们不能去完全的了解一个组件提供的所有接口,那么我们在实际开发中,如何去判断一个组件是否 ...
转载 2021-08-16 13:26:00
459阅读
2评论
QueryInterface 接上篇一.COM接口的开始IUnknowncom起于接口,又归于接口.com之所以是com,是因为其继承了一个名为IUnknown接口.IUnknown接口是一个非常有趣的名字.我们第一次看到这个接口,都会非常好奇,名字的由来开发内部肯定是有故事的,或者他们想不出啥好名字也是有可能的.下面我们来看一下IUnknown接口定义了哪些成员,这篇只讲QueryInterfaceinterface IUnknown{ virtual HRESULT __stdcall QueryInterface(const IID& iid, void** ppv) =0; v
转载 2009-08-05 17:08:00
289阅读
2评论
我们都知道,COM组件编程中,QueryInterface实现的接口之间的查询,通过这个接口,我们可以获取该组件中其他的接口。但是,QueryInterface实现的原理,并不是大家都很清楚,也没有哪本书仔细讲了这点。我将个人心得写下来,供有需要的人查看。首先,我们看一下基本的COM实现。一般来说,COM是 通过多继承实现多个接口,如下图而对应的QueryInterface实现如下HRESULT实现类::QueryInterface(constIID&iid,void**ppv)...{ if(iid==IID_IUnknown) *ppv=(接口一*)this; else if(ii
转载 2009-08-04 12:50:00
85阅读
2评论
写一个提交网页表单的程序。比较了一下QueryInterface接口查询和使用I
原创 2022-08-09 18:01:21
31阅读
开始先说一句,学习com之前要学好c++ 对象模型。QueryInterface的使用:QueryInterface是IUnknown的一个成员函数,客户可以通过此函数来查询某个组件是否支持某个特定的接口。QueryInterface成功返回一个指向此接口的指针。     错误返回一个错误代码。HRESULT _stdcall QueryInterface(const IID&
转载 2024-04-17 14:07:56
1128阅读
客户可以根据QueryInterface函数来查询某个组件是否支持某个特定的接口,若支持,则QueryInterface则返回一个指向特定接口的指针,若不支持,则返回一个错误代码,它的函数形是这样的:   HRESULT __stdcall QueryInterface(const IID& iid, void** ppv ); 昨天已经设计了一个极其简单
转载 3月前
486阅读
第12章 COM组件技术操作技巧COM是开发组件的一种方法,组件是一些小的二进制程序,它可以为操作系统或者应用程序提供服务。COM技术的发展进一步加强了程序的模块化编程的思想,使应用程序在更容易扩展与升级,具有更好的灵活性和动态性,COM支持了分部使应用程序的开发。12.1  COM的概念和编程技巧COM,即组件对象模型,是关于如何建立组件及如何通过组件建构应用程序的一个规范,是一种跨应
转载 2月前
405阅读
 1、启动组件得到一个接口指针(Interface)后,不要调用AddRef()。因为系统知道你得到了一个指针,所以它已经帮你调用了AddRef()函数;  2、通过QueryInterface()得到另一个接口指针后,不要调用AddRef()。因为......和上面的道理一样;  3、当你把接口指针赋值给(保存到)另一个变量中的时候,请调用AddRef();  4、当不需要再使用接口指针的时候,
转载 2024-04-27 19:15:59
376阅读
使用多接口的COM对象 第二个例子展示了如何使用一个提供单接口的COM对象QueryInterface()函数。其中的代码用外壳的Shell Link组件对象类创建我们在第一个例子中获得的墙纸文件的快捷方式以下是编程步骤:初始化COM 库。 创建一个用于建立快捷方式的COM 对象并取得IShellLink 接口。调用IShellLink 接口的SetPath()方法调用对象的Q
转载 2023-06-16 11:03:09
35阅读
fangyukuan2010.6.1客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是IUnknown。它在UNKNWN.H头文件定义 :如下    Interface IUnknown { virtual HRESULT__stdcallQueryInterface(
转载 5月前
66阅读
我们都知道,COM组件编程中,QueryInterface实现的接口之间的查询,通过这个接口,我们可以获取该组件中其他的接口。但是,QueryInterface实现的原理是什么呢,首先,我们看一下基本的COM实现。一般来说,COM是 通过多继承实现多个接口,如下图   而对应的QueryInterface实现如下 HRESULT 实现类::QueryInterface(
今天我们来分析QueryInterface函数。HRESULT CDictionary::QueryInterface(const IID& iid, void **ppv) { if(iid == IID_IUnknown) { *ppv = (IDictionary*)this; ((
原创 2017-11-22 10:26:18
1483阅读
前言 在COM编程——认识组件中也总结了,COM是一个说明如何建立可动态互变组件的规范,它提供了为保证能够互操作,客户和组件应遵循的一些标准。而在实现和使用QueryInterface时,就需要去遵守一些规则,只有遵守了这些规则,才能是一个正确的COM组件;只有了解了这些规则,才能会真正的了解COM开发。 QueryInterface的实现规则 实现QueryInterface需要遵从以下五条
转载 2024-09-25 13:20:53
243阅读
先说实在的:最终解决办法是实现IDocHostUIHandler接口,在GetHostInfo方法里解决,但“实现接口”意味着QueryInterface、AddRef、Release三个方法必须实现,所以相关代码是:class CMyWebBrowser : public IDocHostUIHandler{public: CMyWebBrowser() { m_cRef = 0; } virtual ~CMyWebBrowser() {} LONG m_cRef;private: HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid...
转载 2014-03-18 16:48:00
26阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5