Función SafeArrayLock (oleauto.h)
Incrementa el recuento de bloqueos de una matriz y coloca un puntero a los datos de la matriz en pvData del descriptor de matriz.
Sintaxis
HRESULT SafeArrayLock(
[in] SAFEARRAY *psa
);
Parámetros
[in] psa
Descriptor de matriz creado por SafeArrayCreate.
Valor devuelto
Esta función puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
|
Correcto. |
|
El argumento psa no es válido. |
|
No se pudo bloquear la matriz. |
Comentarios
El puntero del descriptor de matriz es válido hasta que se llama a la función SafeArrayUnlock . Las llamadas a SafeArrayLock se pueden anidar, en cuyo caso se requiere un número igual de llamadas a SafeArrayUnlock .
No se puede eliminar una matriz mientras está bloqueada.
Seguridad para subprocesos
Todos los miembros estáticos públicos (compartidos en Visual Basic) del tipo de datos SAFEARRAY son seguros para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.
Por ejemplo, considere una aplicación que usa las funciones SafeArrayLock y SafeArrayUnlock . Si estas funciones se llaman simultáneamente desde subprocesos diferentes en la misma instancia de tipo de datos SAFEARRAY , se puede crear un recuento de bloqueos incoherente. Esto hará que la función SafeArrayUnlock devuelva E_UNEXPECTED. Puede evitarlo proporcionando su propio código de sincronización.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | oleauto.h |
Library | OleAut32.lib |
Archivo DLL | OleAut32.dll |