查看 WinError.h 我注意到有两个 HRESULT
值:
#define DISP_E_BUFFERTOOSMALL _HRESULT_TYPEDEF_(0x80020013L)
#define TYPE_E_BUFFERTOOSMALL _HRESULT_TYPEDEF_(0x80028016L)
两者都声称可以解决“缓冲区太小”的文本,并且它们都具有相同的“设施”部分,仅在“代码”部分有所不同。
这两个值有什么区别?
最佳答案
DISP_E_BUFFERTOOSMALL
旨在用于 IDispatch
接口(interface)中的一般用途。
我相信 TYPE_E_*
错误是针对类型转换错误。 TYPE_E_BUFFERTOOSMALL
似乎是针对转换 VARIANT
或 PROPVARIANT
的问题。我环顾四周,发现它用于“属性(property)袋”(这是一个可序列化的集合)的上下文中;例如,参见 this .
在您的 other question 的上下文中, DISP_E_BUFFERTOOSMALL
更合适。
关于windows - TYPE_E_BUFFERTOOSMALL 和 DISP_E_BUFFERTOOSMALL HRESULT 值之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5040524/