Metodo IShellFolder::GetUIObjectOf (shobjidl_core.h)
Ottiene un oggetto che può essere utilizzato per eseguire azioni sugli oggetti o le cartelle file specificati.
Sintassi
HRESULT GetUIObjectOf(
[in] HWND hwndOwner,
[in] UINT cidl,
[in] PCUITEMID_CHILD_ARRAY apidl,
[in] REFIID riid,
[in, out] UINT *rgfReserved,
[out] void **ppv
);
Parametri
[in] hwndOwner
Tipo: HWND
Handle per la finestra del proprietario che il client deve specificare se visualizza una finestra di dialogo o una finestra di messaggio.
[in] cidl
Tipo: UINT
Numero di oggetti file o sottocartelle specificati nel parametro apidl .
[in] apidl
Tipo: PCUITEMID_CHILD_ARRAY
Indirizzo di una matrice di puntatori alle strutture ITEMIDLIST , ognuna delle quali identifica in modo univoco un oggetto file o una sottocartella rispetto alla cartella padre. Ogni elenco di identificatori di elemento deve contenere esattamente una struttura SHITEMID seguita da uno zero di terminazione.
[in] riid
Tipo: REFIID
Riferimento all'IID dell'interfaccia da recuperare tramite ppv. Può trattarsi di qualsiasi identificatore di interfaccia valido che può essere creato per un elemento. Gli identificatori più comuni usati dalla shell sono elencati nei commenti alla fine di questo riferimento.
[in, out] rgfReserved
Tipo: UINT*
Riservato.
[out] ppv
Tipo: void**
Quando questo metodo viene restituito correttamente, contiene il puntatore di interfaccia richiesto in riid.
Valore restituito
Tipo: HRESULT
Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Commenti
Se cidl è maggiore di uno, l'implementazione di IShellFolder::GetUIObjectOf deve avere esito positivo solo se può creare un oggetto per tutti gli elementi specificati in apidl. Se l'implementazione non può creare un oggetto per tutti gli elementi, questo metodo avrà esito negativo.
Di seguito sono riportati gli identificatori di interfaccia più comuni usati da Shell quando si richiede un'interfaccia da questo metodo. L'elenco indica anche se cidl può essere maggiore di uno per l'interfaccia richiesta.
Identificatore dell'interfaccia | Valore cidl consentito |
---|---|
IContextMenu | Il parametro cidl può essere maggiore o uguale a uno. |
IContextMenu2 | Il parametro cidl può essere maggiore o uguale a uno. |
Idataobject | Il parametro cidl può essere maggiore o uguale a uno. |
Idroptarget | Il parametro cidl può essere solo uno. |
IExtractIcon | Il parametro cidl può essere solo uno. |
IQueryInfo | Il parametro cidl può essere solo uno. |
È consigliabile usare la macro IID_PPV_ARGS , definita in Objbase.h, per creare un 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 XP [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shobjidl_core.h (include Shobjidl.h) |
DLL | Shell32.dll (versione 4.0 o successiva) |