Default HRESULT hResult = E_NOTIMPL?
Default HRESULT hResult = E_NOTIMPL?
我正在开发一个基于 win7 的系统,使用 silverlight 嵌入 UI 图形和固件C++。我注意到在许多现有的函数中(在我被带入项目之前编写的),有一些代码我不太确定它在做什么。
HRESULT AddAlarm::AlarmType_SelectionChanged (IXRDependencyObject* pSender, XRSelectionChangedEventArgs* pArgs)
{
HRESULT hResult = E_NOTIMPL;
if((NULL == pSender)||(NULL==pArgs))
{
hResult = E_INVALIDARG;
}
//Code to set visibility of UI elements
if(index ==0) //index is the threshold type index from the combobox. Can be 0-3.
{
m_pAlarmLowThreshold->SetVisibility(XRVisibility_Collapsed);
}
//Code repeats for other threshold types and visibility states.
return hResult;
}
if 语句非常简单,函数返回 hResult,但我不明白声明 HRESULT hResult = E_NOTIMPL;。它声明一个 HRESULT 类型的变量并为其分配默认的 HRESULT 值 E_NOTIMPL,但由于该函数不会在 if 语句之外修改此值,这是否意味着它保持E_NOTIMPL,基本上告诉系统它(某些东西)没有实现或错误?
我知道
当自动生成这个方法之王时,VS接口就会被激活。内部代码总是类似
return E_NOTIMPL;
我认为您的前任试图做的是通过向他们自己保证所有情况都是从方法处理过程中应该更改的E_NOTIMPL开始处理的方法,从而以干净的方式开发方法。
这种方法在工作正常时应该返回s_OK。以下是可能的代码列表:http://msdn.microsoft.com/en-us/library/windows/desktop/aa378137%28v=vs.85%29.aspx
如果没有分配S_OK则确实意味着该功能未完全实现,因此E_NOTIMPL似乎是正确的(或不:))
相关文章:
- 如何在C++中使用 HRESULT 条件检查
- 如何初始化setMasterVolume的hresult
- HRESULT:将自定义代码与系统一个区分开
- 如何从 FAILED(HRESULT) 中抛出 std::system_error 异常?
- 无法加载dll libglorycolx2010.dll.该应用程序未能启动,因为其并排配置不正确.Hresult:0x
- 如何将Hresult转换为错误描述
- CreateMasteringVoice随机抛出HRESULT:0x88890017
- 在Direct2D应用程序中处理HRESULT
- 为什么 HRESULT 为 0 表示成功
- 找不到指定的过程.(HRESULT中出现异常:0x8007007F)
- 10 手机:"The specified module could not be found. (Exception from HRESULT: 0x8007007E)" :空
- 如何正确使用“出错时转到”不同的 HRESULT 值
- HResult 0x80040204 from IMediaObject::ProcessInput
- Default HRESULT hResult = E_NOTIMPL?
- 制作空C++项目:常规异常(来自 HRESULT:0x80131500 的例外)Visual Studio Commun
- 对COM组件的调用返回错误HRESULT E_FAIL
- 来自C++的WMI调用导致HRESULT=0x80041003
- HTTP状态代码到HRESULT的映射
- System.IO.FileNotFoundException未经处理消息=“找不到指定的模块.(HRESULT中的异常
- 无法加载DLL(找不到模块HRESULT:0x8007007E)