wez Mon May 3 11:51:41 2004 EDT Modified files: /php-src/ext/com_dotnet README com_extension.c com_variant.c com_wrapper.c Log: Fixup some constants and error handling. Remove unfinished and un-needed function. http://cvs.php.net/diff.php/php-src/ext/com_dotnet/README?r1=1.3&r2=1.4&ty=u Index: php-src/ext/com_dotnet/README diff -u php-src/ext/com_dotnet/README:1.3 php-src/ext/com_dotnet/README:1.4 --- php-src/ext/com_dotnet/README:1.3 Tue Jan 20 06:01:16 2004 +++ php-src/ext/com_dotnet/README Mon May 3 11:51:41 2004 @@ -65,9 +65,6 @@ 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 http://cvs.php.net/diff.php/php-src/ext/com_dotnet/com_extension.c?r1=1.11&r2=1.12&ty=u Index: php-src/ext/com_dotnet/com_extension.c diff -u php-src/ext/com_dotnet/com_extension.c:1.11 php-src/ext/com_dotnet/com_extension.c:1.12 --- php-src/ext/com_dotnet/com_extension.c:1.11 Wed Apr 28 19:24:33 2004 +++ php-src/ext/com_dotnet/com_extension.c Mon May 3 11:51:41 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: com_extension.c,v 1.11 2004/04/28 23:24:33 wez Exp $ */ +/* $Id: com_extension.c,v 1.12 2004/05/03 15:51:41 wez Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -228,9 +228,11 @@ 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 @@ 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; } /* }}} */ http://cvs.php.net/diff.php/php-src/ext/com_dotnet/com_variant.c?r1=1.6&r2=1.7&ty=u Index: php-src/ext/com_dotnet/com_variant.c diff -u php-src/ext/com_dotnet/com_variant.c:1.6 php-src/ext/com_dotnet/com_variant.c:1.7 --- php-src/ext/com_dotnet/com_variant.c:1.6 Thu Apr 22 10:27:11 2004 +++ php-src/ext/com_dotnet/com_variant.c Mon May 3 11:51:41 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: com_variant.c,v 1.6 2004/04/22 14:27:11 wez Exp $ */ +/* $Id: com_variant.c,v 1.7 2004/05/03 15:51:41 wez Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -312,7 +312,7 @@ /* }}} */ /* {{{ 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 @@ 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 @@ /* }}} */ /* {{{ 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 @@ /* }}} */ /* {{{ 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 @@ 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 @@ /* }}} */ /* {{{ 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 @@ } /* }}} */ -/* {{{ 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... */ -} -/* }}} */ http://cvs.php.net/diff.php/php-src/ext/com_dotnet/com_wrapper.c?r1=1.3&r2=1.4&ty=u Index: php-src/ext/com_dotnet/com_wrapper.c diff -u php-src/ext/com_dotnet/com_wrapper.c:1.3 php-src/ext/com_dotnet/com_wrapper.c:1.4 --- php-src/ext/com_dotnet/com_wrapper.c:1.3 Wed Mar 17 21:16:34 2004 +++ php-src/ext/com_dotnet/com_wrapper.c Mon May 3 11:51:41 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: com_wrapper.c,v 1.3 2004/03/18 02:16:34 iliaa Exp $ */ +/* $Id: com_wrapper.c,v 1.4 2004/05/03 15:51:41 wez Exp $ */ /* This module exports a PHP object as a COM object by wrapping it * using IDispatchEx */ @@ -314,14 +314,8 @@ /* 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 @@ FETCH_DISP("DeleteMemberByName"); + /* TODO: unset */ + return S_FALSE; } @@ -355,6 +351,8 @@ FETCH_DISP("DeleteMemberByDispID"); + /* TODO: unset */ + return S_FALSE; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php