IClassFactory::LockServer 方法 (unknwn.h)
鎖定在記憶體中開啟的物件應用程式。 這可讓實例更快速地建立。
語法
HRESULT LockServer(
[in] BOOL fLock
);
參數
[in] fLock
如果 為 TRUE,則遞增鎖定計數;如果 為 FALSE,則會遞減鎖定計數。
傳回值
這個方法可以傳回標準傳回值E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL和S_OK。
備註
IClassFactory::LockServer 控制對象的伺服器是否保留在記憶體中。 讓應用程式在記憶體中保持運作,可讓實例更快速地建立。
來電者附註
大部分的用戶端不需要呼叫這個方法。 它只會提供給需要特殊效能的用戶端,以建立其 物件的多個實例。實作者的注意事項
如果鎖定計數為零,則沒有任何物件正在使用中,而且應用程式不在使用者控制之下,可以關閉伺服器。 實作 LockServer 的其中一種方式是呼叫 CoLockObjectExternal函式 。鎖定物件應用程式的程式會負責解除鎖定它。 釋放類別對象之後,沒有任何機制可保證呼叫端與稍後相同類別的連線 (,如同在類別對象註冊為單一使用) 的情況下。 請務必計算 LockServer 的所有呼叫,而不只是最後一個呼叫,因為在嘗試釋放類別物件上 IClassFactory 介面的指標或錯誤結果之前,必須先平衡呼叫。 針對將 fLock 設定為 TRUE 的每個 LockServer 呼叫,都必須呼叫 LockServer並將 fLock 設定為 FALSE。 當鎖定計數和類別對象參考計數都是零時,可以釋放類別物件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | unknwn.h (包含 Unknwn.h) |