【问题标题】:What's the difference between TYPE_E_BUFFERTOOSMALL and DISP_E_BUFFERTOOSMALL HRESULT values?TYPE_E_BUFFERTOOSMALL 和 DISP_E_BUFFERTOOSMALL HRESULT 值有什么区别?
【发布时间】:2011-06-29 18:11:20
【问题描述】:

查看 WinError.h 我注意到有两个 HRESULT 值:

#define DISP_E_BUFFERTOOSMALL _HRESULT_TYPEDEF_(0x80020013L)
#define TYPE_E_BUFFERTOOSMALL _HRESULT_TYPEDEF_(0x80028016L)

两者都声称可以解决“缓冲区太小”的文本,并且它们都具有相同的“设施”部分,仅在“代码”部分不同。

这两个值有什么区别?

【问题讨论】:

    标签: windows visual-c++ com error-handling


    【解决方案1】:

    DISP_E_BUFFERTOOSMALL 用于IDispatch 接口的一般用途。

    我相信TYPE_E_* 错误是为了类型转换错误。 TYPE_E_BUFFERTOOSMALL 似乎是用于转换 VARIANTs 或 PROPVARIANTs 的问题。我环顾四周,发现它在“财产包”(这是一个可序列化的集合)的上下文中使用;例如,请参阅this

    other question 的上下文中,DISP_E_BUFFERTOOSMALL 更合适。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      相关资源
      最近更新 更多