COM中的REFIID小解【转】

 

      是在浏览器项目中的IDispatch调用QueryInterface( [in]   REFIID riid,  [out]  void **ppvObject);

认识的REFIID,由于看声明说riid唯一的标识了一个COM接口,然后ppvObject就接受该接口类的对象指针,所以我想弄明白REFIID的含义。

     typedef   const   IID&   REFIID;  

     REFIID = Reference of IID

     IID = GUID

     其中,GUID定义如下:

   
typedef   struct   _GUID   { 
        DWORD   Data1; 
        WORD       Data2; 
        WORD       Data3; 
        BYTE     Data4[8]; 
  }   GUID; 
   GUID;     共有16个字节,所以不宜传变量进去,最好是传指针或引用。但是出于指针的危险性,所以使用常量的引用。这个GUID唯一的标识了一个接口类。所以现在明白了IUnkonwn接口里函数QueryInterface里的意义了。
原文地址:https://www.cnblogs.com/huacw/p/3495866.html