Funzione SafeArrayLock (oleauto.h)
Incrementa il conteggio dei blocchi di una matrice e inserisce un puntatore ai dati della matrice in pvData del descrittore di matrice.
Sintassi
HRESULT SafeArrayLock(
[in] SAFEARRAY *psa
);
Parametri
[in] psa
Descrittore di matrice creato da SafeArrayCreate.
Valore restituito
Questa funzione può restituire uno di questi valori.
Codice restituito | Descrizione |
---|---|
|
Operazione completata. |
|
L'argomento psa non è valido. |
|
Impossibile bloccare la matrice. |
Commenti
Il puntatore nel descrittore della matrice è valido finché non viene chiamata la funzione SafeArrayUnlock . Le chiamate a SafeArrayLock possono essere annidate, in questo caso è necessario un numero uguale di chiamate a SafeArrayUnlock .
Impossibile eliminare una matrice mentre è bloccata.
Thread safety
Tutti i membri statici pubblici (condivisi in Visual Basic) del tipo di dati SAFEARRAY sono thread safe. I membri dell'istanza non sono garantiti per essere thread safe.
Si consideri ad esempio un'applicazione che usa le funzioni SafeArrayLock e SafeArrayUnlock . Se queste funzioni vengono chiamate simultaneamente da thread diversi nella stessa istanza del tipo di dati SAFEARRAY , è possibile creare un conteggio di blocchi incoerente. A questo scopo, la funzione SafeArrayUnlock restituirà E_UNEXPECTED. È possibile evitare questo problema fornendo il proprio codice di sincronizzazione.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | oleauto.h |
Libreria | OleAut32.lib |
DLL | OleAut32.dll |