IRunnableObject::SetContainedObject 方法 (objidl.h)
通知物件它內嵌在 OLE 容器中,這可確保對支援內嵌物件連結的容器正確執行參考計數。
語法
HRESULT SetContainedObject(
[in] BOOL fContained
);
參數
[in] fContained
TRUE 指定物件包含在 OLE 容器中。 FALSE 表示它不是。
傳回值
這個方法可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED和S_OK。
備註
SetContainedObject 方法可讓容器通知對象處理程式它內嵌在容器中,而不是做為連結。 此呼叫會將物件上的容器參考從強式、外部連線的預設值變更為弱式。 當對象明顯執行時,這個方法就不重要,因為終端使用者對物件有鎖定。 不過,在內嵌連結來源的無訊息更新期間,容器不應在連結中斷之後,保留處於執行中狀態的物件。 基於這個理由,容器對 對象的參考必須是弱式的。
來電者附註
如果容器應用程式支持連結至內嵌物件,則必須呼叫 SetContainedObject 。 它通常會在呼叫 OleLoad 或 OleCreate 之後立即進行呼叫,而且即使在關閉之前,也永遠不會再次呼叫 方法。 此外,容器幾乎一律會呼叫此方法, 並將 fContained 設定為 TRUE。 將 fContained 設定為 FALSE 的這個方法很少使用。只有在您知道容器以外的任何用戶端不會參考內嵌物件時,呼叫 SetContainedObject 才為選擇性。 如果您的容器應用程式不支援連結至內嵌物件;最好呼叫 SetContainedObject,但並非必要。
OleSetContainedObject 是協助程式函式,可方便重新封裝 SetContainedObject 所提供的功能。 在 OLE 2.01 版本中,OleSetContainedObject 的實作已變更為呼叫 QueryInterface、要求 IRunnableObject,然後呼叫 IRunnableObject::SetContainedObject。 換句話說,您可以交替使用 介面和協助程式函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | objidl.h |