1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Add com_dotnet function stubs

This commit is contained in:
Christoph M. Becker
2019-08-11 21:44:51 +02:00
parent cfbcd4caef
commit 177981d80d
3 changed files with 191 additions and 108 deletions

View File

@@ -29,6 +29,7 @@
#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);
@@ -38,116 +39,21 @@ zend_class_entry
*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)

View File

@@ -0,0 +1,67 @@
<?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) {}

View File

@@ -0,0 +1,110 @@
/* 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()