共用方式為


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 。 它通常會在呼叫 OleLoadOleCreate 之後立即進行呼叫,而且即使在關閉之前,也永遠不會再次呼叫 方法。 此外,容器幾乎一律會呼叫此方法, 並將 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

另請參閱

IRunnableObject

OleSetContainedObject