IRunnableObject::Run 方法 (objidl.h)
強制執行物件。
語法
HRESULT Run(
[in] LPBINDCTX pbc
);
參數
[in] pbc
執行作業之系結內容的指標。 請參閱 IBindCtx。 此參數可以是 Null。
傳回值
這個方法可以傳回標準傳回值E_INVALIDARG、E_UNEXPECTED和S_OK。
備註
容器會呼叫 IRunnableObject::Run ,以強制其對象進入執行中狀態。 如果物件尚未執行,則呼叫 Run 可能是成本高昂的作業,其順序為秒數。 如果對象已經在執行中,這個方法就不會影響物件。
來電者的附註
在上次啟用鏈接之後已轉換成新類別的鏈接物件上呼叫時, IRunnableObject::Run 可能會傳回OLE_E_CLASSDIFF。 在此情況下,客戶端應該呼叫 IOleLink::BindToSource。OleRun 是協助程式函式,可方便重新封裝 IRunnableObject::Run 所提供的功能。 隨著 OLE 2.01 的發行,OleRun 的實作已變更,因此它會呼叫 QueryInterface、要求 IRunnableObject,然後呼叫 IRunnableObject::Run。 換句話說,您可以交換使用 介面和協助程式函式。
實作者的注意事項
如果物件已指派Moniker,該物件應該會在執行中的對象數據表中註冊。 對象不應該自行保留任何強式鎖定;相反地,它應該維持在不穩定、解除鎖定的狀態。 當第一個外部連接對 對象進行時,應該鎖定物件。當內嵌物件處於執行中狀態時,內嵌物件必須保留其內嵌容器的鎖定。 OLE 2 提供的預設處理程式負責代表 EXE 物件應用程式所實作的物件鎖定內嵌容器。 DLL 物件應用程式所實作的對象必須明確鎖定其內嵌容器,其方式是先呼叫 IOleClientSite::GetContainer 以取得容器的指標,然後呼叫 IOleContainer::LockContainer 以實際放置鎖定。 呼叫 IOleObject::Close 時,必須釋放此鎖定。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | objidl.h |