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

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.