WEB开发网
开发学院软件开发VC COM逐步教程 阅读

COM逐步教程

 2006-07-22 22:54:38 来源:WEB开发网   
核心提示: 第8步:一个进程内的COM对象其实和一个简单的Win32 DLL并没有什么两样,它们都遵守一个特定的协议,COM逐步教程(6),每个COM DLL都必须有一个名为DllGetClassObject的导出函数,客户端将会调用这个函数来获得类工厂(IUnknown或IClassFactory)

第8步:

一个进程内的COM对象其实和一个简单的Win32 DLL并没有什么两样,它们都遵守一个特定的协议。每个COM DLL都必须有一个名为DllGetClassObject的导出函数,客户端将会调用这个函数来获得类工厂(IUnknown或IClassFactory)的一个实例,然后紧接着是CreateInstance方法。创建一个新文件(Exports.cpp),在其中实现DllGetClassObject。

STDAPI DllGetClassObject(const CLSID& clsid,
              const IID& iid,
              void** ppv)
   {
   //
   //检查请求的COM对象是否在此DLL之中
   //DLL中可以实现多个COM对象
   //
   if (clsid == CLSID_AddObject)
     {
     //
     //iid为类工厂指定了请求的接口
     //客户端可以请求IUnknown、IClassFactory、IClassFactory2
     //
     CAddFactory *pAddFact = new CAddFactory;
     if (pAddFact == NULL)
       return E_OUTOFMEMORY;
     else
       {
       return pAddFact->QueryInterface(iid , ppv);
       }
     }
   //
   //如果控制达到了这里,那么这就表示该DLL中没有实现用户指定的对象
   //
   return CLASS_E_CLASSNOTAVAILABLE;
   }

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

Tags:COM 逐步 教程

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