3D PLM Enterprise Architecture |
Middleware Abstraction - Object Modeler |
What Is HRESULT?A standard return value for all your interface methods |
| Quick Reference | ||
AbstractThis article explains the HRESULT return value and shows how to test it using macros to take appropriate actions. It includes the following sections: |
HRESULT is a Microsoft specific return value to report execution
conditions to calling functions. QueryInterface in both COM and
CNext returns an HRESULT. The methods you expose in your interfaces
should also return an HRESULT. They so become OLE compliant.
HRESULT is encoded on 32 bits and is divided into three areas.
The first bit is the severity and reports whether the method called succeeds or
fails. The following 15 bits contain the facility code which gives information
about the type and the origin of the return code, and the last 16 bits contain
the actual return code the method is returning. Here is a map of the HRESULT's
structure.

Common HRESULT codes fall in the following categories. A
successful return code contains S_ in its name, while a failure code contains E_
in its name.
S_OK to report that the function succeedsS_FALSE to report that the function succeeds, but returns the
boolean value False
E_NOINTERFACE returned by QueryInterface to
report that the queried object doesn't support the requested interfaceE_UNEXPECTED to report an unexpected failureE_OUTOFMEMORY to report that the function called cannot
allocate the required memoryE_FAIL to report an unspecified failure.[Top]
You should never test the HRESULT value, but use the SUCCEEDED
or FAILED macros as follows:
HRESULT rc = pCATBaseUnKnownOnComp->QueryInterface(IID_CATIXX,
(void**) &pIXXOnComp);
if (FAILED(rc))
{
... // Process the error
}
else if (SUCCEEDED(rc))
{
pIXXOnComp->MXX1();
...
[Top]
| Version: 1 [Jan 2000] | Document created |
| [Top] | |
Copyright © 2000, Dassault Systèmes. All rights reserved.