函数名:com_event_sink()
适用版本:PHP 4 >= 4.2.0, PHP 5, PHP 7
用法:com_event_sink() 函数是用于为一个已经存在的 COM/OLE 对象动态地分配一个事件处理接口。该函数将一个事件源与一个事件接收者关联在一起。
语法:bool com_event_sink ( variant $comobject , mixed $sinkobject [, mixed $sinkinterface = "" ] )
参数:
- $comobject:必需,一个有效的 COM/OLE 对象。
- $sinkobject:必需,事件处理接收者对象。
- $sinkinterface:可选,接口名称,可以是字符串表示的 IID,也可以是 PHP 类型名的字符串。
返回值:成功时返回 TRUE,失败时返回 FALSE。
示例:
// 创建 Word.Application 对象
$word = new COM("Word.Application");
// 定义事件处理接收者对象
class WordEventHandler
{
public function OnQuit()
{
echo "Word application has been closed.";
}
}
// 关联事件处理接收者对象
$eventHandler = new WordEventHandler();
com_event_sink($word, $eventHandler, "DocumentEvents");
// 关闭 Word 应用程序
$word->Quit();
在上述示例中,我们首先创建了一个 Word.Application 对象。然后,我们定义了一个名为 WordEventHandler 的类,该类包含一个名为 OnQuit 的方法,该方法将在 Word 应用程序关闭时被调用。接下来,我们使用 com_event_sink() 函数将该事件处理接收者对象关联到 Word.Application 对象上,并指定了接口名称为 "DocumentEvents"。
最后,我们调用 $word->Quit()
方法来关闭 Word 应用程序,触发事件处理接收者对象的 OnQuit() 方法,并输出提示信息 "Word application has been closed."。