windows – 当提供的缓冲区太小时返回哪个HRESULT?
发布时间:2020-12-14 01:37:14 所属栏目:Windows 来源:网络整理
导读:我在IUnknown派生的COM接口中有一个函数: HRESULT GetPassword( [in] long bufferLength,[out] WCHAR* buffer ); 并且合同是实现应该检查缓冲区是否足够大以存储被检索的字符串.如果缓冲区足够大,则复制字符串并返回S_OK,否则该函数将返回错误指示. 但是我
我在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()方法使其变得微不足道.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- XAML水平Stackpanel滚动
- windows-xp – 如何在不进行域管理的情况下更改当前用户的域
- 在Windows 7上使用带有RSelenium的phantomjs
- dll中的c-std :: unique_ptr pimpl生成C4251与visual studi
- microsoft-graph – 无法访问Microsoft Graph API中的/ out
- 内容管理系统 – 是否有在Windows Azure上运行的CMS系统?
- 批处理文件 – 在Windows中批处理Pandoc转换
- wpf – System.Windows.Clipboard和System.Windows.Forms.C
- windows – 如何在Visual Studio代码上删除最近打开的文件会
- 两大主流Web服务器之分析与对比
推荐文章
站长推荐
- 在Windows上以管理员身份运行Qt应用程序
- 如何从rootkit /后门/僵尸网络等检查Linux服务器
- windows10 安装python.msi出现error 2502/2503解
- windows-server-2008-r2 – 如何在Windows Serve
- WIX:Package元素的Platform属性是否真的被弃用?
- 将输出重定向到Windows中另一个命令的命令行参数
- windows-server-2008-r2 – 在文件复制操作期间,
- windows – VIM:如何根据缓冲区映射命令?
- Windows上的Git:强制使用OpenSSH
- .net – MVC Controller应该在单独的DLL中吗?
热点阅读