>> // Error BASE/3012 Argument error: COPTION >> // Called from WIN_OLEAUTO:COPTION(0) >> // Called from SAMPLE(42) > > The real error code is 0x8002000E DISP_E_BADPARAMCOUNT > > It would be nice to have real OLE error code instead of 3012, but the problem > is that error codes are USHORT and OLE errors are ULONG (with significant > part in upper word). The similar situation is in ADS error codes. They has > UNSIGNED32 type, but are small values, so no problem to cast to USHORT. Can > we have ULONG (or LONG) for error subcode and OS code? It seems a simple > change. hb_errRT_*() already accepts ULONG, we have to change > hb_err[Get|Put]SubCode() only.
Yes, it would be a good thing to change gencode, subcode and oscode to 32-bit. I'd suggest using some abstract type in this case f.e. HB_ERROR or HB_ERRCODE, or some others from the new types, like HB_U32. Plain ULONG/LONG isn't very good as we'd need to change them later anyway. But, I'm not sure if mapping system error codes directly to Harbour gencode is a good idea. It seems to be better to put these codes to oscode, or subcode. Brgds, Viktor _______________________________________________ Harbour mailing list (attachment size limit: 40KB) [email protected] http://lists.harbour-project.org/mailman/listinfo/harbour
