From: Harald Radi Date: Tue, 30 Jan 2001 02:09:39 +0000 (+0000) Subject: pass another com object as parameter X-Git-Tag: php-4.0.5RC1~438 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79a39e3d396168f8d2a4a4070a8ebf893a33ee7c;p=php pass another com object as parameter --- diff --git a/ext/com/VARIANT.c b/ext/com/VARIANT.c index 36cc82c0e4..a133f2f588 100644 --- a/ext/com/VARIANT.c +++ b/ext/com/VARIANT.c @@ -145,7 +145,7 @@ pval php_VARIANT_get_property_handler(zend_property_reference *property_referenc break; 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); else { @@ -192,197 +192,197 @@ static int do_VARIANT_propset(VARIANT *var_arg, pval *arg_property, pval *value) 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; php_pval_to_variant_ex(value, var_arg, &type); diff --git a/ext/com/conversion.c b/ext/com/conversion.c index a0ef18cea5..1a03e55b23 100644 --- a/ext/com/conversion.c +++ b/ext/com/conversion.c @@ -35,7 +35,7 @@ PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg) break; case IS_OBJECT: - if(strstr(pval_arg->value.obj.ce->name, "VARIANT")) + if(!strcmp(pval_arg->value.obj.ce->name, "VARIANT")) { int type; 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->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; 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; // 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; // 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; // 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; switch(var_arg->vt) diff --git a/ext/rpc/com/conversion.c b/ext/rpc/com/conversion.c index a0ef18cea5..1a03e55b23 100644 --- a/ext/rpc/com/conversion.c +++ b/ext/rpc/com/conversion.c @@ -35,7 +35,7 @@ PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg) break; case IS_OBJECT: - if(strstr(pval_arg->value.obj.ce->name, "VARIANT")) + if(!strcmp(pval_arg->value.obj.ce->name, "VARIANT")) { int type; 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->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; 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; // 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; // 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; // 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; switch(var_arg->vt) diff --git a/ext/rpc/com/variant.c b/ext/rpc/com/variant.c index 36cc82c0e4..a133f2f588 100644 --- a/ext/rpc/com/variant.c +++ b/ext/rpc/com/variant.c @@ -145,7 +145,7 @@ pval php_VARIANT_get_property_handler(zend_property_reference *property_referenc break; 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); else { @@ -192,197 +192,197 @@ static int do_VARIANT_propset(VARIANT *var_arg, pval *arg_property, pval *value) 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; 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"; php_pval_to_variant_ex(value, var_arg, &type);