IShellFolder::GetUIObjectOf-Methode (shobjidl_core.h)
Ruft ein -Objekt ab, das zum Ausführen von Aktionen für die angegebenen Dateiobjekte oder Ordner verwendet werden kann.
Syntax
HRESULT GetUIObjectOf(
[in] HWND hwndOwner,
[in] UINT cidl,
[in] PCUITEMID_CHILD_ARRAY apidl,
[in] REFIID riid,
[in, out] UINT *rgfReserved,
[out] void **ppv
);
Parameter
[in] hwndOwner
Typ: HWND
Ein Handle für das Besitzerfenster, das vom Client angegeben werden soll, wenn ein Dialogfeld oder meldungsfeld angezeigt wird.
[in] cidl
Typ: UINT
Die Anzahl von Dateiobjekten oder Unterordnern, die im apidl-Parameter angegeben sind.
[in] apidl
Typ: PCUITEMID_CHILD_ARRAY
Die Adresse eines Arrays von Zeigern auf ITEMIDLIST-Strukturen , von denen jede ein Dateiobjekt oder unterordner relativ zum übergeordneten Ordner eindeutig identifiziert. Jede Elementbezeichnerliste muss genau eine SHITEMID-Struktur gefolgt von einer endenden Null enthalten.
[in] riid
Typ: REFIID
Ein Verweis auf die IID der Schnittstelle, die über ppv abgerufen werden soll. Dies kann ein beliebiger gültiger Schnittstellenbezeichner sein, der für ein Element erstellt werden kann. Die gängigsten Bezeichner, die von der Shell verwendet werden, sind in den Kommentaren am Ende dieser Referenz aufgeführt.
[in, out] rgfReserved
Typ: UINT*
Reserviert.
[out] ppv
Typ: void**
Wenn diese Methode erfolgreich zurückgegeben wird, enthält den in riid angeforderten Schnittstellenzeiger.
Rückgabewert
Typ: HRESULT
Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Wenn cidl größer als eins ist, sollte die IShellFolder::GetUIObjectOf-Implementierung nur erfolgreich sein, wenn sie ein Objekt für alle in apidl angegebenen Elemente erstellen kann. Wenn die Implementierung kein Objekt für alle Elemente erstellen kann, schlägt diese Methode fehl.
Im Folgenden finden Sie die gängigsten Schnittstellenbezeichner, die die Shell beim Anfordern einer Schnittstelle von dieser Methode verwendet. Die Liste gibt auch an, ob cidl für die angeforderte Schnittstelle größer als eins sein kann.
Schnittstellenbezeichner | Zulässiger Cidl-Wert |
---|---|
IContextMenu | Der cidl-Parameter kann größer oder gleich 1 sein. |
IContextMenu2 | Der cidl-Parameter kann größer oder gleich 1 sein. |
Idataobject | Der cidl-Parameter kann größer oder gleich 1 sein. |
Idroptarget | Der cidl-Parameter kann nur ein Parameter sein. |
IExtractIcon | Der cidl-Parameter kann nur ein Parameter sein. |
IQueryInfo | Der cidl-Parameter kann nur ein Parameter sein. |
Es wird empfohlen, das makro IID_PPV_ARGS zu verwenden, das in Objbase.h definiert ist, um die Parameter riid und ppv zu packen. Dieses Makro stellt die richtige IID basierend auf der Schnittstelle bereit, auf die der Wert in ppv verweist, wodurch die Möglichkeit eines Codierungsfehlers in riid vermieden wird, der zu unerwarteten Ergebnissen führen könnte.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shobjidl_core.h (shobjidl.h einschließen) |
DLL | Shell32.dll (Version 4.0 oder höher) |