mirror of
https://github.com/php/php-src.git
synced 2025-08-19 17:04:47 +02:00
pass another com object as parameter
This commit is contained in:
parent
608678bbfa
commit
79a39e3d39
4 changed files with 156 additions and 122 deletions
|
@ -145,7 +145,7 @@ pval php_VARIANT_get_property_handler(zend_property_reference *property_referenc
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OE_IS_OBJECT:
|
case OE_IS_OBJECT:
|
||||||
if(strstr(overloaded_property->element.value.str.val, "value"))
|
if(!strcmp(overloaded_property->element.value.str.val, "value"))
|
||||||
php_variant_to_pval(var_arg, &result, 0);
|
php_variant_to_pval(var_arg, &result, 0);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -192,197 +192,197 @@ static int do_VARIANT_propset(VARIANT *var_arg, pval *arg_property, pval *value)
|
||||||
|
|
||||||
type.type = IS_STRING;
|
type.type = IS_STRING;
|
||||||
|
|
||||||
if(strstr(arg_property->value.str.val, "bVal"))
|
if(!strcmp(arg_property->value.str.val, "bVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI1";
|
type.value.str.val = "VT_UI1";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "iVal"))
|
else if(!strcmp(arg_property->value.str.val, "iVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I2";
|
type.value.str.val = "VT_I2";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "lVal"))
|
else if(!strcmp(arg_property->value.str.val, "lVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I4";
|
type.value.str.val = "VT_I4";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "fltVal"))
|
else if(!strcmp(arg_property->value.str.val, "fltVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_R4";
|
type.value.str.val = "VT_R4";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "dblVal"))
|
else if(!strcmp(arg_property->value.str.val, "dblVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_R8";
|
type.value.str.val = "VT_R8";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "boolVal"))
|
else if(!strcmp(arg_property->value.str.val, "boolVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BOOL";
|
type.value.str.val = "VT_BOOL";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "scode"))
|
else if(!strcmp(arg_property->value.str.val, "scode"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_ERROR";
|
type.value.str.val = "VT_ERROR";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "cyVal"))
|
else if(!strcmp(arg_property->value.str.val, "cyVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_CY";
|
type.value.str.val = "VT_CY";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "date"))
|
else if(!strcmp(arg_property->value.str.val, "date"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DATE";
|
type.value.str.val = "VT_DATE";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "bstrVal"))
|
else if(!strcmp(arg_property->value.str.val, "bstrVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BSTR";
|
type.value.str.val = "VT_BSTR";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pdecVal"))
|
else if(!strcmp(arg_property->value.str.val, "pdecVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DECIMAL|VT_BYREF";
|
type.value.str.val = "VT_DECIMAL|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "punkVal"))
|
else if(!strcmp(arg_property->value.str.val, "punkVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UNKNOWN";
|
type.value.str.val = "VT_UNKNOWN";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pdispVal"))
|
else if(!strcmp(arg_property->value.str.val, "pdispVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DISPATCH";
|
type.value.str.val = "VT_DISPATCH";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "parray"))
|
else if(!strcmp(arg_property->value.str.val, "parray"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_ARRAY";
|
type.value.str.val = "VT_ARRAY";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pbVal"))
|
else if(!strcmp(arg_property->value.str.val, "pbVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI1|VT_BYREF";
|
type.value.str.val = "VT_UI1|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "piVal"))
|
else if(!strcmp(arg_property->value.str.val, "piVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I2|VT_BYREF";
|
type.value.str.val = "VT_I2|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "plVal"))
|
else if(!strcmp(arg_property->value.str.val, "plVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I4|VT_BYREF";
|
type.value.str.val = "VT_I4|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pfltVal"))
|
else if(!strcmp(arg_property->value.str.val, "pfltVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_R4|VT_BYREF";
|
type.value.str.val = "VT_R4|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pdblVal"))
|
else if(!strcmp(arg_property->value.str.val, "pdblVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_R8|VT_BYREF";
|
type.value.str.val = "VT_R8|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pboolVal"))
|
else if(!strcmp(arg_property->value.str.val, "pboolVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BOOL|VT_BYREF";
|
type.value.str.val = "VT_BOOL|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pscode"))
|
else if(!strcmp(arg_property->value.str.val, "pscode"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_ERROR|VT_BYREF";
|
type.value.str.val = "VT_ERROR|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pcyVal"))
|
else if(!strcmp(arg_property->value.str.val, "pcyVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_CY|VT_BYREF";
|
type.value.str.val = "VT_CY|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pdate"))
|
else if(!strcmp(arg_property->value.str.val, "pdate"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DATE|VT_BYREF";
|
type.value.str.val = "VT_DATE|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pbstrVal"))
|
else if(!strcmp(arg_property->value.str.val, "pbstrVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BSTR|VT_BYREF";
|
type.value.str.val = "VT_BSTR|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "ppunkVal"))
|
else if(!strcmp(arg_property->value.str.val, "ppunkVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UNKNOWN|VT_BYREF";
|
type.value.str.val = "VT_UNKNOWN|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "ppdispVal"))
|
else if(!strcmp(arg_property->value.str.val, "ppdispVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DISPATCH|VT_BYREF";
|
type.value.str.val = "VT_DISPATCH|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pparray"))
|
else if(!strcmp(arg_property->value.str.val, "pparray"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_ARRAY|VT_BYREF";
|
type.value.str.val = "VT_ARRAY|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pvarVal"))
|
else if(!strcmp(arg_property->value.str.val, "pvarVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_VARIANT|VT_BYREF";
|
type.value.str.val = "VT_VARIANT|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "byref"))
|
else if(!strcmp(arg_property->value.str.val, "byref"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BYREF";
|
type.value.str.val = "VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "cVal"))
|
else if(!strcmp(arg_property->value.str.val, "cVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I1";
|
type.value.str.val = "VT_I1";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "uiVal"))
|
else if(!strcmp(arg_property->value.str.val, "uiVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI2";
|
type.value.str.val = "VT_UI2";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "ulVal"))
|
else if(!strcmp(arg_property->value.str.val, "ulVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI4";
|
type.value.str.val = "VT_UI4";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "intVal"))
|
else if(!strcmp(arg_property->value.str.val, "intVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_INT";
|
type.value.str.val = "VT_INT";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "uintVal"))
|
else if(!strcmp(arg_property->value.str.val, "uintVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UINT|VT_BYREF";
|
type.value.str.val = "VT_UINT|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pcVal"))
|
else if(!strcmp(arg_property->value.str.val, "pcVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I1|VT_BYREF";
|
type.value.str.val = "VT_I1|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "puiVal"))
|
else if(!strcmp(arg_property->value.str.val, "puiVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI2|VT_BYREF";
|
type.value.str.val = "VT_UI2|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pulVal"))
|
else if(!strcmp(arg_property->value.str.val, "pulVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI4|VT_BYREF";
|
type.value.str.val = "VT_UI4|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pintVal"))
|
else if(!strcmp(arg_property->value.str.val, "pintVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_INT|VT_BYREF";
|
type.value.str.val = "VT_INT|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "puintVal"))
|
else if(!strcmp(arg_property->value.str.val, "puintVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UINT|VT_BYREF";
|
type.value.str.val = "VT_UINT|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
|
|
|
@ -35,7 +35,7 @@ PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IS_OBJECT:
|
case IS_OBJECT:
|
||||||
if(strstr(pval_arg->value.obj.ce->name, "VARIANT"))
|
if(!strcmp(pval_arg->value.obj.ce->name, "VARIANT"))
|
||||||
{
|
{
|
||||||
int type;
|
int type;
|
||||||
pval **var_handle;
|
pval **var_handle;
|
||||||
|
@ -45,6 +45,23 @@ PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg)
|
||||||
var_arg->pvarVal = (VARIANT FAR*) zend_list_find((*var_handle)->value.lval, &type);
|
var_arg->pvarVal = (VARIANT FAR*) zend_list_find((*var_handle)->value.lval, &type);
|
||||||
var_arg->vt = VT_VARIANT|VT_BYREF;
|
var_arg->vt = VT_VARIANT|VT_BYREF;
|
||||||
}
|
}
|
||||||
|
else if(!strcmp(pval_arg->value.obj.ce->name, "COM"))
|
||||||
|
{
|
||||||
|
pval **idispatch_handle;
|
||||||
|
IDispatch *i_dispatch;
|
||||||
|
int type;
|
||||||
|
|
||||||
|
/* fetch the IDispatch interface */
|
||||||
|
zend_hash_index_find(pval_arg->value.obj.properties, 0, (void **) &idispatch_handle);
|
||||||
|
i_dispatch = (IDispatch *)zend_list_find((*idispatch_handle)->value.lval, &type);
|
||||||
|
if (!i_dispatch || (type != php_COM_get_le_idispatch()))
|
||||||
|
var_arg->vt = VT_EMPTY;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var_arg->vt = VT_DISPATCH;
|
||||||
|
var_arg->pdispVal = i_dispatch;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IS_RESOURCE:
|
case IS_RESOURCE:
|
||||||
|
@ -84,49 +101,49 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
|
||||||
OLECHAR *unicode_str;
|
OLECHAR *unicode_str;
|
||||||
|
|
||||||
// set type
|
// set type
|
||||||
if(strstr(pval_type->value.str.val, "VT_UI1"))
|
if(!strcmp(pval_type->value.str.val, "VT_UI1"))
|
||||||
var_arg->vt = VT_UI1;
|
var_arg->vt = VT_UI1;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_I2"))
|
else if(!strcmp(pval_type->value.str.val, "VT_I2"))
|
||||||
var_arg->vt = VT_I4;
|
var_arg->vt = VT_I4;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_R4"))
|
else if(!strcmp(pval_type->value.str.val, "VT_R4"))
|
||||||
var_arg->vt = VT_R4;
|
var_arg->vt = VT_R4;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_R8"))
|
else if(!strcmp(pval_type->value.str.val, "VT_R8"))
|
||||||
var_arg->vt = VT_R8;
|
var_arg->vt = VT_R8;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_BOOL"))
|
else if(!strcmp(pval_type->value.str.val, "VT_BOOL"))
|
||||||
var_arg->vt = VT_BOOL;
|
var_arg->vt = VT_BOOL;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_ERROR"))
|
else if(!strcmp(pval_type->value.str.val, "VT_ERROR"))
|
||||||
var_arg->vt = VT_ERROR;
|
var_arg->vt = VT_ERROR;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_CY"))
|
else if(!strcmp(pval_type->value.str.val, "VT_CY"))
|
||||||
var_arg->vt = VT_CY;
|
var_arg->vt = VT_CY;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_DATE"))
|
else if(!strcmp(pval_type->value.str.val, "VT_DATE"))
|
||||||
var_arg->vt = VT_DATE;
|
var_arg->vt = VT_DATE;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_BSTR"))
|
else if(!strcmp(pval_type->value.str.val, "VT_BSTR"))
|
||||||
var_arg->vt = VT_BSTR;
|
var_arg->vt = VT_BSTR;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_DECIMAL"))
|
else if(!strcmp(pval_type->value.str.val, "VT_DECIMAL"))
|
||||||
var_arg->vt = VT_DECIMAL;
|
var_arg->vt = VT_DECIMAL;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_UNKNOWN"))
|
else if(!strcmp(pval_type->value.str.val, "VT_UNKNOWN"))
|
||||||
var_arg->vt = VT_UNKNOWN;
|
var_arg->vt = VT_UNKNOWN;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_DISPATCH"))
|
else if(!strcmp(pval_type->value.str.val, "VT_DISPATCH"))
|
||||||
var_arg->vt = VT_DISPATCH;
|
var_arg->vt = VT_DISPATCH;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_VARIANT"))
|
else if(!strcmp(pval_type->value.str.val, "VT_VARIANT"))
|
||||||
var_arg->vt = VT_VARIANT;
|
var_arg->vt = VT_VARIANT;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_I1"))
|
else if(!strcmp(pval_type->value.str.val, "VT_I1"))
|
||||||
var_arg->vt = VT_I1;
|
var_arg->vt = VT_I1;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_UI2"))
|
else if(!strcmp(pval_type->value.str.val, "VT_UI2"))
|
||||||
var_arg->vt = VT_UI2;
|
var_arg->vt = VT_UI2;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_UI4"))
|
else if(!strcmp(pval_type->value.str.val, "VT_UI4"))
|
||||||
var_arg->vt = VT_UI4;
|
var_arg->vt = VT_UI4;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_INT"))
|
else if(!strcmp(pval_type->value.str.val, "VT_INT"))
|
||||||
var_arg->vt = VT_INT;
|
var_arg->vt = VT_INT;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_UINT"))
|
else if(!strcmp(pval_type->value.str.val, "VT_UINT"))
|
||||||
var_arg->vt = VT_UINT;
|
var_arg->vt = VT_UINT;
|
||||||
|
|
||||||
// is safearray
|
// is safearray
|
||||||
if(strstr(pval_type->value.str.val, "VT_ARRAY"))
|
if(!strcmp(pval_type->value.str.val, "VT_ARRAY"))
|
||||||
var_arg->vt |= VT_ARRAY;
|
var_arg->vt |= VT_ARRAY;
|
||||||
|
|
||||||
// by reference
|
// by reference
|
||||||
if(strstr(pval_type->value.str.val, "VT_BYREF"))
|
if(!strcmp(pval_type->value.str.val, "VT_BYREF"))
|
||||||
var_arg->vt |= VT_BYREF;
|
var_arg->vt |= VT_BYREF;
|
||||||
|
|
||||||
switch(var_arg->vt)
|
switch(var_arg->vt)
|
||||||
|
|
|
@ -35,7 +35,7 @@ PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IS_OBJECT:
|
case IS_OBJECT:
|
||||||
if(strstr(pval_arg->value.obj.ce->name, "VARIANT"))
|
if(!strcmp(pval_arg->value.obj.ce->name, "VARIANT"))
|
||||||
{
|
{
|
||||||
int type;
|
int type;
|
||||||
pval **var_handle;
|
pval **var_handle;
|
||||||
|
@ -45,6 +45,23 @@ PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg)
|
||||||
var_arg->pvarVal = (VARIANT FAR*) zend_list_find((*var_handle)->value.lval, &type);
|
var_arg->pvarVal = (VARIANT FAR*) zend_list_find((*var_handle)->value.lval, &type);
|
||||||
var_arg->vt = VT_VARIANT|VT_BYREF;
|
var_arg->vt = VT_VARIANT|VT_BYREF;
|
||||||
}
|
}
|
||||||
|
else if(!strcmp(pval_arg->value.obj.ce->name, "COM"))
|
||||||
|
{
|
||||||
|
pval **idispatch_handle;
|
||||||
|
IDispatch *i_dispatch;
|
||||||
|
int type;
|
||||||
|
|
||||||
|
/* fetch the IDispatch interface */
|
||||||
|
zend_hash_index_find(pval_arg->value.obj.properties, 0, (void **) &idispatch_handle);
|
||||||
|
i_dispatch = (IDispatch *)zend_list_find((*idispatch_handle)->value.lval, &type);
|
||||||
|
if (!i_dispatch || (type != php_COM_get_le_idispatch()))
|
||||||
|
var_arg->vt = VT_EMPTY;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var_arg->vt = VT_DISPATCH;
|
||||||
|
var_arg->pdispVal = i_dispatch;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IS_RESOURCE:
|
case IS_RESOURCE:
|
||||||
|
@ -84,49 +101,49 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
|
||||||
OLECHAR *unicode_str;
|
OLECHAR *unicode_str;
|
||||||
|
|
||||||
// set type
|
// set type
|
||||||
if(strstr(pval_type->value.str.val, "VT_UI1"))
|
if(!strcmp(pval_type->value.str.val, "VT_UI1"))
|
||||||
var_arg->vt = VT_UI1;
|
var_arg->vt = VT_UI1;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_I2"))
|
else if(!strcmp(pval_type->value.str.val, "VT_I2"))
|
||||||
var_arg->vt = VT_I4;
|
var_arg->vt = VT_I4;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_R4"))
|
else if(!strcmp(pval_type->value.str.val, "VT_R4"))
|
||||||
var_arg->vt = VT_R4;
|
var_arg->vt = VT_R4;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_R8"))
|
else if(!strcmp(pval_type->value.str.val, "VT_R8"))
|
||||||
var_arg->vt = VT_R8;
|
var_arg->vt = VT_R8;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_BOOL"))
|
else if(!strcmp(pval_type->value.str.val, "VT_BOOL"))
|
||||||
var_arg->vt = VT_BOOL;
|
var_arg->vt = VT_BOOL;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_ERROR"))
|
else if(!strcmp(pval_type->value.str.val, "VT_ERROR"))
|
||||||
var_arg->vt = VT_ERROR;
|
var_arg->vt = VT_ERROR;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_CY"))
|
else if(!strcmp(pval_type->value.str.val, "VT_CY"))
|
||||||
var_arg->vt = VT_CY;
|
var_arg->vt = VT_CY;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_DATE"))
|
else if(!strcmp(pval_type->value.str.val, "VT_DATE"))
|
||||||
var_arg->vt = VT_DATE;
|
var_arg->vt = VT_DATE;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_BSTR"))
|
else if(!strcmp(pval_type->value.str.val, "VT_BSTR"))
|
||||||
var_arg->vt = VT_BSTR;
|
var_arg->vt = VT_BSTR;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_DECIMAL"))
|
else if(!strcmp(pval_type->value.str.val, "VT_DECIMAL"))
|
||||||
var_arg->vt = VT_DECIMAL;
|
var_arg->vt = VT_DECIMAL;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_UNKNOWN"))
|
else if(!strcmp(pval_type->value.str.val, "VT_UNKNOWN"))
|
||||||
var_arg->vt = VT_UNKNOWN;
|
var_arg->vt = VT_UNKNOWN;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_DISPATCH"))
|
else if(!strcmp(pval_type->value.str.val, "VT_DISPATCH"))
|
||||||
var_arg->vt = VT_DISPATCH;
|
var_arg->vt = VT_DISPATCH;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_VARIANT"))
|
else if(!strcmp(pval_type->value.str.val, "VT_VARIANT"))
|
||||||
var_arg->vt = VT_VARIANT;
|
var_arg->vt = VT_VARIANT;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_I1"))
|
else if(!strcmp(pval_type->value.str.val, "VT_I1"))
|
||||||
var_arg->vt = VT_I1;
|
var_arg->vt = VT_I1;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_UI2"))
|
else if(!strcmp(pval_type->value.str.val, "VT_UI2"))
|
||||||
var_arg->vt = VT_UI2;
|
var_arg->vt = VT_UI2;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_UI4"))
|
else if(!strcmp(pval_type->value.str.val, "VT_UI4"))
|
||||||
var_arg->vt = VT_UI4;
|
var_arg->vt = VT_UI4;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_INT"))
|
else if(!strcmp(pval_type->value.str.val, "VT_INT"))
|
||||||
var_arg->vt = VT_INT;
|
var_arg->vt = VT_INT;
|
||||||
else if(strstr(pval_type->value.str.val, "VT_UINT"))
|
else if(!strcmp(pval_type->value.str.val, "VT_UINT"))
|
||||||
var_arg->vt = VT_UINT;
|
var_arg->vt = VT_UINT;
|
||||||
|
|
||||||
// is safearray
|
// is safearray
|
||||||
if(strstr(pval_type->value.str.val, "VT_ARRAY"))
|
if(!strcmp(pval_type->value.str.val, "VT_ARRAY"))
|
||||||
var_arg->vt |= VT_ARRAY;
|
var_arg->vt |= VT_ARRAY;
|
||||||
|
|
||||||
// by reference
|
// by reference
|
||||||
if(strstr(pval_type->value.str.val, "VT_BYREF"))
|
if(!strcmp(pval_type->value.str.val, "VT_BYREF"))
|
||||||
var_arg->vt |= VT_BYREF;
|
var_arg->vt |= VT_BYREF;
|
||||||
|
|
||||||
switch(var_arg->vt)
|
switch(var_arg->vt)
|
||||||
|
|
|
@ -145,7 +145,7 @@ pval php_VARIANT_get_property_handler(zend_property_reference *property_referenc
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OE_IS_OBJECT:
|
case OE_IS_OBJECT:
|
||||||
if(strstr(overloaded_property->element.value.str.val, "value"))
|
if(!strcmp(overloaded_property->element.value.str.val, "value"))
|
||||||
php_variant_to_pval(var_arg, &result, 0);
|
php_variant_to_pval(var_arg, &result, 0);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -192,197 +192,197 @@ static int do_VARIANT_propset(VARIANT *var_arg, pval *arg_property, pval *value)
|
||||||
|
|
||||||
type.type = IS_STRING;
|
type.type = IS_STRING;
|
||||||
|
|
||||||
if(strstr(arg_property->value.str.val, "bVal"))
|
if(!strcmp(arg_property->value.str.val, "bVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI1";
|
type.value.str.val = "VT_UI1";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "iVal"))
|
else if(!strcmp(arg_property->value.str.val, "iVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I2";
|
type.value.str.val = "VT_I2";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "lVal"))
|
else if(!strcmp(arg_property->value.str.val, "lVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I4";
|
type.value.str.val = "VT_I4";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "fltVal"))
|
else if(!strcmp(arg_property->value.str.val, "fltVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_R4";
|
type.value.str.val = "VT_R4";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "dblVal"))
|
else if(!strcmp(arg_property->value.str.val, "dblVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_R8";
|
type.value.str.val = "VT_R8";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "boolVal"))
|
else if(!strcmp(arg_property->value.str.val, "boolVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BOOL";
|
type.value.str.val = "VT_BOOL";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "scode"))
|
else if(!strcmp(arg_property->value.str.val, "scode"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_ERROR";
|
type.value.str.val = "VT_ERROR";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "cyVal"))
|
else if(!strcmp(arg_property->value.str.val, "cyVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_CY";
|
type.value.str.val = "VT_CY";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "date"))
|
else if(!strcmp(arg_property->value.str.val, "date"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DATE";
|
type.value.str.val = "VT_DATE";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "bstrVal"))
|
else if(!strcmp(arg_property->value.str.val, "bstrVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BSTR";
|
type.value.str.val = "VT_BSTR";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pdecVal"))
|
else if(!strcmp(arg_property->value.str.val, "pdecVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DECIMAL|VT_BYREF";
|
type.value.str.val = "VT_DECIMAL|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "punkVal"))
|
else if(!strcmp(arg_property->value.str.val, "punkVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UNKNOWN";
|
type.value.str.val = "VT_UNKNOWN";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pdispVal"))
|
else if(!strcmp(arg_property->value.str.val, "pdispVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DISPATCH";
|
type.value.str.val = "VT_DISPATCH";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "parray"))
|
else if(!strcmp(arg_property->value.str.val, "parray"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_ARRAY";
|
type.value.str.val = "VT_ARRAY";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pbVal"))
|
else if(!strcmp(arg_property->value.str.val, "pbVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI1|VT_BYREF";
|
type.value.str.val = "VT_UI1|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "piVal"))
|
else if(!strcmp(arg_property->value.str.val, "piVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I2|VT_BYREF";
|
type.value.str.val = "VT_I2|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "plVal"))
|
else if(!strcmp(arg_property->value.str.val, "plVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I4|VT_BYREF";
|
type.value.str.val = "VT_I4|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pfltVal"))
|
else if(!strcmp(arg_property->value.str.val, "pfltVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_R4|VT_BYREF";
|
type.value.str.val = "VT_R4|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pdblVal"))
|
else if(!strcmp(arg_property->value.str.val, "pdblVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_R8|VT_BYREF";
|
type.value.str.val = "VT_R8|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pboolVal"))
|
else if(!strcmp(arg_property->value.str.val, "pboolVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BOOL|VT_BYREF";
|
type.value.str.val = "VT_BOOL|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pscode"))
|
else if(!strcmp(arg_property->value.str.val, "pscode"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_ERROR|VT_BYREF";
|
type.value.str.val = "VT_ERROR|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pcyVal"))
|
else if(!strcmp(arg_property->value.str.val, "pcyVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_CY|VT_BYREF";
|
type.value.str.val = "VT_CY|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pdate"))
|
else if(!strcmp(arg_property->value.str.val, "pdate"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DATE|VT_BYREF";
|
type.value.str.val = "VT_DATE|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pbstrVal"))
|
else if(!strcmp(arg_property->value.str.val, "pbstrVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BSTR|VT_BYREF";
|
type.value.str.val = "VT_BSTR|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "ppunkVal"))
|
else if(!strcmp(arg_property->value.str.val, "ppunkVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UNKNOWN|VT_BYREF";
|
type.value.str.val = "VT_UNKNOWN|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "ppdispVal"))
|
else if(!strcmp(arg_property->value.str.val, "ppdispVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_DISPATCH|VT_BYREF";
|
type.value.str.val = "VT_DISPATCH|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pparray"))
|
else if(!strcmp(arg_property->value.str.val, "pparray"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_ARRAY|VT_BYREF";
|
type.value.str.val = "VT_ARRAY|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pvarVal"))
|
else if(!strcmp(arg_property->value.str.val, "pvarVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_VARIANT|VT_BYREF";
|
type.value.str.val = "VT_VARIANT|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "byref"))
|
else if(!strcmp(arg_property->value.str.val, "byref"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_BYREF";
|
type.value.str.val = "VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "cVal"))
|
else if(!strcmp(arg_property->value.str.val, "cVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I1";
|
type.value.str.val = "VT_I1";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "uiVal"))
|
else if(!strcmp(arg_property->value.str.val, "uiVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI2";
|
type.value.str.val = "VT_UI2";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "ulVal"))
|
else if(!strcmp(arg_property->value.str.val, "ulVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI4";
|
type.value.str.val = "VT_UI4";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "intVal"))
|
else if(!strcmp(arg_property->value.str.val, "intVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_INT";
|
type.value.str.val = "VT_INT";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "uintVal"))
|
else if(!strcmp(arg_property->value.str.val, "uintVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UINT|VT_BYREF";
|
type.value.str.val = "VT_UINT|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pcVal"))
|
else if(!strcmp(arg_property->value.str.val, "pcVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_I1|VT_BYREF";
|
type.value.str.val = "VT_I1|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "puiVal"))
|
else if(!strcmp(arg_property->value.str.val, "puiVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI2|VT_BYREF";
|
type.value.str.val = "VT_UI2|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pulVal"))
|
else if(!strcmp(arg_property->value.str.val, "pulVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UI4|VT_BYREF";
|
type.value.str.val = "VT_UI4|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "pintVal"))
|
else if(!strcmp(arg_property->value.str.val, "pintVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_INT|VT_BYREF";
|
type.value.str.val = "VT_INT|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
}
|
}
|
||||||
else if(strstr(arg_property->value.str.val, "puintVal"))
|
else if(!strcmp(arg_property->value.str.val, "puintVal"))
|
||||||
{
|
{
|
||||||
type.value.str.val = "VT_UINT|VT_BYREF";
|
type.value.str.val = "VT_UINT|VT_BYREF";
|
||||||
php_pval_to_variant_ex(value, var_arg, &type);
|
php_pval_to_variant_ex(value, var_arg, &type);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue