>> // 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

Reply via email to