IShellItemArray::GetAttributes-Methode (shobjidl_core.h)
Ruft die Attribute der Gruppe von Elementen ab, die in einem IShellItemArray enthalten sind. Wenn das Array mehr als ein Element enthält, sind die von dieser Methode abgerufenen Attribute nicht die Attribute einzelner Elemente, sondern eine logische Kombination aller angeforderten Attribute aller Elemente.
Syntax
HRESULT GetAttributes(
[in] SIATTRIBFLAGS AttribFlags,
[in] SFGAOF sfgaoMask,
[out] SFGAOF *psfgaoAttribs
);
Parameter
[in] AttribFlags
Typ: SIATTRIBFLAGS
Wenn das Array ein einzelnes Element enthält, liefert diese Methode die gleichen Ergebnisse wie GetAttributes. Wenn das Array jedoch mehrere Elemente enthält, werden die Attributsätze aller Elemente zu einem einzelnen Attributsatz kombiniert und im Wert zurückgegeben, auf den psfgaoAttribs verweist. Dieser Parameter verwendet einen der folgenden Werte, um zu definieren, wie dieser endgültige Attributsatz bestimmt wird:
SIATTRIBFLAGS_AND (0x00000001)
0x00000001. Wenn mehrere Elemente im Array vorhanden sind, verwenden Sie ein bitweises AND, um die Attribute elementübergreifend zu kombinieren. Wenn das Array instance zwei Elemente enthält, bei denen ein Element verschoben werden kann (SFGAO_CANMOVE) und ein zweites Element nicht, gibt die Methode (1 & 0) oder 0 für dieses Attributbit zurück.
SIATTRIBFLAGS_OR (0x00000002)
0x00000002. Wenn mehrere Elemente im Array vorhanden sind, verwenden Sie ein bitweises OR, um die Attribute elementeübergreifend zu kombinieren. Wenn das Array für instance zwei Elemente enthält, bei denen ein Element verschoben werden kann (SFGAO_CANMOVE) und ein zweites Element nicht, gibt die Methode (1 | 0) oder 1 für dieses Attributbit zurück.
SIATTRIBFLAGS_APPCOMPAT (0x00000003)
0x00000003. Rufen Sie die Attribute direkt aus der Shell-Datenquelle ab. Um diesen Wert zu verwenden, muss das Shellelementarray als IShellFolder initialisiert worden sein, dessen Inhalt als Array von untergeordneten PIDLs angegeben ist.
SIATTRIBFLAGS_MASK (0x00000003)
0x00000003. Eine Maske für SIATTRIBFLAGS_AND, SIATTRIBFLAGS_OR und SIATTRIBFLAGS_APPCOMPAT. Aufrufer verwenden diesen Wert normalerweise nicht.
SIATTRIBFLAGS_ALLITEMS (0x00004000)
0x00004000. Windows 7 und höher. Untersuchen Sie alle Elemente im Array, um die Attribute zu berechnen. Beachten Sie, dass dies zu einer schlechten Leistung für große Arrays führen kann und daher nur bei Bedarf verwendet werden sollte. Fälle, in denen Sie dieses Flag übergeben, sollten äußerst selten sein. Weitere Informationen finden Sie unter Hinweise.
[in] sfgaoMask
Typ: SFGAOF
Eine Maske, die angibt, welche bestimmten Attribute angefordert werden. Ein bitweises OR mit einem oder mehreren SFGAO-Werten .
[out] psfgaoAttribs
Typ: SFGAOF*
Eine Bitmap, die nach erfolgreicher Rückgabe dieser Methode die Werte der angeforderten Attribute enthält.
Rückgabewert
Typ: HRESULT
Gibt S_OK zurück, wenn die zurückgegebenen Attribute genau mit den in sfgaoMask angeforderten Attributen übereinstimmen, S_FALSE, wenn die Attribute nicht genau übereinstimmen, oder andernfalls ein COM-Standardfehlerwert.
Hinweise
Das Shellelementarray speichert einzelne Attribute zwischen, nachdem sie bestimmt wurden.
Wenn diese Methode die Informationen zum Sammeln von Attributen des Arrays übergibt, wird normalerweise ein bestimmtes Attribut nicht mehr angezeigt, nachdem dieser Wert unwiderruflich festgelegt wurde. Wenn für instance das SIATTRIBFLAGS_AND-Flag festgelegt ist, ist es nicht erforderlich, diesen Attributwert für andere Elemente zu untersuchen, da das Ergebnis des AND-Vorgangs immer 0 ist. Daher wird der endgültige Satz von Attributen in der Regel berechnet, indem nur die ersten Elemente im Array betrachtet werden. Dies ist alles, was zum Abrufen des endgültigen Werts erforderlich ist. Wenn Sie alle Elemente im Array untersuchen müssen, legen Sie das flag SIATTRIBFLAGS_ALLITEMS fest. Beachten Sie jedoch, dass dies die Rückgabe der Methode erheblich verlangsamen kann, sodass Sie dies nicht ohne Grund tun.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shobjidl_core.h (shobjidl.h einschließen) |