函式名: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."。