wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了windows – 当提供的缓冲区太小时返回哪个HRESULT?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我在IUnknown派生的COM接口中有一个函数: HRESULT Getpassword( [in] long bufferLength, [out] WCHAR* buffer ); 并且合同是实现应该检查缓冲区是否足够大以存储被检索的字符串.如果缓冲区足够大,则复制字符串并返回S_OK,否则该函数将返回错误指示. 但是我找不到合适的HRESULT值. E_UNEXPECTED似乎相当愚蠢和无
我在IUnkNown派生的COM接口中有一个函数

HRESULT getpassword( [in] long bufferLength,[out] WCHAR* buffer );

并且合同是实现应该检查缓冲区是否足够大以存储被检索的字符串.如果缓冲区足够大,则复制字符串并返回S_OK,否则该函数将返回错误指示.

但是我找不到合适的HRESULT值. E_UNEXPECTED似乎相当愚蠢和无益.我找到的最接近的是DISP_E_BUFFERTOOsmaLL,但看起来它只适用于IDispatch派生的接口.

如果提供的缓冲区太小,我应该返回哪个HRESULT?

解决方法

您无法返回DISP_E_ *错误,您没有实现IDispatch. E_INVALIDARG在这里是正确的,它甚至是明确的,不会经常发生.始终实现ISupportErrorInfo以生成良好的错误消息,ATL使用Error()方法使其变得微不足道.

大佬总结

以上是大佬教程为你收集整理的windows – 当提供的缓冲区太小时返回哪个HRESULT?全部内容,希望文章能够帮你解决windows – 当提供的缓冲区太小时返回哪个HRESULT?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。