如何在COM方法中传递变量对象类型16396,该方法需要VT_VARIANT的输入值[12]

时间:2017-02-18 21:44:45

标签: php arrays com variant comobject

我的PHP代码中有一个COM对象' $ com_myObject'用方法' myObjectMethod'在我运行之后

com_print_type info($com_myObject);

在它上面,它表明它有方法' myObjectMethod'声明如下所示

myObjectMethod(/* VT_VARIANT [12] [in] */ $RawData) { /* Processes entered object data */ }

在我的代码中我有另一个函数返回一个变体对象' $ myInputObject'类型值16396.我计划使用' $ myInputObject'作为' myObjectMethod'的输入值方法。

print variant_get_type($myInputObject);  //returns 16396

我正在检索' $ myInputObject'如下所示,这个其他COM功能,即功能'

$myInputObject = $com_myObject->ofunction;

我假设来自' myObjectMethod'方法声明我应该传递一个VT_VARIANT对象,即一个变体类型12,但是我的另一个函数' ofunction'返回应该是' myObjectMethod'的输入值。是16396类型的变体对象。

我试图将类型为16396的变体对象转换为类型12的变体对象,如下所示

$com_myObject->myObjectMethod(variant_cast($myInputObject, VT_VARIANT));

但是我收到以下错误。

  

致命错误:未捕获的异常' com_exception'消息'变体类型转换失败:类型不匹配。'在C:\ xampp \ htdocs \ waterCompany \ reservoir.php:125堆栈跟踪#0 C:\ xampp \ htdocs \ waterCompany \ reservoir.php(125):variant_cast(对象(变体),12)#1 {main}抛出在第125行的C:\ xampp \ htdocs \ waterCompany \ reservoir.php中。

0 个答案:

没有答案