SafeArrayLock 函数 (oleauto.h)
递增数组的锁计数,并在数组描述符的 pvData 中放置指向数组数据的指针。
语法
HRESULT SafeArrayLock(
[in] SAFEARRAY *psa
);
参数
[in] psa
由 SafeArrayCreate 创建的数组描述符。
返回值
此函数可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
参数 psa 无效。 |
|
无法锁定数组。 |
注解
数组描述符中的指针在调用 SafeArrayUnlock 函数之前有效。 可以嵌套对 SafeArrayLock 的 调用,在这种情况下,需要对 SafeArrayUnlock 的相同数量的调用。
数组锁定时无法删除该数组。
线程安全性
Visual Basic 中共享的所有公共静态 () SAFEARRAY 数据类型 的成员都是线程安全的。 不保证实例成员是线程安全的。
例如,考虑使用 SafeArrayLock 和 SafeArrayUnlock 函数的应用程序。 如果从同一 SAFEARRAY 数据类型 实例上的不同线程并发调用这些函数,可能会创建不一致的锁计数。 这最终会导致 SafeArrayUnlock 函数返回E_UNEXPECTED。 可以通过提供自己的同步代码来防止这种情况。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | oleauto.h |
Library | OleAut32.lib |
DLL | OleAut32.dll |