共用方式為


ISurrogate::FreeSurrogate 方法 (objidl.h)

卸除 DLL 伺服器。

Syntax

HRESULT FreeSurrogate();

傳回值

這個方法可以傳回標準傳回值E_UNEXPECTED、E_FAIL和S_OK。

備註

COM 會在代理程式中沒有其他 DLL 伺服器執行時呼叫 FreeSurrogate 。 呼叫 FreeSurrogate 時,方法必須正確地撤銷在 Surrogate 中註冊的所有類別處理站,然後導致 Surrogate 進程結束。

Surrogate 進程必須定期呼叫 CoFreeUnusedLibraries 函式,以卸除不再使用的 DLL 伺服器。 代理程式會假設此責任,這通常是客戶端的責任。 CoFreeUnusedLibraries 會在任何載入的 DLL 伺服器上呼叫 DllCanUnloadNow 函 式。 由於 CoFreeUnusedLibraries 相依於 DLL 伺服器中 DllCanUnloadNow 的存在和適當實作,因此不保證卸除所有應該卸除的 DLL 伺服器--不是每部伺服器都會實作 DllCanUnloadNow,而且此函式對自由線程 DLL 而言不可靠。 此外,當所有 DLL 伺服器都消失時,Surrogate 沒有辦法通知。 不過,COM 可以判斷所有 DLL 伺服器是否已卸除,然後呼叫 FreeSurrogate 方法。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 objidl.h (包含 ObjIdl.h)

另請參閱

DllSurrogate

ISurrogate

撰寫自定義 Surrogate