次の方法で共有


IClassFactory::LockServer メソッド (unknwn.h)

メモリ内で開いているオブジェクト アプリケーションをロックします。 これにより、インスタンスをより迅速に作成できます。

構文

HRESULT LockServer(
  [in] BOOL fLock
);

パラメーター

[in] fLock

TRUE の場合は、ロックカウントをインクリメントします。FALSE の場合は、ロック数をデクリメントします。

戻り値

このメソッドは、標準の戻り値E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、およびS_OKを返すことができます。

注釈

IClassFactory::LockServer は、オブジェクトのサーバーがメモリ内に保持されるかどうかを制御します。 アプリケーションをメモリに保持すると、インスタンスをより迅速に作成できます。

呼び出し元へのメモ

ほとんどのクライアントは、このメソッドを呼び出す必要はありません。 これは、オブジェクトの複数のインスタンスを作成する際に特別なパフォーマンスを必要とするクライアントに対してのみ提供されます。

実装者へのメモ

ロック数が 0 の場合、使用されているオブジェクトがもうなく、アプリケーションがユーザー制御下にない場合は、サーバーを閉じることができます。 LockServer を実装する方法の 1 つは、CoLockObjectExternal 関数を呼び出す方法です。

オブジェクト アプリケーションをロックするプロセスは、ロック解除を担当します。 クラス オブジェクトが解放された後、後で同じクラスへの呼び出し元の接続を保証するメカニズムはありません (クラス オブジェクトが単一使用として登録されている場合と同様)。 クラス オブジェクトの IClassFactory インターフェイスへのポインターを解放する前に呼び出しのバランスを取るか、エラーの結果を返す必要があるため、LockServer への最後の呼び出しだけでなく、すべての呼び出しをカウントすることが重要です。 fLockTRUE に設定した LockServer を呼び出すたびに、fLockFALSE に設定して LockServer を呼び出す必要があります。 ロック数とクラス オブジェクト参照カウントの両方が 0 の場合、クラス オブジェクトを解放できます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー unknwn.h (Unknwn.h を含む)

こちらもご覧ください

CoLockObjectExternal

IClassFactory