cvs: php4 /ext/com conversion.c

From: Date: Sun, 18 Feb 2001 16:49:58 +0000
Subject: cvs: php4 /ext/com conversion.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-4101@lists.php.net to get a copy of this message
phanto Sun Feb 18 08:49:58 2001 EDT Modified files: /php4/ext/com conversion.c Log: added a few more variant types for zval <-> variant conversion Index: php4/ext/com/conversion.c diff -u php4/ext/com/conversion.c:1.6 php4/ext/com/conversion.c:1.7 --- php4/ext/com/conversion.c:1.6 Fri Feb 16 18:15:12 2001 +++ php4/ext/com/conversion.c Sun Feb 18 08:49:58 2001 @@ -317,7 +317,7 @@ case VT_UINT: convert_to_long_ex(&pval_arg); - var_arg->intVal = (unsigned int)pval_arg->value.lval; + var_arg->uintVal = (unsigned int)pval_arg->value.lval; break; case VT_I1|VT_BYREF: @@ -342,7 +342,7 @@ case VT_UINT|VT_BYREF: convert_to_long(pval_arg); - var_arg->pintVal = (unsigned int FAR*) &pval_arg->value.lval; + var_arg->puintVal = (unsigned int FAR*) &pval_arg->value.lval; break; default: @@ -421,6 +421,15 @@ } break; + case VT_CY: + if(var_arg->vt & VT_BYREF) + VarR8FromCy(var_arg->cyVal, &(pval_arg->value.dval)); + else + VarR8FromCy(*(var_arg->pcyVal), &(pval_arg->value.dval)); + + pval_arg->type = IS_DOUBLE; + break; + case VT_BOOL: if (var_arg->vt & VT_BYREF) if (*(var_arg->pboolVal) & 0xFFFF) @@ -498,6 +507,52 @@ case VT_UNKNOWN: var_arg->pdispVal->lpVtbl->Release(var_arg->pdispVal); /* break missing intentionally */ + + case VT_I1: + if(var_arg->vt & VT_BYREF) + pval_arg->value.lval = (long)*(var_arg->pcVal); + else + pval_arg->value.lval = (long) var_arg->cVal; + + pval_arg->type = IS_LONG; + break; + + case VT_UI2: + if(var_arg->vt & VT_BYREF) + pval_arg->value.lval = (long)*(var_arg->puiVal); + else + pval_arg->value.lval = (long) var_arg->uiVal; + + pval_arg->type = IS_LONG; + break; + + case VT_UI4: + if(var_arg->vt & VT_BYREF) + pval_arg->value.lval = (long)*(var_arg->pulVal); + else + pval_arg->value.lval = (long) var_arg->ulVal; + + pval_arg->type = IS_LONG; + break; + + case VT_INT: + if(var_arg->vt & VT_BYREF) + pval_arg->value.lval = (long)*(var_arg->pintVal); + else + pval_arg->value.lval = (long) var_arg->intVal; + + pval_arg->type = IS_LONG; + break; + + case VT_UINT: + if(var_arg->vt & VT_BYREF) + pval_arg->value.lval = (long)*(var_arg->puintVal); + else + pval_arg->value.lval = (long) var_arg->uintVal; + + pval_arg->type = IS_LONG; + break; + default: php_error(E_WARNING,"Unsupported variant type: %d (0x%X)", var_arg->vt, var_arg->vt); var_reset(pval_arg);

« previous php.cvs (#4101) next »