Função SafeArrayLock (oleauto.h)
Incrementa a contagem de bloqueios de uma matriz e coloca um ponteiro para os dados da matriz em pvData do descritor de matriz.
Sintaxe
HRESULT SafeArrayLock(
[in] SAFEARRAY *psa
);
Parâmetros
[in] psa
Um descritor de matriz criado por SafeArrayCreate.
Retornar valor
Essa função pode retornar um desses valores.
Código de retorno | Descrição |
---|---|
|
Êxito. |
|
O argumento psa não é válido. |
|
Não foi possível bloquear a matriz. |
Comentários
O ponteiro no descritor de matriz é válido até que a função SafeArrayUnlock seja chamada. As chamadas para SafeArrayLock podem ser aninhadas, caso em que um número igual de chamadas para SafeArrayUnlock é necessário.
Uma matriz não pode ser excluída enquanto estiver bloqueada.
Acesso thread-safe
Todos os membros estáticos públicos (compartilhados no Visual Basic) do tipo de dados SAFEARRAY são thread-safe. Não há garantia de que os membros da instância sejam thread-safe.
Por exemplo, considere um aplicativo que usa as funções SafeArrayLock e SafeArrayUnlock . Se essas funções forem chamadas simultaneamente de threads diferentes na mesma instância de tipo de dados SAFEARRAY , uma contagem de bloqueio inconsistente poderá ser criada. Isso eventualmente fará com que a função SafeArrayUnlock retorne E_UNEXPECTED. Você pode evitar isso fornecendo seu próprio código de sincronização.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | oleauto.h |
Biblioteca | OleAut32.lib |
DLL | OleAut32.dll |