diff --git a/ext/com_dotnet/com_extension.c b/ext/com_dotnet/com_extension.c index 88feefa617b..5782102201f 100644 --- a/ext/com_dotnet/com_extension.c +++ b/ext/com_dotnet/com_extension.c @@ -27,6 +27,19 @@ #include "php_com_dotnet_internal.h" #include "Zend/zend_exceptions.h" #include "Zend/zend_interfaces.h" + +#if SIZEOF_ZEND_LONG == 8 +#define PHP_DISP_E_DIVBYZERO ((zend_long) (ULONG) DISP_E_DIVBYZERO) +#define PHP_DISP_E_OVERFLOW ((zend_long) (ULONG) DISP_E_OVERFLOW) +#define PHP_DISP_E_BADINDEX ((zend_long) (ULONG) DISP_E_BADINDEX) +#define PHP_MK_E_UNAVAILABLE ((zend_long) (ULONG) MK_E_UNAVAILABLE) +#else +#define PHP_DISP_E_DIVBYZERO DISP_E_DIVBYZERO +#define PHP_DISP_E_OVERFLOW DISP_E_OVERFLOW +#define PHP_DISP_E_BADINDEX DISP_E_BADINDEX +#define PHP_MK_E_UNAVAILABLE MK_E_UNAVAILABLE +#endif + #include "com_extension_arginfo.h" ZEND_DECLARE_MODULE_GLOBALS(com_dotnet) @@ -187,83 +200,7 @@ PHP_MINIT_FUNCTION(com_dotnet) REGISTER_INI_ENTRIES(); -#define COM_CONST(x) REGISTER_LONG_CONSTANT(#x, x, CONST_CS|CONST_PERSISTENT) - -#if SIZEOF_ZEND_LONG == 8 -# define COM_ERR_CONST(x) REGISTER_LONG_CONSTANT(#x, (zend_long) (ULONG) (x), CONST_CS|CONST_PERSISTENT) -#else -# define COM_ERR_CONST COM_CONST -#endif - - COM_CONST(CLSCTX_INPROC_SERVER); - COM_CONST(CLSCTX_INPROC_HANDLER); - COM_CONST(CLSCTX_LOCAL_SERVER); - COM_CONST(CLSCTX_REMOTE_SERVER); - COM_CONST(CLSCTX_SERVER); - COM_CONST(CLSCTX_ALL); - -#if 0 - COM_CONST(DISPATCH_METHOD); - COM_CONST(DISPATCH_PROPERTYGET); - COM_CONST(DISPATCH_PROPERTYPUT); -#endif - - COM_CONST(VT_NULL); - COM_CONST(VT_EMPTY); - COM_CONST(VT_UI1); - COM_CONST(VT_I1); - COM_CONST(VT_UI2); - COM_CONST(VT_I2); - COM_CONST(VT_UI4); - COM_CONST(VT_I4); - COM_CONST(VT_R4); - COM_CONST(VT_R8); - COM_CONST(VT_BOOL); - COM_CONST(VT_ERROR); - COM_CONST(VT_CY); - COM_CONST(VT_DATE); - COM_CONST(VT_BSTR); - COM_CONST(VT_DECIMAL); - COM_CONST(VT_UNKNOWN); - COM_CONST(VT_DISPATCH); - COM_CONST(VT_VARIANT); - COM_CONST(VT_INT); - COM_CONST(VT_UINT); - COM_CONST(VT_ARRAY); - COM_CONST(VT_BYREF); - - COM_CONST(CP_ACP); - COM_CONST(CP_MACCP); - COM_CONST(CP_OEMCP); - COM_CONST(CP_UTF7); - COM_CONST(CP_UTF8); - COM_CONST(CP_SYMBOL); - COM_CONST(CP_THREAD_ACP); - - COM_CONST(VARCMP_LT); - COM_CONST(VARCMP_EQ); - COM_CONST(VARCMP_GT); - COM_CONST(VARCMP_NULL); - COM_CONST(LOCALE_SYSTEM_DEFAULT); - COM_CONST(LOCALE_NEUTRAL); - - COM_CONST(NORM_IGNORECASE); - COM_CONST(NORM_IGNORENONSPACE); - COM_CONST(NORM_IGNORESYMBOLS); - COM_CONST(NORM_IGNOREWIDTH); - COM_CONST(NORM_IGNOREKANATYPE); -#ifdef NORM_IGNOREKASHIDA - COM_CONST(NORM_IGNOREKASHIDA); -#endif - COM_ERR_CONST(DISP_E_DIVBYZERO); - COM_ERR_CONST(DISP_E_OVERFLOW); - COM_ERR_CONST(DISP_E_BADINDEX); - COM_ERR_CONST(MK_E_UNAVAILABLE); - -#if SIZEOF_ZEND_LONG == 8 - COM_CONST(VT_UI8); - COM_CONST(VT_I8); -#endif + register_com_extension_symbols(module_number); PHP_MINIT(com_typeinfo)(INIT_FUNC_ARGS_PASSTHRU); diff --git a/ext/com_dotnet/com_extension.stub.php b/ext/com_dotnet/com_extension.stub.php index e0353f3135c..54f31992ef7 100644 --- a/ext/com_dotnet/com_extension.stub.php +++ b/ext/com_dotnet/com_extension.stub.php @@ -2,6 +2,287 @@ /** @generate-class-entries */ +/** + * @var int + * @cname CLSCTX_INPROC_SERVER + */ +const CLSCTX_INPROC_SERVER = UNKNOWN; +/** + * @var int + * @cname CLSCTX_INPROC_HANDLER + */ +const CLSCTX_INPROC_HANDLER = UNKNOWN; +/** + * @var int + * @cname CLSCTX_LOCAL_SERVER + */ +const CLSCTX_LOCAL_SERVER = UNKNOWN; +/** + * @var int + * @cname CLSCTX_REMOTE_SERVER + */ +const CLSCTX_REMOTE_SERVER = UNKNOWN; +/** + * @var int + * @cname CLSCTX_SERVER + */ +const CLSCTX_SERVER = UNKNOWN; +/** + * @var int + * @cname CLSCTX_ALL + */ +const CLSCTX_ALL = UNKNOWN; + +/** + * @var int + * @cname VT_NULL + */ +const VT_NULL = UNKNOWN; +/** + * @var int + * @cname VT_EMPTY + */ +const VT_EMPTY = UNKNOWN; +/** + * @var int + * @cname VT_UI1 + */ +const VT_UI1 = UNKNOWN; +/** + * @var int + * @cname VT_I1 + */ +const VT_I1 = UNKNOWN; +/** + * @var int + * @cname VT_UI2 + */ +const VT_UI2 = UNKNOWN; +/** + * @var int + * @cname VT_I2 + */ +const VT_I2 = UNKNOWN; +/** + * @var int + * @cname VT_UI4 + */ +const VT_UI4 = UNKNOWN; +/** + * @var int + * @cname VT_I4 + */ +const VT_I4 = UNKNOWN; +/** + * @var int + * @cname VT_R4 + */ +const VT_R4 = UNKNOWN; +/** + * @var int + * @cname VT_R8 + */ +const VT_R8 = UNKNOWN; +/** + * @var int + * @cname VT_BOOL + */ +const VT_BOOL = UNKNOWN; +/** + * @var int + * @cname VT_ERROR + */ +const VT_ERROR = UNKNOWN; +/** + * @var int + * @cname VT_CY + */ +const VT_CY = UNKNOWN; +/** + * @var int + * @cname VT_DATE + */ +const VT_DATE = UNKNOWN; +/** + * @var int + * @cname VT_BSTR + */ +const VT_BSTR = UNKNOWN; +/** + * @var int + * @cname VT_DECIMAL + */ +const VT_DECIMAL = UNKNOWN; +/** + * @var int + * @cname VT_UNKNOWN + */ +const VT_UNKNOWN = UNKNOWN; +/** + * @var int + * @cname VT_DISPATCH + */ +const VT_DISPATCH = UNKNOWN; +/** + * @var int + * @cname VT_VARIANT + */ +const VT_VARIANT = UNKNOWN; +/** + * @var int + * @cname VT_INT + */ +const VT_INT = UNKNOWN; +/** + * @var int + * @cname VT_UINT + */ +const VT_UINT = UNKNOWN; +/** + * @var int + * @cname VT_ARRAY + */ +const VT_ARRAY = UNKNOWN; +/** + * @var int + * @cname VT_BYREF + */ +const VT_BYREF = UNKNOWN; + +/** + * @var int + * @cname CP_ACP + */ +const CP_ACP = UNKNOWN; +/** + * @var int + * @cname CP_MACCP + */ +const CP_MACCP = UNKNOWN; +/** + * @var int + * @cname CP_OEMCP + */ +const CP_OEMCP = UNKNOWN; +/** + * @var int + * @cname CP_UTF7 + */ +const CP_UTF7 = UNKNOWN; +/** + * @var int + * @cname CP_UTF8 + */ +const CP_UTF8 = UNKNOWN; +/** + * @var int + * @cname CP_SYMBOL + */ +const CP_SYMBOL = UNKNOWN; +/** + * @var int + * @cname CP_THREAD_ACP + */ +const CP_THREAD_ACP = UNKNOWN; + +/** + * @var int + * @cname VARCMP_LT + */ +const VARCMP_LT = UNKNOWN; +/** + * @var int + * @cname VARCMP_EQ + */ +const VARCMP_EQ = UNKNOWN; +/** + * @var int + * @cname VARCMP_GT + */ +const VARCMP_GT = UNKNOWN; +/** + * @var int + * @cname VARCMP_NULL + */ +const VARCMP_NULL = UNKNOWN; +/** + * @var int + * @cname LOCALE_SYSTEM_DEFAULT + */ +const LOCALE_SYSTEM_DEFAULT = UNKNOWN; +/** + * @var int + * @cname LOCALE_NEUTRAL + */ +const LOCALE_NEUTRAL = UNKNOWN; + +/** + * @var int + * @cname NORM_IGNORECASE + */ +const NORM_IGNORECASE = UNKNOWN; +/** + * @var int + * @cname NORM_IGNORENONSPACE + */ +const NORM_IGNORENONSPACE = UNKNOWN; +/** + * @var int + * @cname NORM_IGNORESYMBOLS + */ +const NORM_IGNORESYMBOLS = UNKNOWN; +/** + * @var int + * @cname NORM_IGNOREWIDTH + */ +const NORM_IGNOREWIDTH = UNKNOWN; +/** + * @var int + * @cname NORM_IGNOREKANATYPE + */ +const NORM_IGNOREKANATYPE = UNKNOWN; +#ifdef NORM_IGNOREKASHIDA +/** + * @var int + * @cname NORM_IGNOREKASHIDA + */ +const NORM_IGNOREKASHIDA = UNKNOWN; +#endif + +/** + * @var int + * @cname PHP_DISP_E_DIVBYZERO + */ +const DISP_E_DIVBYZERO = UNKNOWN; +/** + * @var int + * @cname PHP_DISP_E_OVERFLOW + */ +const DISP_E_OVERFLOW = UNKNOWN; +/** + * @var int + * @cname PHP_DISP_E_BADINDEX + */ +const DISP_E_BADINDEX = UNKNOWN; +/** + * @var int + * @cname PHP_MK_E_UNAVAILABLE + */ +const MK_E_UNAVAILABLE = UNKNOWN; + +#if SIZEOF_ZEND_LONG == 8 +/** + * @var int + * @cname VT_UI8 + */ +const VT_UI8 = UNKNOWN; +/** + * @var int + * @cname VT_I8 + */ +const VT_I8 = UNKNOWN; +#endif + function variant_set(variant $variant, mixed $value): void {} function variant_add(mixed $left, mixed $right): variant {} diff --git a/ext/com_dotnet/com_extension_arginfo.h b/ext/com_dotnet/com_extension_arginfo.h index e4b9c51b2bb..41400b33052 100644 --- a/ext/com_dotnet/com_extension_arginfo.h +++ b/ext/com_dotnet/com_extension_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 5aae202b026bd12924ca628718f087f581ab4c3a */ + * Stub hash: 76bd9190ad3f5e8fc3f6d6e0b5561f935c73efd3 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_variant_set, 0, 2, IS_VOID, 0) ZEND_ARG_OBJ_INFO(0, variant, variant, 0) @@ -237,6 +237,70 @@ static const zend_function_entry class_com_exception_methods[] = { ZEND_FE_END }; +static void register_com_extension_symbols(int module_number) +{ + REGISTER_LONG_CONSTANT("CLSCTX_INPROC_SERVER", CLSCTX_INPROC_SERVER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CLSCTX_INPROC_HANDLER", CLSCTX_INPROC_HANDLER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CLSCTX_LOCAL_SERVER", CLSCTX_LOCAL_SERVER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CLSCTX_REMOTE_SERVER", CLSCTX_REMOTE_SERVER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CLSCTX_SERVER", CLSCTX_SERVER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CLSCTX_ALL", CLSCTX_ALL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_NULL", VT_NULL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_EMPTY", VT_EMPTY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_UI1", VT_UI1, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_I1", VT_I1, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_UI2", VT_UI2, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_I2", VT_I2, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_UI4", VT_UI4, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_I4", VT_I4, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_R4", VT_R4, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_R8", VT_R8, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_BOOL", VT_BOOL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_ERROR", VT_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_CY", VT_CY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_DATE", VT_DATE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_BSTR", VT_BSTR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_DECIMAL", VT_DECIMAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_UNKNOWN", VT_UNKNOWN, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_DISPATCH", VT_DISPATCH, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_VARIANT", VT_VARIANT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_INT", VT_INT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_UINT", VT_UINT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_ARRAY", VT_ARRAY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VT_BYREF", VT_BYREF, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CP_ACP", CP_ACP, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CP_MACCP", CP_MACCP, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CP_OEMCP", CP_OEMCP, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CP_UTF7", CP_UTF7, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CP_UTF8", CP_UTF8, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CP_SYMBOL", CP_SYMBOL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CP_THREAD_ACP", CP_THREAD_ACP, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VARCMP_LT", VARCMP_LT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VARCMP_EQ", VARCMP_EQ, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VARCMP_GT", VARCMP_GT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("VARCMP_NULL", VARCMP_NULL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LOCALE_SYSTEM_DEFAULT", LOCALE_SYSTEM_DEFAULT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LOCALE_NEUTRAL", LOCALE_NEUTRAL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("NORM_IGNORECASE", NORM_IGNORECASE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("NORM_IGNORENONSPACE", NORM_IGNORENONSPACE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("NORM_IGNORESYMBOLS", NORM_IGNORESYMBOLS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("NORM_IGNOREWIDTH", NORM_IGNOREWIDTH, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("NORM_IGNOREKANATYPE", NORM_IGNOREKANATYPE, CONST_CS | CONST_PERSISTENT); +#if defined(NORM_IGNOREKASHIDA) + REGISTER_LONG_CONSTANT("NORM_IGNOREKASHIDA", NORM_IGNOREKASHIDA, CONST_CS | CONST_PERSISTENT); +#endif + REGISTER_LONG_CONSTANT("DISP_E_DIVBYZERO", PHP_DISP_E_DIVBYZERO, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DISP_E_OVERFLOW", PHP_DISP_E_OVERFLOW, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DISP_E_BADINDEX", PHP_DISP_E_BADINDEX, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MK_E_UNAVAILABLE", PHP_MK_E_UNAVAILABLE, CONST_CS | CONST_PERSISTENT); +#if SIZEOF_ZEND_LONG == 8 + REGISTER_LONG_CONSTANT("VT_UI8", VT_UI8, CONST_CS | CONST_PERSISTENT); +#endif +#if SIZEOF_ZEND_LONG == 8 + REGISTER_LONG_CONSTANT("VT_I8", VT_I8, CONST_CS | CONST_PERSISTENT); +#endif +} + static zend_class_entry *register_class_variant(void) { zend_class_entry ce, *class_entry;