Share via


SafeArrayLock 函式 (oleauto.h)

遞增數位的鎖定計數,並將數位數據的指標放在陣列描述元的 pvData 中。

語法

HRESULT SafeArrayLock(
  [in] SAFEARRAY *psa
);

參數

[in] psa

SafeArrayCreate 所建立的陣列描述項。

傳回值

此函式可以傳回下列其中一個值。

傳回碼 描述
S_OK
成功。
E_INVALIDARG
自變數 無效的。
E_UNEXPECTED
陣列無法鎖定。

備註

數位描述元中的指標有效,直到呼叫 SafeArrayUnlock 函式為止。 SafeArrayLock 的呼叫可以是巢狀的,在此情況下,需要有相等數目的 SafeArrayUnlock 呼叫。

陣列在鎖定時無法刪除。

執行緒安全性

在 Visual Basic 中共用的所有公用靜態 () SAFEARRAY 數據類型 的成員都是安全線程。 實例成員不保證是安全線程。

例如,請考慮使用 SafeArrayLock 和 SafeArrayUnlock 函式的應用程式。 如果從相同 SAFEARRAY 數據類型 實例上的不同線程同時呼叫這些函式,可能會建立不一致的鎖定計數。 這最終會導致 SafeArrayUnlock 函式傳回E_UNEXPECTED。 您可以藉由提供自己的同步程式代碼來防止這種情況。

規格需求

需求
目標平台 Windows
標頭 oleauto.h
程式庫 OleAut32.lib
Dll OleAut32.dll