次の方法で共有


SafeArrayUnlock 関数 (oleauto.h)

解放またはサイズ変更できるように、配列のロック数をデクリメントします。

構文

HRESULT SafeArrayUnlock(
  [in] SAFEARRAY *psa
);

パラメーター

[in] psa

SafeArrayCreate によって作成された配列記述子。

戻り値

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
正常終了しました。
E_INVALIDARG
引数 psa が無効です。
E_UNEXPECTED
配列のロックを解除できませんでした。

注釈

この関数は、配列内のデータへのアクセスが完了した後に呼び出されます。

スレッド セーフ

SAFEARRAY データ型のすべてのパブリック静的メンバーはスレッド セーフです。 インスタンス メンバーがスレッド セーフであるとは限りません。

たとえば、 SafeArrayLock 関数と SafeArrayUnlock 関数を使用するアプリケーションを考えてみましょう。 これらの関数が同じ SAFEARRAY データ型 インスタンス上の異なるスレッドから同時に呼び出される場合は、一貫性のないロックカウントが作成される可能性があります。 これにより、最終的に SafeArrayUnlock 関数がE_UNEXPECTEDを返します。 これを防ぐには、独自の同期コードを指定します。

要件

要件
対象プラットフォーム Windows
ヘッダー oleauto.h
Library OleAut32.lib
[DLL] OleAut32.dll