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) |