phanto Mon Jan 29 13:54:10 2001 EDT Modified files: /php4/ext/com typedef_VARIANT.c php_typedef_VARIANT.h php_COM.h conversion.h conversion.c COM.cpp Log: use *_EXTERN_C() and PHP_WIN32
Index: php4/ext/com/typedef_VARIANT.c diff -u php4/ext/com/typedef_VARIANT.c:1.1 php4/ext/com/typedef_VARIANT.c:1.2 --- php4/ext/com/typedef_VARIANT.c:1.1 Sat Jan 27 19:24:50 2001 +++ php4/ext/com/typedef_VARIANT.c Mon Jan 29 13:54:09 2001 @@ -410,4 +410,4 @@ zend_register_internal_class(&VARIANT_class_entry); } -#endif +#endif /* PHP_WIN32 */ Index: php4/ext/com/php_typedef_VARIANT.h diff -u php4/ext/com/php_typedef_VARIANT.h:1.1 php4/ext/com/php_typedef_VARIANT.h:1.2 --- php4/ext/com/php_typedef_VARIANT.h:1.1 Sat Jan 27 19:24:50 2001 +++ php4/ext/com/php_typedef_VARIANT.h Mon Jan 29 13:54:09 2001 @@ -1,19 +1,20 @@ #ifndef PHP_TYPEDEF_VARIANT_H #define PHP_TYPEDEF_VARIANT_H -#if WIN32|WINNT +#if PHP_WIN32 extern PHP_MINIT_FUNCTION(VARIANT); extern PHP_MSHUTDOWN_FUNCTION(VARIANT); extern zend_module_entry VARIANT_module_entry; + #define VARIANT_module_ptr &VARIANT_module_entry #else #define VARIANT_module_ptr NULL -#endif /* Win32|WINNT */ +#endif /* PHP_WIN32 */ #define phpext_VARIANT_ptr VARIANT_module_ptr Index: php4/ext/com/php_COM.h diff -u php4/ext/com/php_COM.h:1.3 php4/ext/com/php_COM.h:1.4 --- php4/ext/com/php_COM.h:1.3 Sat Jan 27 19:41:43 2001 +++ php4/ext/com/php_COM.h Mon Jan 29 13:54:09 2001 @@ -1,23 +1,27 @@ #ifndef PHP_COM_H #define PHP_COM_H -#if WIN32|WINNT +#if PHP_WIN32 -#ifdef __cplusplus -extern "C" { -#endif +BEGIN_EXTERN_C() extern PHP_MINIT_FUNCTION(COM); extern PHP_MSHUTDOWN_FUNCTION(COM); -PHP_FUNCTION(COM_load); -PHP_FUNCTION(COM_invoke); -PHP_FUNCTION(com_propget); -PHP_FUNCTION(com_propput); +extern int php_COM_get_le_idispatch(); + extern zend_module_entry COM_module_entry; +extern zend_class_entry com_class_entry; + +END_EXTERN_C() #ifdef __cplusplus -} + +extern pval php_COM_get_property_handler(zend_property_reference *property_reference); +extern int php_COM_set_property_handler(zend_property_reference *property_reference, +pval *value); +extern char *php_COM_error_message(HRESULT hr); +extern void php_COM_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, +zend_property_reference *property_reference); + #endif #define COM_module_ptr &COM_module_entry @@ -25,9 +29,7 @@ #else #define COM_module_ptr NULL - -#endif /* Win32|WINNT */ -#define phpext_COM_ptr COM_module_ptr +#endif /* PHP_WIN32 */ #endif /* PHP_COM_H */ Index: php4/ext/com/conversion.h diff -u php4/ext/com/conversion.h:1.1 php4/ext/com/conversion.h:1.2 --- php4/ext/com/conversion.h:1.1 Sat Jan 27 19:24:50 2001 +++ php4/ext/com/conversion.h Mon Jan 29 13:54:09 2001 @@ -1,18 +1,14 @@ #ifndef CONVERSION_H #define CONVERSION_H -#ifdef __cplusplus -extern "C" { -#endif +BEGIN_EXTERN_C() -void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg); -void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_type); -void php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent); -OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen); -char *php_OLECHAR_to_char(OLECHAR *unicode_str, uint *out_length, int persistent); +extern void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg); +extern void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_type); +extern void php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent); +extern OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen); +extern char *php_OLECHAR_to_char(OLECHAR *unicode_str, uint *out_length, int +persistent); -#ifdef __cplusplus -} -#endif +END_EXTERN_C() #endif Index: php4/ext/com/conversion.c diff -u php4/ext/com/conversion.c:1.1 php4/ext/com/conversion.c:1.2 --- php4/ext/com/conversion.c:1.1 Sat Jan 27 19:24:50 2001 +++ php4/ext/com/conversion.c Mon Jan 29 13:54:09 2001 @@ -1,4 +1,7 @@ +#ifdef PHP_WIN32 + #include "php.h" +#include "php_COM.h" #ifdef CP_THREAD_ACP #define PHP_UNICODE_CODEPAGE CP_THREAD_ACP @@ -6,16 +9,17 @@ #define PHP_UNICODE_CODEPAGE CP_ACP #endif +// prototypes -__declspec(dllexport) void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg); -__declspec(dllexport) void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_type); -__declspec(dllexport) void php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent); -__declspec(dllexport) OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen); -__declspec(dllexport) char *php_OLECHAR_to_char(OLECHAR *unicode_str, uint *out_length, int persistent); +PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg); +PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_type); +PHPAPI void php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent); +PHPAPI OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen); +PHPAPI char *php_OLECHAR_to_char(OLECHAR *unicode_str, uint *out_length, int +persistent); +// implementations -__declspec(dllexport) -void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg) +PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg) { OLECHAR *unicode_str; @@ -68,7 +72,7 @@ } } -__declspec(dllexport) void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_type) +PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_type) { if(pval_type->type != IS_STRING) { @@ -292,8 +296,7 @@ } } -__declspec(dllexport) -void php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent) +PHPAPI void php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent) { switch (var_arg->vt & ~VT_BYREF) { @@ -409,7 +412,7 @@ pval *handle; pval_arg->type=IS_OBJECT; -// pval_arg->value.obj.ce=&VARIANT_class_entry; + pval_arg->value.obj.ce = &com_class_entry; pval_arg->value.obj.properties = (HashTable *) emalloc(sizeof(HashTable)); pval_arg->is_ref=1; pval_arg->refcount=1; @@ -417,7 +420,7 @@ ALLOC_ZVAL(handle); handle->type = IS_LONG; -// handle->value.lval = zend_list_insert(var_arg->pdispVal, le_variant); + handle->value.lval = +zend_list_insert(var_arg->pdispVal, php_COM_get_le_idispatch()); pval_copy_constructor(handle); INIT_PZVAL(handle); zend_hash_index_update(pval_arg->value.obj.properties, 0, &handle, sizeof(pval *), NULL); @@ -433,8 +436,7 @@ } } -__declspec(dllexport) -OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen) +PHPAPI OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen) { OLECHAR *unicode_str; @@ -466,8 +468,7 @@ return unicode_str; } -__declspec(dllexport) -char *php_OLECHAR_to_char(OLECHAR *unicode_str, uint *out_length, int persistent) +PHPAPI char *php_OLECHAR_to_char(OLECHAR *unicode_str, uint *out_length, int +persistent) { char *C_str; uint length = 0; @@ -495,3 +496,5 @@ return C_str; } + +#endif /* PHP_WIN32 */ \ No newline at end of file Index: php4/ext/com/COM.cpp diff -u php4/ext/com/COM.cpp:1.1 php4/ext/com/COM.cpp:1.2 --- php4/ext/com/COM.cpp:1.1 Sat Jan 27 19:24:50 2001 +++ php4/ext/com/COM.cpp Mon Jan 29 13:54:09 2001 @@ -59,7 +59,7 @@ #include <iostream.h> #include <math.h> -extern "C" { +extern "C" { /* this should be included in the includes itself !! */ #include "php.h" #include "php_ini.h" @@ -67,13 +67,21 @@ } #include "conversion.h" -#include "php_COM.h" #include "unknwn.h" -static int le_idispatch; +BEGIN_EXTERN_C() + +zend_class_entry com_class_entry; -static zend_class_entry com_class_entry; +END_EXTERN_C() +PHP_FUNCTION(COM_load); +PHP_FUNCTION(COM_invoke); +PHP_FUNCTION(com_propget); +PHP_FUNCTION(com_propput); + +static int le_idispatch; + function_entry COM_functions[] = { PHP_FE(COM_load, NULL) PHP_FE(COM_invoke, NULL) @@ -88,10 +96,6 @@ {NULL, NULL, NULL} }; -__declspec(dllexport) -int php_COM_get_le_idispatch() { - return le_idispatch; -} static PHP_MINFO_FUNCTION(COM) { @@ -100,8 +104,7 @@ static int php_COM_load_typelib(char *typelib_name, int mode); -__declspec(dllexport) -char *php_COM_error_message(HRESULT hr) +PHPAPI char *php_COM_error_message(HRESULT hr) { char *pMsgBuf; @@ -134,7 +137,6 @@ i_dispatch->Release(); } - static PHP_INI_MH(OnTypelibFileChange) { FILE *typelib_file; @@ -630,10 +632,8 @@ } return var_result; } - -__declspec(dllexport) -pval php_COM_get_property_handler(zend_property_reference *property_reference) +PHPAPI pval php_COM_get_property_handler(zend_property_reference *property_reference) { pval result; VARIANTARG var_result = _php_COM_get_property_handler(property_reference); @@ -643,8 +643,7 @@ } -__declspec(dllexport) -int php_COM_set_property_handler(zend_property_reference *property_reference, pval *value) +PHPAPI int php_COM_set_property_handler(zend_property_reference *property_reference, +pval *value) { pval result; zend_overloaded_element *overloaded_property; @@ -707,8 +706,7 @@ -__declspec(dllexport) -void php_COM_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference *property_reference) +PHPAPI void php_COM_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, +zend_property_reference *property_reference) { zend_overloaded_element *overloaded_property; pval *object = property_reference->object; @@ -868,8 +866,17 @@ return SUCCESS; } +BEGIN_EXTERN_C() +// exports for external object creation + zend_module_entry COM_module_entry = { "com", COM_functions, PHP_MINIT(COM), PHP_MSHUTDOWN(COM), NULL, NULL, PHP_MINFO(COM), STANDARD_MODULE_PROPERTIES }; + +PHPAPI int php_COM_get_le_idispatch() { + return le_idispatch; +} + +END_EXTERN_C() #endif
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]