Classe CShellManager
Implementa diversi metodi che consentono di utilizzare puntatori a elenchi di identificatori (PIDL).
Sintassi
class CShellManager : public CObject
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CShellManager::CShellManager | Costruisce un oggetto CShellManager . |
Metodi pubblici
Nome | Descrizione |
---|---|
CShellManager::BrowseForFolder | Visualizza una finestra di dialogo che consente all'utente di selezionare una cartella della shell. |
CShellManager::ConcatenateItem | Concatena due PIDL. |
CShellManager::CopyItem | Crea un nuovo PIDL e copia il PIDL fornito. |
CShellManager::CreateItem | Crea un nuovo PIDL delle dimensioni specificate. |
CShellManager::FreeItem | Elimina il PIDL fornito. |
CShellManager::GetItemCount | Restituisce il numero di elementi nel PIDL fornito. |
CShellManager::GetItemSize | Restituisce le dimensioni del PIDL fornito. |
CShellManager::GetNextItem | Restituisce l'elemento successivo dal PIDL. |
CShellManager::GetParentItem | Recupera l'elemento padre dell'elemento fornito. |
CShellManager::ItemFromPath | Recupera il PIDL per l'elemento identificato dal percorso fornito. |
Osservazioni:
I metodi della CShellManager
classe gestiscono tutti i PIDL. Un PIDL è un identificatore univoco per un oggetto shell.
Non è consigliabile creare un CShellManager
oggetto manualmente. Verrà creato automaticamente dal framework dell'applicazione. Tuttavia, è necessario chiamare CWinAppEx::InitShellManager durante il processo di inizializzazione dell'applicazione. Per ottenere un puntatore alla gestione shell per l'applicazione, chiamare CWinAppEx::GetShellManager.
Gerarchia di ereditarietà
Requisiti
Intestazione: afxshellmanager.h
CShellManager::BrowseForFolder
Visualizza una finestra di dialogo che consente all'utente di selezionare una cartella della shell.
BOOL BrowseForFolder(
CString& strOutFolder,
CWnd* pWndParent = NULL,
LPCTSTR lplszInitialFolder = NULL,
LPCTSTR lpszTitle = NULL,
UINT ulFlags = BIF_RETURNONLYFSDIRS,
LPINT piFolderImage = NULL);
Parametri
strOutFolder
[out] Stringa utilizzata dal metodo per archiviare il percorso della cartella selezionata.
pWndParent
[in] Puntatore alla finestra padre.
lplszInitialFolder
[in] Stringa contenente la cartella selezionata per impostazione predefinita quando viene visualizzata la finestra di dialogo.
lpszTitle
[in] Titolo della finestra di dialogo.
ulFlags
[in] Flag che specificano le opzioni per la finestra di dialogo. Per la descrizione dettagliata, vedere BROWSEINFO .
piFolderImage
[out] Puntatore al valore intero in cui il metodo scrive l'indice immagine della cartella selezionata.
Valore restituito
Diverso da zero se l'utente seleziona una cartella dalla finestra di dialogo; in caso contrario, 0.
Osservazioni:
Quando si chiama questo metodo, l'applicazione crea e visualizza una finestra di dialogo che consente all'utente di selezionare una cartella. Il metodo scriverà il percorso della cartella nel parametro strOutFolder .
Esempio
Nell'esempio seguente viene illustrato come recuperare un riferimento a un CShellManager
oggetto utilizzando il CWinAppEx::GetShellManager
metodo e come utilizzare il BrowseForFolder
metodo . Questo frammento di codice fa parte dell'esempio explorer.
CString strPath;
// The this pointer points to the CExplorerView class which extends the CView class.
// CMFCShellListCtrl m_wndList
if (m_wndList.GetCurrentFolder(strPath) &&
theApp.GetShellManager()->BrowseForFolder(strPath,
this, strPath, _T("Copy the selected item(s) to the folder:")))
{
MessageBox(CString(_T("The selected path is: ")) + strPath);
}
CShellManager::ConcatenateItem
Crea un nuovo elenco contenente due PIDL.
LPITEMIDLIST ConcatenateItem(
LPCITEMIDLIST pidl1,
LPCITEMIDLIST pidl2);
Parametri
pidl1
[in] Primo elemento.
pidl2
[in] Secondo elemento.
Valore restituito
Puntatore al nuovo elenco di elementi se la funzione ha esito positivo; in caso contrario, NULL.
Osservazioni:
Questo metodo crea un nuovo ITEMIDLIST sufficientemente grande da contenere sia pidl1 che pidl2. Copia quindi pidl1 e pidl2 nel nuovo elenco.
CShellManager::CopyItem
Copia un elenco di elementi.
LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);
Parametri
pidlSource
[in] Elenco di elementi originale.
Valore restituito
Puntatore all'elenco di elementi appena creato in caso di esito positivo; in caso contrario NULL.
Osservazioni:
L'elenco di elementi appena creato ha le stesse dimensioni dell'elenco di elementi di origine.
CShellManager::CreateItem
Crea un nuovo FILE PIDL.
LPITEMIDLIST CreateItem(UINT cbSize);
Parametri
cbSize
[in] Dimensioni dell'elenco di elementi.
Valore restituito
Puntatore all'elenco di elementi creato in caso di esito positivo; in caso contrario NULL.
CShellManager::CShellManager
Costruisce un oggetto CShellManager
.
CShellManager();
Osservazioni:
Nella maggior parte dei casi, non è necessario creare direttamente un oggetto CShellManager
. Per impostazione predefinita, il framework ne crea uno automaticamente. Per ottenere un puntatore a CShellManager
, chiamare CWinAppEx::GetShellManager. Se si crea un oggetto CShellManager
manualmente, è necessario inizializzarlo con il metodo CWinAppEx::InitShellManager.
CShellManager::FreeItem
Elimina un elenco di elementi.
void FreeItem(LPITEMIDLIST pidl);
Parametri
pidl
[in] Elenco di elementi da eliminare.
CShellManager::GetItemCount
Restituisce il numero di elementi in un elenco di elementi.
UINT GetItemCount(LPCITEMIDLIST pidl);
Parametri
pidl
[in] Puntatore a un elenco di elementi.
Valore restituito
Numero di elementi nell'elenco di elementi.
CShellManager::GetItemSize
Restituisce le dimensioni di un elenco di elementi.
UINT GetItemSize(LPCITEMIDLIST pidl);
Parametri
pidl
[in] Puntatore a un elenco di elementi.
Valore restituito
Dimensioni dell'elenco di elementi.
CShellManager::GetNextItem
Recupera l'elemento successivo da un puntatore a un elenco di identificatori di elemento (PIDL).
LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);
Parametri
pidl
[in] Elenco di elementi da scorrere.
Valore restituito
Puntatore all'elemento successivo nell'elenco.
Osservazioni:
Se nell'elenco non sono presenti altri elementi, questo metodo restituisce NULL.
CShellManager::GetParentItem
Recupera l'elemento padre di un puntatore a un elenco di identificatori di elemento (PIDL).
int GetParentItem(
LPCITEMIDLIST lpidl,
LPITEMIDLIST& lpidlParent);
Parametri
lpidl
[in] PIDL il cui elemento padre verrà recuperato.
lpidlParent
[out] Riferimento a un PIDL in cui il metodo archivierà il risultato.
Valore restituito
Livello del PIDL padre.
Osservazioni:
Il livello di un PIDL è relativo al desktop. Il PIDL desktop è considerato avere un livello pari a 0.
CShellManager::ItemFromPath
Recupera il puntatore a un elenco di identificatori di elemento (PIDL) dall'elemento identificato da un percorso stringa.
HRESULT ItemFromPath(
LPCTSTR lpszPath,
LPITEMIDLIST& pidl);
Parametri
lpszPath
[in] Stringa che specifica il percorso dell'elemento.
pidl
[out] Riferimento a un PIDL. Il metodo usa questo CODICE PIDL per archiviare il puntatore al valore restituito.
Valore restituito
Restituisce NOERROR se ha esito positivo; un valore di errore definito da OLE.