Condividi tramite


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)

Vedi anche

IShellFolder

IShellFolder2