Wez, > + case IS_UNICODE: > + V_VT(v) = VT_BSTR; > + V_BSTR(v) = SysAllocString(Z_USTRVAL_P(z)); > + break;
my understanding is that Win32 uses UCS2, so do we need to account for surrogates ? l0t3k ""Wez Furlong"" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > wez Sat Aug 13 15:03:59 2005 EDT > > Modified files: > /php-src/ext/com_dotnet com_handlers.c com_variant.c > Log: > unicode enable COM parameters (but not method/property names yet) > > > http://cvs.php.net/diff.php/php-src/ext/com_dotnet/com_handlers.c?r1=1.30&r2=1.31&ty=u > Index: php-src/ext/com_dotnet/com_handlers.c > diff -u php-src/ext/com_dotnet/com_handlers.c:1.30 > php-src/ext/com_dotnet/com_handlers.c:1.31 > --- php-src/ext/com_dotnet/com_handlers.c:1.30 Wed Aug 3 10:06:41 2005 > +++ php-src/ext/com_dotnet/com_handlers.c Sat Aug 13 15:03:58 2005 > @@ -16,7 +16,7 @@ > > +----------------------------------------------------------------------+ > */ > > -/* $Id: com_handlers.c,v 1.30 2005/08/03 14:06:41 sniper Exp $ */ > +/* $Id: com_handlers.c,v 1.31 2005/08/13 19:03:58 wez Exp $ */ > > #ifdef HAVE_CONFIG_H > #include "config.h" > @@ -522,6 +522,7 @@ > vt = VT_BOOL; > break; > case IS_STRING: > + case IS_UNICODE: > vt = VT_BSTR; > break; > default: > http://cvs.php.net/diff.php/php-src/ext/com_dotnet/com_variant.c?r1=1.12&r2=1.13&ty=u > Index: php-src/ext/com_dotnet/com_variant.c > diff -u php-src/ext/com_dotnet/com_variant.c:1.12 > php-src/ext/com_dotnet/com_variant.c:1.13 > --- php-src/ext/com_dotnet/com_variant.c:1.12 Fri Aug 12 22:23:27 2005 > +++ php-src/ext/com_dotnet/com_variant.c Sat Aug 13 15:03:58 2005 > @@ -16,7 +16,7 @@ > > +----------------------------------------------------------------------+ > */ > > -/* $Id: com_variant.c,v 1.12 2005/08/13 02:23:27 wez Exp $ */ > +/* $Id: com_variant.c,v 1.13 2005/08/13 19:03:58 wez Exp $ */ > > #ifdef HAVE_CONFIG_H > #include "config.h" > @@ -157,6 +157,11 @@ > efree(olestring); > break; > > + case IS_UNICODE: > + V_VT(v) = VT_BSTR; > + V_BSTR(v) = SysAllocString(Z_USTRVAL_P(z)); > + break; > + > case IS_RESOURCE: > case IS_CONSTANT: > case IS_CONSTANT_ARRAY: > @@ -211,12 +216,8 @@ > ZVAL_BOOL(z, V_BOOL(v) ? 1 : 0); > break; > case VT_BSTR: > - olestring = V_BSTR(v); > - if (olestring) { > - Z_TYPE_P(z) = IS_STRING; > - Z_STRVAL_P(z) = php_com_olestring_to_string(olestring, > - &Z_STRLEN_P(z), codepage TSRMLS_CC); > - olestring = NULL; > + if (V_BSTR(v)) { > + ZVAL_UNICODE(z, V_BSTR(v), 1); > } > break; > case VT_UNKNOWN: -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php