Microsoft KB Archive/235361

= BUG: CDO (1.21) with #import Causes Incorrect HRESULT Error Code Values =

Article ID: 235361

Article Last Modified on 3/4/2004

-

APPLIES TO


 * Microsoft Collaboration Data Objects 1.21

-



This article was previously published under Q235361



SYMPTOMS
When using Collaboration Data Objects (CDO 1.21) by means of #import, the error code returned in _com_error is not correct. For example, error MAPI_E_AMBIGUOUS_RECIP, the correct error is x80040700, but _com_error::Error returns 0x80040ce8 instead.



CAUSE
CDO (1.21) erroneously fills both the wCode and sCode fields in the EXCEPINFO structure. The documentation for EXCEPINFO structure states that either wCode field or Scode field would be filled, but not both fields.



RESOLUTION
To determine the correct HRESULT value, examine the error code mapped into the _com_error::WCode data member. Convert this value to decimal, and look up the low-order word + 1000 decimal value in the table which follows.   HRESULT       Low-order  Warning or error code value [VB4 error  word value]       + 1000 (error code constants available only in  (hexadecimal) (decimal)  32-bit type libraries)

&H00040203  1515    CdoW_NO_SERVICE &H00040380  1896    CdoW_ERRORS_RETURNED &H00040481  2153    CdoW_POSITION_CHANGED &H00040482  2154    CdoW_APPROX_COUNT &H00040580  2408    CdoW_CANCEL_MESSAGE &H00040680  2664    CdoW_PARTIAL_COMPLETION &H80004002  17386   CdoE_INTERFACE_NOT_SUPPORTED &H80004005  17389   CdoE_CALL_FAILED &H80040102  1258    CdoE_NO_SUPPORT &H80040103  1259    CdoE_BAD_CHARWIDTH &H80040105  1261    CdoE_STRING_TOO_LONG &H80040106  1262    CdoE_UNKNOWN_FLAGS &H80040107  1263    CdoE_INVALID_ENTRYID &H80040108  1264    CdoE_INVALID_OBJECT &H80040109  1265    CdoE_OBJECT_CHANGED &H8004010A  1266    CdoE_OBJECT_DELETED &H8004010B  1267    CdoE_BUSY &H8004010D  1269    CdoE_NOT_ENOUGH_DISK &H8004010E  1270    CdoE_NOT_ENOUGH_RESOURCES &H8004010F  1271    CdoE_NOT_FOUND &H80040110  1272    CdoE_VERSION &H80040111  1273    CdoE_LOGON_FAILED &H80040112  1274    CdoE_SESSION_LIMIT &H80040113  1275    CdoE_USER_CANCEL &H80040114  1276    CdoE_UNABLE_TO_ABORT &H80040115  1277    CdoE_NETWORK_ERROR &H80040116  1278    CdoE_DISK_ERROR &H80040117  1279    CdoE_TOO_COMPLEX &H80040118  1280    CdoE_BAD_COLUMN &H80040119  1281    CdoE_EXTENDED_ERROR &H8004011A  1282    CdoE_COMPUTED &H8004011B  1283    CdoE_CORRUPT_DATA &H8004011C  1284    CdoE_UNCONFIGURED &H8004011D  1285    CdoE_FAILONEPROVIDER &H8004011E  1286    CdoE_UNKNOWN_CPID &H8004011F  1287    CdoE_UNKNOWN_LCID &H80040120  1288    CdoE_PASSWORD_CHANGE_REQUIRED &H80040121  1289    CdoE_PASSWORD_EXPIRED &H80040122  1290    CdoE_INVALID_WORKSTATION_ACCOUNT &H80040123  1291    CdoE_INVALID_ACCESS_TIME &H80040124  1292    CdoE_ACCOUNT_DISABLED &H80040200  1512    CdoE_END_OF_SESSION &H80040201  1513    CdoE_UNKNOWN_ENTRYID &H80040202  1514    CdoE_BAD_VALUE &H80040302  1770    CdoE_INVALID_TYPE &H80040303  1771    CdoE_TYPE_NO_SUPPORT &H80040304  1772    CdoE_UNEXPECTED_TYPE &H80040305  1773    CdoE_TOO_BIG &H80040306  1774    CdoE_DECLINE_COPY &H80040307  1775    CdoE_UNEXPECTED_ID &H80040400  2024    CdoE_UNABLE_TO_COMPLETE &H80040401  2025    CdoE_TIMEOUT &H80040402  2026    CdoE_TABLE_EMPTY &H80040403  2027    CdoE_TABLE_TOO_BIG &H80040405  2029    CdoE_INVALID_BOOKMARK &H80040500  2280    CdoE_WAIT &H80040501  2281    CdoE_CANCEL &H80040502  2282    CdoE_NOT_ME &H80040600  2536    CdoE_CORRUPT_STORE &H80040601  2537    CdoE_NOT_IN_QUEUE &H80040602  2538    CdoE_NO_SUPPRESS &H80040604  2540    CdoE_COLLISION &H80040605  2541    CdoE_NOT_INITIALIZED &H80040606  2542    CdoE_NON_STANDARD &H80040607  2543    CdoE_NO_RECIPIENTS &H80040608  2544    CdoE_SUBMITTED &H80040609  2545    CdoE_HAS_FOLDERS &H8004060A  2546    CdoE_HAS_MESSAGES &H8004060B  2547    CdoE_FOLDER_CYCLE &H80040700  2792    CdoE_AMBIGUOUS_RECIP &H80070005  1005    CdoE_NO_ACCESS &H8007000E  1014    CdoE_NOT_ENOUGH_MEMORY &H80070057  1087    CdoE_INVALID_PARAMETER



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.



MORE INFORMATION
As noted in the CDO (1.21) documentation in MSDN, the low-order word + 1000 decimal is equal to the decimal value of _com_error::WCode data member.

For more information on CDO (1.21) or MAPI error codes, please refer to the

Microsoft Developer Network.

