SafeArrayLock-Funktion (oleauto.h)
Erhöht die Sperranzahl eines Arrays und platziert einen Zeiger auf die Arraydaten in pvData des Arraydeskriptors.
Syntax
HRESULT SafeArrayLock(
[in] SAFEARRAY *psa
);
Parameter
[in] psa
Ein arraydeskriptor, der von SafeArrayCreate erstellt wurde.
Rückgabewert
Diese Funktion kann einen dieser Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Erfolg. |
|
Das Argument psa ist ungültig. |
|
Das Array konnte nicht gesperrt werden. |
Hinweise
Der Zeiger im Arraydeskriptor ist gültig, bis die SafeArrayUnlock-Funktion aufgerufen wird. Aufrufe von SafeArrayLock können geschachtelt werden. In diesem Fall ist eine gleiche Anzahl von Aufrufen von SafeArrayUnlock erforderlich.
Ein Array kann nicht gelöscht werden, während es gesperrt ist.
Threadsicherheit
Alle öffentlichen statischen (in Visual Basic freigegebenen) Member des SAFEARRAY-Datentyps sind threadsicher. Instanzmember sind nicht garantiert, dass sie threadsicher sind.
Betrachten Sie beispielsweise eine Anwendung, die die Funktionen SafeArrayLock und SafeArrayUnlock verwendet. Wenn diese Funktionen gleichzeitig aus verschiedenen Threads auf demselben SAFEARRAY-Datentyp instance aufgerufen werden, kann eine inkonsistente Sperranzahl erstellt werden. Dies führt schließlich dazu, dass die SafeArrayUnlock-Funktion E_UNEXPECTED zurückgibt. Sie können dies verhindern, indem Sie Ihren eigenen Synchronisierungscode bereitstellen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | oleauto.h |
Bibliothek | OleAut32.lib |
DLL | OleAut32.dll |