Freigeben über


SHCreateDataObject-Funktion (shlobj_core.h)

Erstellt ein Datenobjekt in einem übergeordneten Ordner.

Syntax

SHSTDAPI SHCreateDataObject(
  [in, optional] PCIDLIST_ABSOLUTE     pidlFolder,
  [in]           UINT                  cidl,
  [in, optional] PCUITEMID_CHILD_ARRAY apidl,
  [in, optional] IDataObject           *pdtInner,
  [in]           REFIID                riid,
  [out]          void                  **ppv
);

Parameter

[in, optional] pidlFolder

Typ: PCIDLIST_ABSOLUTE

Ein Zeiger auf eine ITEMIDLIST (PIDL) des übergeordneten Ordners, der das Datenobjekt enthält.

[in] cidl

Typ: UINT

Die Anzahl von Dateiobjekten oder Unterordnern, die im apidl-Parameter angegeben sind.

[in, optional] apidl

Typ: PCUITEMID_CHILD_ARRAY

Ein Array von Zeigern auf konstante 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, optional] pdtInner

Typ: IDataObject*

Ein Zeiger auf die Schnittstelle von IDataObject. Dieser Parameter kann NULL sein. Geben Sie pdtInner nur an, wenn das erstellte Datenobjekt zusätzliche FORMATETC-Zwischenablageformate unterstützen muss, die über die Standardformate hinausgehen, die bei der Erstellung zugewiesen werden. Alternativ können Sie das Auffüllen des erstellten Datenobjekts mithilfe von nicht standardmäßigen Zwischenablageformaten unterstützen, indem Sie die Methode IDataObject::SetData aufrufen und das Format in der FORMATTC-Struktur angeben, die im Parameter pFormatetc übergeben wird.

[in] riid

Typ: REFIID

Ein Verweis auf die IID der Schnittstelle, die über ppv abgerufen werden soll. Dies muss IID_IDataObject sein.

[out] ppv

Typ: void**

Wenn diese Methode erfolgreich zurückgibt, enthält den in riid angeforderten IDataObject-Schnittstellenzeiger.

Rückgabewert

Typ: HRESULT

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

Hinweise

Diese Funktion wird in der Regel aufgerufen, wenn die Methode IShellFolder::GetUIObjectOf implementiert wird. Wenn ein Schnittstellenzeiger der Schnittstellen-ID IID_IDataObject angefordert wird (mithilfe des Parameters riid), kann der Implementierer den Schnittstellenzeiger für das objekt zurückgeben, das mit SHCreateDataObject als Antwort erstellt wurde.

Diese Funktion unterstützt das CFSTR_SHELLIDLIST -Zwischenablageformat (auch bekannt als HIDA) und bietet auch generische Unterstützung für beliebige Zwischenablageformate über IDataObject::SetData. Weitere Informationen zu Zwischenablageformaten finden Sie unter Shell-Zwischenablageformate.

Das neue Datenobjekt soll in Vorgängen wie drag-and-drop verwendet werden, in denen die Daten in der Zwischenablage mit einem bestimmten Format gespeichert werden.

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 beseitigt wird, der zu unerwarteten Ergebnissen führen kann.

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

Weitere Informationen

CIDLData_CreateFromIDArray