Freigeben über


SHCreateShellItemArrayFromDataObject-Funktion (shobjidl_core.h)

Erstellt ein Shellelementarrayobjekt aus einem Datenobjekt.

Syntax

SHSTDAPI SHCreateShellItemArrayFromDataObject(
  [in]  IDataObject *pdo,
  [in]  REFIID      riid,
  [out] void        **ppv
);

Parameter

[in] pdo

Typ: IDataObject*

Ein Zeiger auf die IDataObject-Schnittstelle .

[in] riid

Typ: REFIID

Ein Verweis auf die gewünschte Schnittstellen-ID.

[out] ppv

Typ: void**

Wenn diese Methode zurückgibt, enthält den in riid angeforderten Schnittstellenzeiger. Dies ist in der Regel IShellItemArray.

Rückgabewert

Typ: HRESULT

Wenn diese Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Diese Funktion ist nützlich für Shell-Erweiterungen, die IShellExtInit implementieren und ein Datenobjekt an die IShellExtInit::Initialize-Methode übergeben werden. Beispiel: Kontextmenühandler.

Mit dieser API können Sie das Datenobjekt in ein Shellelement konvertieren, das der Handler nutzen kann. Es wird empfohlen, dass Handler ein Shellelementarray anstelle von Zwischenablageformaten wie CF_HDROP und CFSTR_SHELLIDLIST (auch bekannt als HIDA) verwenden, da dies zu einfacherem Code führt und einige Leistungsverbesserungen ermöglicht.

Das resultierende Shellelementarray enthält einen Verweis auf das Quelldatenobjekt. Daher muss dieses Datenobjekt für die Lebensdauer des Shellelementarrays gültig bleiben. Insbesondere sind die an IDropTarget-Methoden übergebenen Datenobjekte nach Abschluss des Ablagevorgangs nicht mehr gültig.

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)
DLL Shell32.dll
APIs ext-ms-win-shell-shell32-l1-2-2 (eingeführt in Windows 10, Version 10.0.14393)