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

COM逐步教程

 2006-07-22 22:54:38 来源:WEB开发网   
核心提示: 第7步:现在需要实现CAddFactory的方法,创建一个新文件(AddObjFactory.cpp),COM逐步教程(5),在其中提供IUnknown和IClassFactory所有方法的实体,AddRef、Release和QueryInterface方法就和类CAddObj的实现相似,

第7步:

现在需要实现CAddFactory的方法。创建一个新文件(AddObjFactory.cpp),在其中提供IUnknown和IClassFactory所有方法的实体。AddRef、Release和QueryInterface方法就和类CAddObj的实现相似。CreateInstance方法的实现如下,其中实例化了CAddObj类并回传了请求的接口指针。LockServer方法则没有特定的实现。

HRESULT __stdcall CAddFactory::CreateInstance(IUnknown* pUnknownOuter,
                       const IID& iid,
                       void** ppv)
   {
   //
   //这一方法可以使得全体客户端来制造组件
   //类工厂提供了一种机制,可以控制生成组件的方法。
   //通过类工厂,组件的作者就可能决定使每一条许可协议
   //的创建生效或失效。
   //
   // 不能聚合
   if (pUnknownOuter != NULL)
     {
     return CLASS_E_NOAGGREGATION ;
     }
   //
   // 创建组件的实例
   //
   CAddObj* pObject = new CAddObj ;
   if (pObject == NULL)
     {
     return E_OUTOFMEMORY ;
     }
   //
   // 获得请求的接口
   //
   return pObject->QueryInterface(iid, ppv) ;
   }
HRESULT __stdcall CAddFactory::LockServer(BOOL bLock)
   {
   return E_NOTIMPL;
   }

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

Tags:COM 逐步 教程

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