Proposed change:
case VT_BSTR:
{
char* szString = WideToAnsi( pVariant->n1.n2.n3.bstrVal );
hb_itemPutCLPtr( pItem, szString, WideCharToMultiByte(
CP_ACP, 0, pVariant->n1.n2.n3.bstrVal, -1, NULL, 0, NULL, NULL ) );
break;
}
best regards
Antonio
2009/9/22 Antonio Linares <[email protected]>:
> Viktor,
>
> This code in olecore.c (hb_oleVariantToItem()) fails if the string has
> embedded zeroes, as hb_itemPutCPtr() uses strlen() to calculate the
> string length.
>
> case VT_BSTR:
> {
> char* szString = WideToAnsi( pVariant->n1.n2.n3.bstrVal );
> hb_itemPutCPtr( pItem, szString );
> break;
> }
>
> case VT_BSTR | VT_BYREF:
> {
> char* szString = WideToAnsi( *pVariant->n1.n2.n3.pbstrVal );
> hb_itemPutCPtr( pItem, szString );
> break;
> }
>
> We appreciate your comments, thanks
>
> best regards,
>
> Antonio
>
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour