#include "php_com_dotnet_internal.h"
#include "Zend/zend_exceptions.h"
#include "Zend/zend_interfaces.h"
+#include "com_extension_arginfo.h"
ZEND_DECLARE_MODULE_GLOBALS(com_dotnet)
static PHP_GINIT_FUNCTION(com_dotnet);
*php_com_exception_class_entry,
*php_com_saproxy_class_entry;
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_set, 0, 0, 2)
- ZEND_ARG_INFO(0, variant)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_left_right, 0, 0, 2)
- ZEND_ARG_INFO(0, left)
- ZEND_ARG_INFO(0, right)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_abs, 0, 0, 1)
- ZEND_ARG_INFO(0, left)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_fix, 0, 0, 1)
- ZEND_ARG_INFO(0, left)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_int, 0, 0, 1)
- ZEND_ARG_INFO(0, left)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_neg, 0, 0, 1)
- ZEND_ARG_INFO(0, left)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_not, 0, 0, 1)
- ZEND_ARG_INFO(0, left)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_round, 0, 0, 2)
- ZEND_ARG_INFO(0, left)
- ZEND_ARG_INFO(0, decimals)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_cmp, 0, 0, 2)
- ZEND_ARG_INFO(0, left)
- ZEND_ARG_INFO(0, right)
- ZEND_ARG_INFO(0, lcid)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_date_to_timestamp, 0, 0, 1)
- ZEND_ARG_INFO(0, variant)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_date_from_timestamp, 0, 0, 1)
- ZEND_ARG_INFO(0, timestamp)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_get_type, 0, 0, 1)
- ZEND_ARG_INFO(0, variant)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_set_type, 0, 0, 2)
- ZEND_ARG_INFO(0, variant)
- ZEND_ARG_INFO(0, type)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_cast, 0, 0, 2)
- ZEND_ARG_INFO(0, variant)
- ZEND_ARG_INFO(0, type)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_com_get_active_object, 0, 0, 1)
- ZEND_ARG_INFO(0, progid)
- ZEND_ARG_INFO(0, code_page)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_com_create_guid, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_com_event_sink, 0, 0, 2)
- ZEND_ARG_INFO(0, comobject)
- ZEND_ARG_INFO(0, sinkobject)
- ZEND_ARG_INFO(0, sinkinterface)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_com_print_typeinfo, 0, 0, 1)
- ZEND_ARG_INFO(0, comobject)
- ZEND_ARG_INFO(0, dispinterface)
- ZEND_ARG_INFO(0, wantsink)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_com_message_pump, 0, 0, 0)
- ZEND_ARG_INFO(0, timeoutms)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_com_load_typelib, 0, 0, 1)
- ZEND_ARG_INFO(0, typelib_name)
- ZEND_ARG_INFO(0, case_insensitive)
-ZEND_END_ARG_INFO()
-/* }}} */
-
static const zend_function_entry com_dotnet_functions[] = {
PHP_FE(variant_set, arginfo_variant_set)
- PHP_FE(variant_add, arginfo_left_right)
- PHP_FE(variant_cat, arginfo_left_right)
- PHP_FE(variant_sub, arginfo_left_right)
- PHP_FE(variant_mul, arginfo_left_right)
- PHP_FE(variant_and, arginfo_left_right)
- PHP_FE(variant_div, arginfo_left_right)
- PHP_FE(variant_eqv, arginfo_left_right)
- PHP_FE(variant_idiv, arginfo_left_right)
- PHP_FE(variant_imp, arginfo_left_right)
- PHP_FE(variant_mod, arginfo_left_right)
- PHP_FE(variant_or, arginfo_left_right)
- PHP_FE(variant_pow, arginfo_left_right)
- PHP_FE(variant_xor, arginfo_left_right)
+ PHP_FE(variant_add, arginfo_variant_add)
+ PHP_FE(variant_cat, arginfo_variant_add)
+ PHP_FE(variant_sub, arginfo_variant_add)
+ PHP_FE(variant_mul, arginfo_variant_add)
+ PHP_FE(variant_and, arginfo_variant_add)
+ PHP_FE(variant_div, arginfo_variant_add)
+ PHP_FE(variant_eqv, arginfo_variant_add)
+ PHP_FE(variant_idiv, arginfo_variant_add)
+ PHP_FE(variant_imp, arginfo_variant_add)
+ PHP_FE(variant_mod, arginfo_variant_add)
+ PHP_FE(variant_or, arginfo_variant_add)
+ PHP_FE(variant_pow, arginfo_variant_add)
+ PHP_FE(variant_xor, arginfo_variant_add)
PHP_FE(variant_abs, arginfo_variant_abs)
PHP_FE(variant_fix, arginfo_variant_fix)
PHP_FE(variant_int, arginfo_variant_int)
--- /dev/null
+<?php
+
+function variant_set(variant $variant, $value): void {}
+
+function variant_add($left, $right): variant {}
+
+function variant_cat($left, $right): variant {}
+
+function variant_sub($left, $right): variant {}
+
+function variant_mul($left, $right): variant {}
+
+function variant_and($left, $right): variant {}
+
+function variant_div($left, $right): variant {}
+
+function variant_eqv($left, $right): variant {}
+
+function variant_idiv($left, $right): variant {}
+
+function variant_imp($left, $right): variant {}
+
+function variant_mod($left, $right): variant {}
+
+function variant_or($left, $right): variant {}
+
+function variant_pow($left, $right): variant {}
+
+function variant_xor($left, $right): variant {}
+
+function variant_abs($left): variant {}
+
+function variant_fix($left): variant {}
+
+function variant_int($left): variant {}
+
+function variant_neg($left): variant {}
+
+function variant_not($left): variant {}
+
+function variant_round($left, int $decimals): ?variant {}
+
+function variant_cmp($left, $right, int $lcid = UNKNOWN, int $flags = 0) {}
+
+function variant_date_to_timestamp(variant $variant): ?int {}
+
+/** @return variant|false */
+function variant_date_from_timestamp(int $timestamp) {}
+
+function variant_get_type(variant $variant): int {}
+
+function variant_set_type(variant $variant, int $type): void {}
+
+function variant_cast(variant $variant, int $type): variant {}
+
+function com_get_active_object(string $progid, int $code_page = UNKNOWN): variant {}
+
+/** @return string|false */
+function com_create_guid() {}
+
+function com_event_sink(variant $comobject, object $sinkobject, $sinkinterface = UNKNOWN): bool {}
+
+function com_print_typeinfo($comobject, ?string $dispinterface = null, bool $wantsink = false): bool {}
+
+function com_message_pump(int $timeoutms = 0): bool {}
+
+function com_load_typelib(string $typelib_name, bool $case_insensitive = true) {}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_variant_set, 0, 2, IS_VOID, 0)
+ ZEND_ARG_OBJ_INFO(0, variant, variant, 0)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_variant_add, 0, 2, variant, 0)
+ ZEND_ARG_INFO(0, left)
+ ZEND_ARG_INFO(0, right)
+ZEND_END_ARG_INFO()
+
+#define arginfo_variant_cat arginfo_variant_add
+
+#define arginfo_variant_sub arginfo_variant_add
+
+#define arginfo_variant_mul arginfo_variant_add
+
+#define arginfo_variant_and arginfo_variant_add
+
+#define arginfo_variant_div arginfo_variant_add
+
+#define arginfo_variant_eqv arginfo_variant_add
+
+#define arginfo_variant_idiv arginfo_variant_add
+
+#define arginfo_variant_imp arginfo_variant_add
+
+#define arginfo_variant_mod arginfo_variant_add
+
+#define arginfo_variant_or arginfo_variant_add
+
+#define arginfo_variant_pow arginfo_variant_add
+
+#define arginfo_variant_xor arginfo_variant_add
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_variant_abs, 0, 1, variant, 0)
+ ZEND_ARG_INFO(0, left)
+ZEND_END_ARG_INFO()
+
+#define arginfo_variant_fix arginfo_variant_abs
+
+#define arginfo_variant_int arginfo_variant_abs
+
+#define arginfo_variant_neg arginfo_variant_abs
+
+#define arginfo_variant_not arginfo_variant_abs
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_variant_round, 0, 2, variant, 1)
+ ZEND_ARG_INFO(0, left)
+ ZEND_ARG_TYPE_INFO(0, decimals, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_cmp, 0, 0, 2)
+ ZEND_ARG_INFO(0, left)
+ ZEND_ARG_INFO(0, right)
+ ZEND_ARG_TYPE_INFO(0, lcid, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_variant_date_to_timestamp, 0, 1, IS_LONG, 1)
+ ZEND_ARG_OBJ_INFO(0, variant, variant, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_variant_date_from_timestamp, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, timestamp, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_variant_get_type, 0, 1, IS_LONG, 0)
+ ZEND_ARG_OBJ_INFO(0, variant, variant, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_variant_set_type, 0, 2, IS_VOID, 0)
+ ZEND_ARG_OBJ_INFO(0, variant, variant, 0)
+ ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_variant_cast, 0, 2, variant, 0)
+ ZEND_ARG_OBJ_INFO(0, variant, variant, 0)
+ ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_com_get_active_object, 0, 1, variant, 0)
+ ZEND_ARG_TYPE_INFO(0, progid, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, code_page, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_com_create_guid, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_com_event_sink, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_OBJ_INFO(0, comobject, variant, 0)
+ ZEND_ARG_TYPE_INFO(0, sinkobject, IS_OBJECT, 0)
+ ZEND_ARG_INFO(0, sinkinterface)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_com_print_typeinfo, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, comobject)
+ ZEND_ARG_TYPE_INFO(0, dispinterface, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, wantsink, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_com_message_pump, 0, 0, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, timeoutms, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_com_load_typelib, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, typelib_name, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, case_insensitive, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()