WEB开发网
开发学院软件开发VC COM编程入门 :什么是COM,如何使用COM 阅读

COM编程入门 :什么是COM,如何使用COM

 2006-07-21 11:45:08 来源:WEB开发网   
核心提示: 继续用上面的例子来说明如何使用Release():// 像上面一样创建COM 对象, 然后,COM编程入门 :什么是COM,如何使用COM(6), if ( SUCCEEDED ( hr ) ) { // 用pISL调用方法 // 通知COM 对象不再使用它 pISL->Releas

继续用上面的例子来说明如何使用Release():

// 像上面一样创建COM 对象, 然后,
   if ( SUCCEEDED ( hr ) )
     {
     // 用pISL调用方法
     // 通知COM 对象不再使用它
     pISL->Release();
     }

接下来将详细讨论IUnknown接口。

基本接口——IUnknown

每一个COM接口都派生于IUnknown。这个名字有点误导人,其中没有未知(Unknown)接口的意思。它的原意是如果有一个指向某COM对象的IUnknown指针,就不用知道潜在的对象是什么,因为每个COM对象都实现IUnknown。

IUnknown 有三个方法:

AddRef() – 通知COM对象增加它的引用计数。如果你进行了一次接口指针的拷贝,就必须调用一次这个方法,并且原始的值和拷贝的值两者都要用到。在本文的例子中没有用到AddRef()方法。

Release() – 通知COM对象减少它的引用计数。参见前面的Release()示例代码段。

QueryInterface() – 从COM对象请求一个接口指针。当coclass实现一个以上的接口时,就要用到这个方法。

前面已经看到了Release()的使用,但如何使用QueryInterface()呢?当你用CoCreateInstance()创建对象的时候,你得到一个返回的接口指针。如果这个COM对象实现一个以上的接口(不包括IUnknown),你就必须用QueryInterface()方法来获得任何你需要的附加的接口指针。QueryInterface()的原型如下:

HRESULT IUnknown::QueryInterface (
   REFIID iid,
   void** ppv );

以下是参数解释:

iid

所请求的接口的IID。

ppv

接口指针的地址,QueryInterface()通过这个参数在成功时返回这个接口。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:COM 编程 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接