zoukankan      html  css  js  c++  java
  • COM中的error handling机制及示例(ISupportEfforInfo,ICreateErrorInfo,IErrorInfo)

    COM采取通过返回HRESULT code的方式来获取COM调用的结果。但是往往返回的HRESULT非常抽象。为了使返回的Error information 更加具有可读性,COM支持ISupportErrorInfo interface来对Error information进行具体描述。

    在COM service中返回一个具体的Error information过程如下所示:

    参阅文章:http://msdn.microsoft.com/en-us/library/ms221062.aspx

    在COM client 中检索error information的过程如下所示:

    参阅文章:http://msdn.microsoft.com/en-us/library/ms221026.aspx

    如何实现这种基于IErrorInfo的错误处理机制,可以参阅Microsoft Support KB:http://support.microsoft.com/kb/139073/en-us

    下面的demo演示了通过ISupportErrorInfo interface, ICreateErrorInfo interface, IErrorInfo interface,以及CreateErrorInfo() API, SetErrorInfo() API和smart pointer来实现Error Handling .

    COM service side:

    =========
    COM IDL File

    Code

     SimpleClass Header File:

    Code

    SimpleClass Implementation:

    Code

    COM Client:

    ============
    Client code:

    Code

    关于此demo的source code,点击此处下载

  • 相关阅读:
    【BZOJ2734】【HNOI2012】集合选数(状态压缩,动态规划)
    【Luogu1879】玉米田(状态压缩,动态规划)
    【BZOJ1911】【APIO2010】特别行动队(斜率优化,动态规划)
    蒟蒻关于斜率优化DP简单的总结
    【BZOJ1010】【HNOI2008】玩具装箱(斜率优化,动态规划)
    【BZOJ4196】【NOI2015】软件包管理器(树链剖分,线段树)
    【BZOJ1483】【HNOI2009】梦幻布丁(启发式合并,平衡树)
    【BZOJ1058】【ZJOI2007】报表统计(链表,堆,Splay)
    【BZOJ1012】【JSOI2008】最大数(线段树)
    【SHOI2012】魔法树(树链剖分,线段树)
  • 原文地址:https://www.cnblogs.com/Winston/p/1487250.html
Copyright © 2011-2022 走看看