Funzione SHCreateDataObject (shlobj_core.h)
Crea un oggetto dati in una cartella padre.
Sintassi
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
);
Parametri
[in, optional] pidlFolder
Tipo: PCIDLIST_ABSOLUTE
Puntatore a un elemento ITEMIDLIST (PIDL) della cartella padre contenente l'oggetto dati.
[in] cidl
Tipo: UINT
Numero di oggetti file o sottocartelle specificati nel parametro apidl .
[in, optional] apidl
Tipo: PCUITEMID_CHILD_ARRAY
Matrice di puntatori a strutture ITEMIDLIST costanti, ognuna delle quali identifica in modo univoco un oggetto file o una sottocartella relativa alla cartella padre. Ogni elenco di identificatori di elemento deve contenere esattamente una struttura SHITEMID seguita da uno zero terminante.
[in, optional] pdtInner
Tipo: IDataObject*
Puntatore all'interfaccia IDataObject. Questo parametro può essere NULL. Specificare pdtInner solo se l'oggetto dati creato deve supportare formati di Appunti FORMATETC aggiuntivi oltre i formati predefiniti assegnati alla creazione. In alternativa, fornire supporto per popolare l'oggetto dati creato usando formati non predefiniti degli Appunti chiamando il metodo IDataObject::SetData e specificando il formato nella struttura FORMATETC passato nel parametro pFormatetc.
[in] riid
Tipo: REFIID
Riferimento all'IID dell'interfaccia da recuperare tramite ppv. Questo deve essere IID_IDataObject.
[out] ppv
Tipo: void**
Quando questo metodo restituisce correttamente, contiene il puntatore dell'interfaccia IDataObject richiesto in riid.
Valore restituito
Tipo: HRESULT
Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Commenti
Questa funzione viene in genere chiamata quando si implementa il metodo IShellFolder::GetUIObjectOf. Quando viene richiesto un puntatore dell'interfaccia di ID interfaccia IID_IDataObject (usando il riid dei parametri), l'implementazione può restituire il puntatore dell'interfaccia sull'oggetto creato con SHCreateDataObject in risposta.
Questa funzione supporta il formato degli Appunti CFSTR_SHELLIDLIST (noto anche come HIDA) e include anche il supporto generico per i formati arbitrari degli Appunti tramite IDataObject::SetData. Per altre informazioni sui formati degli Appunti, vedere Formati degli Appunti della shell.
Il nuovo oggetto dati deve essere usato nelle operazioni, ad esempio trascinamento e rilascio, in cui i dati vengono archiviati negli Appunti con un determinato formato.
È consigliabile usare la macro IID_PPV_ARGS definita in Objbase.h per creare il pacchetto dei parametri riid e ppv . Questa macro fornisce l'IID corretto in base all'interfaccia a cui punta il valore in ppv, che elimina la possibilità di un errore di codifica in riid che potrebbe causare risultati imprevisti.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shlobj_core.h (include Shlobj.h) |
DLL | Shell32.dll |
Set di API | ext-ms-win-shell32-l1-2-2 (introdotta in Windows 10 versione 10.0.14393) |