cvs: php4 /ext/com com.h php_COM.h

From: Date: Sun, 24 Jun 2001 21:09:16 +0000
Subject: cvs: php4 /ext/com com.h php_COM.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-6003@lists.php.net to get a copy of this message
phanto Sun Jun 24 23:09:16 2001 EDT Modified files: /php4/ext/com php_COM.h com.h Log: cleanup added some macros Index: php4/ext/com/php_COM.h diff -u php4/ext/com/php_COM.h:1.6 php4/ext/com/php_COM.h:1.7 --- php4/ext/com/php_COM.h:1.6 Wed May 2 23:51:18 2001 +++ php4/ext/com/php_COM.h Sun Jun 24 23:09:16 2001 @@ -3,14 +3,21 @@ #if PHP_WIN32 -BEGIN_EXTERN_C() - #include "com.h" +BEGIN_EXTERN_C() + extern PHP_MINIT_FUNCTION(COM); extern PHP_MSHUTDOWN_FUNCTION(COM); -extern int php_COM_get_le_idispatch(); +extern PHPAPI HRESULT php_COM_invoke(comval *obj, DISPID dispIdMember, WORD wFlags, DISPPARAMS FAR* pDispParams, VARIANT FAR* pVarResult); +extern PHPAPI HRESULT php_COM_get_ids_of_names(comval *obj, OLECHAR FAR* FAR* rgszNames, DISPID FAR* rgDispId); +extern PHPAPI HRESULT php_COM_release(comval *obj); +extern PHPAPI HRESULT php_COM_addref(comval *obj); +extern PHPAPI HRESULT php_COM_set(comval *obj, IDispatch FAR* pDisp, int cleanup); +extern PHPAPI HRESULT php_COM_clone(comval *obj, comval *clone, int cleanup); + +extern int php_COM_get_le_comval(); extern zend_module_entry COM_module_entry; extern zend_class_entry com_class_entry; @@ -19,6 +26,10 @@ 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); + +#ifdef DEBUG + extern int resourcecounter; +#endif END_EXTERN_C() Index: php4/ext/com/com.h diff -u php4/ext/com/com.h:1.5 php4/ext/com/com.h:1.6 --- php4/ext/com/com.h:1.5 Tue Jun 12 01:05:31 2001 +++ php4/ext/com/com.h Sun Jun 24 23:09:16 2001 @@ -6,6 +6,9 @@ #include "oleauto.h" typedef struct comval_ { +#ifdef _DEBUG + int resourceindex; +#endif BOOL typelib; BOOL enumeration; int refcount; @@ -16,27 +19,46 @@ } i; } comval; -PHPAPI HRESULT php_COM_invoke(comval *obj, DISPID dispIdMember, WORD wFlags, DISPPARAMS FAR* pDispParams, VARIANT FAR* pVarResult); -PHPAPI HRESULT php_COM_get_ids_of_names(comval *obj, OLECHAR FAR* FAR* rgszNames, DISPID FAR* rgDispId); -PHPAPI HRESULT php_COM_release(comval *obj); -PHPAPI HRESULT php_COM_addref(comval *obj); -PHPAPI HRESULT php_COM_set(comval *obj, IDispatch FAR* pDisp, int cleanup); -PHPAPI HRESULT php_COM_clone(comval *obj, comval *clone, int cleanup); +#define ZVAL_COM(z,o) { \ + pval *handle; \ + \ + Z_TYPE_P(z) = IS_OBJECT; \ + (z)->value.obj.ce = &com_class_entry; \ + \ + ALLOC_HASHTABLE((z)->value.obj.properties); \ + zend_hash_init((z)->value.obj.properties, 0, NULL, ZVAL_PTR_DTOR, 0); \ + \ + ALLOC_ZVAL(handle); \ + INIT_PZVAL(handle); \ + ZVAL_LONG(handle, zend_list_insert((o), IS_COM)); \ + \ + pval_copy_constructor(handle); \ + zend_hash_index_update((z)->value.obj.properties, 0, \ + &handle, sizeof(pval *), NULL); \ + } + +#define RETVAL_COM(o) ZVAL_COM(&return_value, o) +#define RETURN_COM(o) RETVAL_COM(o) \ + return; + +#define ALLOC_COM(z) (z) = emalloc(sizeof(comval)) +#define IS_COM php_COM_get_le_comval() #define C_HASTLIB(x) ((x)->typelib) #define C_HASENUM(x) ((x)->enumeration) -#define C_ISREFD(x) ((x)->refcount) +#define C_REFCOUNT(x) ((x)->refcount) +#define C_ISREFD(x) C_REFCOUNT(x) + +#define C_ADDREF(x) (++((x)->refcount)) +#define C_RELEASE(x) (--((x)->refcount)) -#define C_DISPATCH(x) ((x)->i.dispatch) -#define C_TYPEINFO(x) ((x)->i.typeinfo) +#define C_DISPATCH(x) ((x)->i.dispatch) +#define C_TYPEINFO(x) ((x)->i.typeinfo) #define C_ENUMVARIANT(x) ((x)->i.enumvariant) #define C_DISPATCH_VT(x) (C_DISPATCH(x)->lpVtbl) #define C_TYPEINFO_VT(x) (C_TYPEINFO(x)->lpVtbl) #define C_ENUMVARIANT_VT(x) (C_ENUMVARIANT(x)->lpVtbl) - -#define C_ADDREF(x) (++((x)->refcount)) -#define C_RELEASE(x) (--((x)->refcount)) #endif /* PHP_WIN32 */

« previous php.cvs (#6003) next »