From: Wez Furlong Date: Mon, 3 May 2004 15:51:41 +0000 (+0000) Subject: Fixup some constants and error handling. X-Git-Tag: RELEASE_0_1~302 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8ca144bba555a9fcbe69fe4c9007407e9bfc78e3;p=php Fixup some constants and error handling. Remove unfinished and un-needed function. --- diff --git a/ext/com_dotnet/README b/ext/com_dotnet/README index e369d74459..0d9db40d98 100644 --- a/ext/com_dotnet/README +++ b/ext/com_dotnet/README @@ -65,9 +65,6 @@ $word->Quit(); TODO: -- Mapping PHP arrays as SafeArray's. This is currently not done. - Probably will implement this into $a = new variant($php_array, VT_ARRAY) - or something similar. - documentation * dotnet support requires that you have the mscoree.h header from the .net sdk diff --git a/ext/com_dotnet/com_extension.c b/ext/com_dotnet/com_extension.c index b88a99ccfb..354cbcd1cc 100644 --- a/ext/com_dotnet/com_extension.c +++ b/ext/com_dotnet/com_extension.c @@ -228,9 +228,11 @@ PHP_MINIT_FUNCTION(com_dotnet) COM_CONST(CLSCTX_SERVER); COM_CONST(CLSCTX_ALL); +#if 0 COM_CONST(DISPATCH_METHOD); COM_CONST(DISPATCH_PROPERTYGET); COM_CONST(DISPATCH_PROPERTYPUT); +#endif COM_CONST(VT_NULL); COM_CONST(VT_EMPTY); @@ -269,6 +271,17 @@ PHP_MINIT_FUNCTION(com_dotnet) COM_CONST(VARCMP_GT); COM_CONST(VARCMP_NULL); + COM_CONST(NORM_IGNORECASE); + COM_CONST(NORM_IGNORENONSPACE); + COM_CONST(NORM_IGNORESYMBOLS); + COM_CONST(NORM_IGNOREWIDTH); + COM_CONST(NORM_IGNOREKANATYPE); +#ifdef NORM_IGNOREKASHIDA + COM_CONST(NORM_IGNOREKASHIDA); +#endif + COM_CONST(DISP_E_DIVBYZERO); + COM_CONST(DISP_E_OVERFLOW); + return SUCCESS; } /* }}} */ diff --git a/ext/com_dotnet/com_variant.c b/ext/com_dotnet/com_variant.c index 48a0a66c20..ccb8c18321 100644 --- a/ext/com_dotnet/com_variant.c +++ b/ext/com_dotnet/com_variant.c @@ -312,7 +312,7 @@ PHP_FUNCTION(com_variant_create_instance) /* }}} */ /* {{{ proto void variant_set(object variant, mixed value) - Assigns a new value for a variant object (like "set" in VB) */ + Assigns a new value for a variant object */ PHP_FUNCTION(variant_set) { zval *zobj, *zvalue = NULL; @@ -443,6 +443,11 @@ static void variant_binary_operation(enum variant_binary_opcode op, INTERNAL_FUN if (SUCCEEDED(result)) { php_com_wrap_variant(return_value, &vres, codepage TSRMLS_CC); + } else { + char *werr; + werr = php_win_err(result); + php_com_throw_exception(result, werr TSRMLS_CC); + LocalFree(werr); } VariantClear(&vres); @@ -468,7 +473,7 @@ PHP_FUNCTION(variant_cat) /* }}} */ /* {{{ proto mixed variant_sub(mixed left, mixed right) - subjects the value of the right variant from the left variant value and returns the result */ + subtracts the value of the right variant from the left variant value and returns the result */ PHP_FUNCTION(variant_sub) { variant_binary_operation(VOP_SUB, INTERNAL_FUNCTION_PARAM_PASSTHRU); @@ -508,7 +513,7 @@ PHP_FUNCTION(variant_eqv) /* }}} */ /* {{{ proto mixed variant_idiv(mixed left, mixed right) - Converts variants to operands and then returns the result from dividing them */ + Converts variants to integers and then returns the result from dividing them */ PHP_FUNCTION(variant_idiv) { variant_binary_operation(VOP_IDIV, INTERNAL_FUNCTION_PARAM_PASSTHRU); @@ -600,6 +605,11 @@ static void variant_unary_operation(enum variant_unary_opcode op, INTERNAL_FUNCT if (SUCCEEDED(result)) { php_com_wrap_variant(return_value, &vres, codepage TSRMLS_CC); + } else { + char *werr; + werr = php_win_err(result); + php_com_throw_exception(result, werr TSRMLS_CC); + LocalFree(werr); } VariantClear(&vres); @@ -616,7 +626,7 @@ PHP_FUNCTION(variant_abs) /* }}} */ /* {{{ proto mixed variant_fix(mixed left) - Returns the ? of a variant */ + Returns the integer part ? of a variant */ PHP_FUNCTION(variant_fix) { variant_unary_operation(VOP_FIX, INTERNAL_FUNCTION_PARAM_PASSTHRU); @@ -902,19 +912,3 @@ PHP_FUNCTION(variant_cast) } /* }}} */ -/* {{{ proto mixed variant_index_get(object variant, mixed index1 [, mixed index2 [, ...]]) - Get the value of a multi dimensional array property */ -PHP_FUNCTION(variant_index_get) -{ - zval *zobj; - php_com_dotnet_object *obj; - - if (FAILURE == zend_parse_parameters(1 TSRMLS_CC, - "O", &zobj, php_com_variant_class_entry)) { - return; - } - obj = CDNO_FETCH(zobj); - - /* TODO: finish... */ -} -/* }}} */ diff --git a/ext/com_dotnet/com_wrapper.c b/ext/com_dotnet/com_wrapper.c index 0ca3247a45..4ca96cc8c5 100644 --- a/ext/com_dotnet/com_wrapper.c +++ b/ext/com_dotnet/com_wrapper.c @@ -314,14 +314,8 @@ static HRESULT STDMETHODCALLTYPE disp_invokeex( /* return value */ if (retval) { if (pvarRes) { - if (Z_TYPE_P(retval) == IS_OBJECT) { - /* export the object using a dispatch like ourselves */ - VariantInit(pvarRes); - V_VT(pvarRes) = VT_DISPATCH; - V_DISPATCH(pvarRes) = php_com_wrapper_export(retval TSRMLS_CC); - } else { - php_com_variant_from_zval(pvarRes, retval, COMG(code_page) TSRMLS_CC); - } + VariantInit(pvarRes); + php_com_variant_from_zval(pvarRes, retval, COMG(code_page) TSRMLS_CC); } zval_ptr_dtor(&retval); } else if (pvarRes) { @@ -344,6 +338,8 @@ static HRESULT STDMETHODCALLTYPE disp_deletememberbyname( FETCH_DISP("DeleteMemberByName"); + /* TODO: unset */ + return S_FALSE; } @@ -355,6 +351,8 @@ static HRESULT STDMETHODCALLTYPE disp_deletememberbydispid( FETCH_DISP("DeleteMemberByDispID"); + /* TODO: unset */ + return S_FALSE; }