Condividi tramite


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)

Vedi anche

CIDLData_CreateFromIDArray