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]

Reply via email to