2017-05-12 17:37 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* contrib/hbwin/olecore.c
    + added support for typed variant array references created
      by __oleVariantNew()
This commit is contained in:
Przemysław Czerpak
2017-05-12 17:37:06 +02:00
parent a105eb54cc
commit 4ac9d09475
2 changed files with 18 additions and 2 deletions

View File

@@ -10,6 +10,11 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2017-05-12 17:37 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
+ added support for typed variant array references created
by __oleVariantNew()
2017-05-12 17:21 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/oleauto.prg
* contrib/hbwin/olecore.c

View File

@@ -477,6 +477,12 @@ static void hb_oleStringToItem( BSTR strVal, PHB_ITEM pItem )
static void hb_oleVariantRef( VARIANT * pVariant, VARIANT * pVarRef )
{
if( V_VT( pVariant ) & VT_BYREF )
{
VariantCopy( pVarRef, pVariant );
return;
}
V_VT( pVarRef ) = V_VT( pVariant ) | VT_BYREF;
switch( V_VT( pVariant ) )
@@ -543,8 +549,13 @@ static void hb_oleVariantRef( VARIANT * pVariant, VARIANT * pVarRef )
V_BSTRREF( pVarRef ) = &V_BSTR( pVariant );
break;
default:
V_VT( pVarRef ) = VT_VARIANT | VT_BYREF;
V_BYREF( pVarRef ) = pVariant;
if( V_VT( pVariant ) & VT_ARRAY )
V_ARRAYREF( pVarRef ) = &V_ARRAY( pVariant );
else
{
V_VT( pVarRef ) = VT_VARIANT | VT_BYREF;
V_BYREF( pVarRef ) = pVariant;
}
break;
}
}