IOleObject::Close 方法 (oleidl.h)
將內嵌物件從執行變更為載入狀態。 中斷連結物件與其連結來源的連接。
語法
HRESULT Close(
[in] DWORD dwSaveOption
);
參數
[in] dwSaveOption
指出物件是否要儲存為轉換至載入狀態的一部分。 有效值取自列舉 OLECLOSE。
注意 OLE 2 使用者模型建議物件應用程式不會在儲存連結或內嵌物件之前提示使用者,包括就地啟動的物件。 此原則代表 OLE 1 使用者模型的變更,其中物件應用程式一律會提示用戶決定是否要儲存變更。
傳回值
此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。
傳回碼 | Description |
---|---|
|
系統提示使用者儲存,但從提示消息框中選擇 [ 取消] 按鈕。 |
備註
來電者附註
當容器應用程式想要將對象從執行中移至載入狀態時,會呼叫 IOleObject::Close 。 在這類呼叫之後,物件仍會顯示在其容器中,但尚未開啟以供編輯。 在載入但未執行的物件上呼叫 IOleObject::Close 沒有任何作用。 關閉連結的物件只是表示中斷連接。實作者的注意事項
收到 對 IOleObject::Close 的呼叫時,執行中的 對象應該執行下列動作:- 如果物件自上次開啟以供編輯后已變更,則應該根據 dwSaveOption 中指定的指示要求儲存或不要儲存物件。 如果選項是儲存物件,則應該呼叫其容器的 IOleClientSite::SaveObject 介面。
- 如果物件具有 IDataObject::D Advise 與 ADVF 的連線_DATAONSTOP旗標,則它應該傳送 IAdviseSink::OnDataChange 通知。 如需詳細資訊 ,請參閱 IDataObject::D Advise 。
- 如果物件目前擁有剪貼簿,它應該藉由呼叫 OleFlushClipboard 來清空它。
- 如果物件目前為可見,請呼叫 IOleClientSite::OnShowWindow ,並將 fshow 自變數設定為 FALSE,以通知其容器。
- 將 IAdviseSink::OnClose 通知傳送至適當的建議接收。
- 最後,強制關閉所有遠端用戶端,方法是呼叫 CoDisconnectObject。
在連結的物件上呼叫 IOleObject::Close 會中斷連線,但不會關閉其來源應用程式。 關閉物件時,使用者可以看到的來源應用程式,會在中斷連線后保持可見且執行中,且不會將 IAdviseSink::OnClose 通知傳送至連結容器。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | oleidl.h |