You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.3 KiB

  1. #ifndef PHP_COM_H
  2. #define PHP_COM_H
  3. #if PHP_WIN32
  4. #include "com.h"
  5. BEGIN_EXTERN_C()
  6. PHP_MINIT_FUNCTION(COM);
  7. PHP_MSHUTDOWN_FUNCTION(COM);
  8. PHP_FUNCTION(com_load);
  9. PHP_FUNCTION(com_invoke);
  10. PHP_FUNCTION(com_invoke_ex);
  11. PHP_FUNCTION(com_addref);
  12. PHP_FUNCTION(com_release);
  13. PHP_FUNCTION(com_propget);
  14. PHP_FUNCTION(com_propput);
  15. PHP_FUNCTION(com_load_typelib);
  16. PHP_FUNCTION(com_isenum);
  17. PHP_FUNCTION(com_event_sink);
  18. PHP_FUNCTION(com_message_pump);
  19. PHP_FUNCTION(com_print_typeinfo);
  20. PHPAPI HRESULT php_COM_invoke(comval *obj, DISPID dispIdMember, WORD wFlags, DISPPARAMS FAR* pDispParams, VARIANT FAR* pVarResult, char **ErrString TSRMLS_DC);
  21. PHPAPI HRESULT php_COM_get_ids_of_names(comval *obj, OLECHAR FAR* FAR* rgszNames, DISPID FAR* rgDispId TSRMLS_DC);
  22. PHPAPI HRESULT php_COM_release(comval *obj TSRMLS_DC);
  23. PHPAPI HRESULT php_COM_addref(comval *obj TSRMLS_DC);
  24. PHPAPI HRESULT php_COM_destruct(comval *obj TSRMLS_DC);
  25. PHPAPI HRESULT php_COM_set(comval *obj, IDispatch FAR* FAR* pDisp, int cleanup TSRMLS_DC);
  26. PHPAPI HRESULT php_COM_clone(comval *obj, comval *clone, int cleanup TSRMLS_DC);
  27. PHPAPI char *php_COM_error_message(HRESULT hr TSRMLS_DC);
  28. PHPAPI int php_COM_get_le_comval();
  29. PHPAPI int php_COM_set_property_handler(zend_property_reference *property_reference, pval *value);
  30. PHPAPI pval php_COM_get_property_handler(zend_property_reference *property_reference);
  31. PHPAPI void php_COM_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference *property_reference);
  32. PHPAPI zval *php_COM_object_from_dispatch(IDispatch *disp, zval *val TSRMLS_DC);
  33. PHPAPI int php_COM_load_typelib(ITypeLib *TypeLib, int mode TSRMLS_DC);
  34. /* dispatch.c */
  35. PHPAPI IDispatch *php_COM_export_object(zval *val TSRMLS_DC);
  36. PHPAPI IDispatch *php_COM_export_as_sink(zval *val, GUID *sinkid, HashTable *id_to_name TSRMLS_DC);
  37. int php_COM_dispatch_init(int module_number TSRMLS_DC);
  38. zend_module_entry COM_module_entry;
  39. zend_class_entry COM_class_entry;
  40. #ifdef DEBUG
  41. extern int resourcecounter;
  42. #endif
  43. END_EXTERN_C()
  44. #define phpext_com_ptr &COM_module_entry
  45. ZEND_BEGIN_MODULE_GLOBALS(com)
  46. int nothing;
  47. ZEND_END_MODULE_GLOBALS(com)
  48. PHPAPI ZEND_EXTERN_MODULE_GLOBALS(com);
  49. #ifdef ZTS
  50. #define COMG(v) TSRMG(com_globals_id, zend_com_globals *, v)
  51. #else
  52. #define COMG(v) (com_globals.v)
  53. #endif
  54. #else
  55. #define phpext_com_ptr NULL
  56. #endif /* PHP_WIN32 */
  57. #endif /* PHP_COM_H */