SafeArrayLock
Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]
Erhöht die Sperrenanzahl ein Array und einen Zeiger auf die Daten des Arrays in pvData von den Arraydeskriptor platziert.
HRESULT SafeArrayLock(
SAFEARRAY *psa
);
Parameter
- psa
Zeiger auf ein Arraydeskriptor SafeArrayCreate erstellt.
Rückgabewert
Der Rückgabewert vom zurückgegebenen HRESULT ist eine der folgenden.
Rückgabewert |
Bedeutung |
---|---|
S_OK |
Erfolg. |
E_INVALIDARG |
Der Parameter psa ist keinen Deskriptor mit gültigen sicheres Array. |
E_UNEXPECTED |
Das Array konnte nicht gesperrt werden. |
Kommentare
Der-Zeiger in den Arraydeskriptor ist gültig, bis SafeArrayUnlock aufgerufen wird. SafeArrayLock Aufrufe können in diesem Fall eine gleich Anzahl Aufrufe von SafeArrayUnlock muss geschachtelt werden.
Ein Array kann nicht gelöscht werden, während es gesperrt ist.
Thread-Sicherheit
static SAFEARRAY Daten TypShared alle öffentlichen ( in Visual Basic) Member sind threadsicher. Instanz-Membern sind garantiert nicht threadsicher.
Betrachten Sie beispielsweise eine Anwendung, die SafeArrayLockSafeArrayUnlock Funktionen und verwendet. Wenn diese Funktionen in der gleichen SAFEARRAY Daten Typ Instanz gleichzeitig von verschiedenen Threads aufgerufen werden, kann eine inkonsistente Sperrenanzahl erstellt werden. Dies bewirkt schließlich die SafeArrayUnlock-Funktion E_UNEXPECTED zurückzugeben. Sie können dies verhindern, indem eine eigene Synchronisierung Code bereitstellen.