Enrico,
xHarbour defines such function as:
FUNCTION OleDefaultArg()
RETURN VTWrapper( VT_ERROR, DISP_E_PARAMNOTFOUND )
So I guess that for those missing params, a Variant of type VT_ERROR is required.
Enrico,
xHarbour defines such function as:
FUNCTION OleDefaultArg()
RETURN VTWrapper( VT_ERROR, DISP_E_PARAMNOTFOUND )
So I guess that for those missing params, a Variant of type VT_ERROR is required.
Antonio Linares wrote:Enrico,
Do you just need function OleDefaultArg() ?
Antonio Linares wrote:Enrico,
xHarbour defines such function as:
FUNCTION OleDefaultArg()
RETURN VTWrapper( VT_ERROR, DISP_E_PARAMNOTFOUND )
So I guess that for those missing params, a Variant of type VT_ERROR is required.
Enrico,
We already commented this (as far as I remember)
Harbour function void hb_oleItemToVariantRef() actually uses these types:
case HB_IT_STRING:
case HB_IT_MEMO:
case HB_IT_LOGICAL:
case HB_IT_INTEGER:
case HB_IT_LONG:
case HB_IT_DOUBLE:
case HB_IT_DATE:
case HB_IT_TIMESTAMP:
case HB_IT_POINTER:
case HB_IT_ARRAY: / or OBJECT /
if( HB_IS_OBJECT( pItem ) )
and also there is a default branch:
default:
if( pVarRef )
{
V_VT( pVarRef ) = VT_VARIANT | VT_BYREF;
V_VARIANTREF( pVarRef ) = pVariant;
}
Where to insert it ? I guess we may need to use HB_IT_ARRAY and HB_IS_OBJECT(), as if we do it for all NILs then we will be changing many users code default behavior.
We should not change NILs.
When the parameter is an Object then we need to deal with Obj[1] and obj[2]
We should do it the same way the xHarbour does it:
case HB_IT_ARRAY: / or OBJECT /
if( HB_IS_OBJECT( pItem ) )
Sorry, I can't be of any help... ![]()
EMG
Any news about OleDefaultArg() in Harbour? ![]()
EMG