当前位置: 首页>>代码示例>>C++>>正文


C++ CComQIPtr::GetErrorInfo方法代码示例

本文整理汇总了C++中CComQIPtr::GetErrorInfo方法的典型用法代码示例。如果您正苦于以下问题:C++ CComQIPtr::GetErrorInfo方法的具体用法?C++ CComQIPtr::GetErrorInfo怎么用?C++ CComQIPtr::GetErrorInfo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CComQIPtr的用法示例。


在下文中一共展示了CComQIPtr::GetErrorInfo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: _Init

void COledbErrors::_Init(HRESULT Hr)
{
   m_lCount = 0;

   CComPtr<IErrorInfo> spErrorInfo;
   ::GetErrorInfo(0, &spErrorInfo);
   if( spErrorInfo == NULL ) {
      // No error object
      m_p[0]._Init(Hr, CComBSTR(L"System"), CComBSTR(L"Function failed."));
      m_lCount = 1;
      return;
   }

   CComQIPtr<IErrorRecords> spErrorRecs = spErrorInfo;
   if( spErrorRecs != NULL ) {
      // Provider supports IErrorRecords
      ULONG nCount = 0;
      spErrorRecs->GetRecordCount(&nCount);
      for( ULONG i = 0; i < nCount; i++ ) {
         HRESULT Hr;
         ERRORINFO ErrorInfo;
         Hr = spErrorRecs->GetBasicErrorInfo(i, &ErrorInfo);
         if( FAILED(Hr) ) break;
         CComPtr<IErrorInfo> spErrorInfoRec;
         Hr = spErrorRecs->GetErrorInfo(i, ::GetUserDefaultLCID(), &spErrorInfoRec);
         if( FAILED(Hr) ) break;

         CComBSTR bstrSource;
         spErrorInfoRec->GetSource(&bstrSource);
         CComBSTR bstrMsg;
         spErrorInfoRec->GetDescription(&bstrMsg);
      
         m_p[m_lCount]._Init(ErrorInfo.hrError, bstrSource, bstrMsg);
         m_lCount++;
         if( m_lCount >= MAX_ERRORS ) break;
      }
   }

   if( m_lCount == 0 ) {
      // Provider only supports IErrorInfo
      CComBSTR bstrSource;
      spErrorInfo->GetSource(&bstrSource);
      CComBSTR bstrMsg;
      spErrorInfo->GetDescription(&bstrMsg);
      m_p[m_lCount]._Init(Hr, bstrSource, bstrMsg);
      m_lCount++;
   }
}
开发者ID:okigan,项目名称:dblib,代码行数:48,代码来源:DbOledb.cpp


注:本文中的CComQIPtr::GetErrorInfo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。