gpt4 book ai didi

windows - 当提供的缓冲区太小时返回哪个 HRESULT?

转载 作者:可可西里 更新时间:2023-11-01 13:55:02 24 4
gpt4 key购买 nike

我在 IUnknown 派生的 COM 接口(interface)中有一个函数:

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

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

但是我找不到合适的 HRESULT 值。 E_UNEXPECTED 看起来很愚蠢而且没有帮助。我找到的最接近的是 DISP_E_BUFFERTOOSMALL,但看起来它仅适用于 IDispatch 派生的接口(interface)。

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

最佳答案

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

关于windows - 当提供的缓冲区太小时返回哪个 HRESULT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5039939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com