Partage via


CShellManager, classe

Implémente plusieurs méthodes qui permettent d'utiliser des pointeurs vers des listes d'identificateurs (PIDL).

Syntaxe

class CShellManager : public CObject

Membres

Constructeurs publics

Nom Description
CShellManager ::CShellManager Construit un objet CShellManager.

Méthodes publiques

Nom Description
CShellManager ::BrowseForFolder Affiche une boîte de dialogue qui permet à l’utilisateur de sélectionner un dossier d’interpréteur de commandes.
CShellManager ::ConcatenateItem Concatène deux PIDL.
CShellManager ::CopyItem Crée un code PIDL et copie le code PIDL fourni dans celui-ci.
CShellManager ::CreateItem Crée un code PIDL de la taille spécifiée.
CShellManager ::FreeItem Supprime le code PIDL fourni.
CShellManager ::GetItemCount Retourne le nombre d’éléments dans le PIDL fourni.
CShellManager ::GetItemSize Retourne la taille du code PIDL fourni.
CShellManager ::GetNextItem Retourne l’élément suivant à partir du code PIDL.
CShellManager ::GetParentItem Récupère l’élément parent de l’élément fourni.
CShellManager ::ItemFromPath Récupère le code PIDL de l’élément identifié par le chemin d’accès fourni.

Notes

Les méthodes de la CShellManager classe traitent tous des PIDL. Un code PIDL est un identificateur unique pour un objet shell.

Vous ne devez pas créer un CShellManager objet manuellement. Elle sera créée automatiquement par l’infrastructure de votre application. Toutefois, vous devez appeler CWinAppEx ::InitShellManager pendant le processus d’initialisation de votre application. Pour obtenir un pointeur vers le gestionnaire d’interpréteurs de commandes de votre application, appelez CWinAppEx ::GetShellManager.

Hiérarchie d'héritage

CObject

CShellManager

Spécifications

En-tête : afxshellmanager.h

CShellManager ::BrowseForFolder

Affiche une boîte de dialogue qui permet à l’utilisateur de sélectionner un dossier d’interpréteur de commandes.

BOOL BrowseForFolder(
    CString& strOutFolder,
    CWnd* pWndParent = NULL,
    LPCTSTR lplszInitialFolder = NULL,
    LPCTSTR lpszTitle = NULL,
    UINT ulFlags = BIF_RETURNONLYFSDIRS,
    LPINT piFolderImage = NULL);

Paramètres

strOutFolder
[out] Chaîne utilisée par la méthode pour stocker le chemin d’accès du dossier sélectionné.

pWndParent
[in] Pointeur vers la fenêtre parente.

lplszInitialFolder
[in] Chaîne qui contient le dossier sélectionné par défaut lorsque la boîte de dialogue s’affiche.

lpszTitle
[in] Titre de la boîte de dialogue.

ulFlags
[in] Indicateurs spécifiant les options de la boîte de dialogue. Consultez BROWSEINFO pour obtenir la description détaillée.

piFolderImage
[out] Pointeur vers la valeur entière où la méthode écrit l’index d’image du dossier sélectionné.

Valeur de retour

Différent de zéro si l’utilisateur sélectionne un dossier dans la boîte de dialogue ; sinon 0.

Notes

Lorsque vous appelez cette méthode, l’application crée et affiche une boîte de dialogue qui permet à l’utilisateur de sélectionner un dossier. La méthode écrit le chemin du dossier dans le paramètre strOutFolder .

Exemple

L’exemple suivant montre comment récupérer une référence à un CShellManager objet à l’aide de la CWinAppEx::GetShellManager méthode et comment utiliser la BrowseForFolder méthode. Cet extrait de code fait partie de l’exemple d’Explorateur.

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

Crée une liste contenant deux PIDL.

LPITEMIDLIST ConcatenateItem(
    LPCITEMIDLIST pidl1,
    LPCITEMIDLIST pidl2);

Paramètres

pidl1
[in] Premier élément.

pidl2
[in] Deuxième élément.

Valeur de retour

Pointeur vers la nouvelle liste d’éléments si la fonction réussit, sinon NULL.

Notes

Cette méthode crée un nouvel ITEMIDLIST suffisamment grand pour contenir à la fois pidl1 et pidl2. Il copie ensuite pidl1 et pidl2 dans la nouvelle liste.

CShellManager ::CopyItem

Copie une liste d’éléments.

LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);

Paramètres

pidlSource
[in] Liste d’éléments d’origine.

Valeur de retour

Pointeur vers la liste d’éléments nouvellement créée en cas de réussite ; sinon NULL.

Notes

La liste d’éléments nouvellement créée a la même taille que la liste d’éléments source.

CShellManager ::CreateItem

Crée un code PIDL.

LPITEMIDLIST CreateItem(UINT cbSize);

Paramètres

cbSize
[in] Taille de la liste d’éléments.

Valeur de retour

Pointeur vers la liste d’éléments créé en cas de réussite ; sinon NULL.

CShellManager ::CShellManager

Construit un objet CShellManager.

CShellManager();

Notes

Dans la plupart des cas, vous n’avez pas besoin de créer un CShellManager fichier directement. Par défaut, le framework en crée un pour vous. Pour obtenir un pointeur vers le CShellManager, appelez CWinAppEx ::GetShellManager. Si vous créez un CShellManager fichier manuellement, vous devez l’initialiser avec la méthode CWinAppEx ::InitShellManager.

CShellManager ::FreeItem

Supprime une liste d’éléments.

void FreeItem(LPITEMIDLIST pidl);

Paramètres

pidl
[in] Liste d’éléments à supprimer.

CShellManager ::GetItemCount

Retourne le nombre d’éléments d’une liste d’éléments.

UINT GetItemCount(LPCITEMIDLIST pidl);

Paramètres

pidl
[in] Pointeur vers une liste d’éléments.

Valeur de retour

Nombre d’éléments dans la liste d’éléments.

CShellManager ::GetItemSize

Retourne la taille d’une liste d’éléments.

UINT GetItemSize(LPCITEMIDLIST pidl);

Paramètres

pidl
[in] Pointeur vers une liste d’éléments.

Valeur de retour

Taille de la liste d’éléments.

CShellManager ::GetNextItem

Récupère l’élément suivant à partir d’un pointeur vers une liste d’identificateurs d’élément (PIDL).

LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);

Paramètres

pidl
[in] Liste des éléments à itérer.

Valeur de retour

Pointeur vers l’élément suivant de la liste.

Notes

S’il n’y a plus d’éléments dans la liste, cette méthode retourne NULL.

CShellManager ::GetParentItem

Récupère le parent d’un pointeur vers une liste d’identificateurs d’élément (PIDL).

int GetParentItem(
    LPCITEMIDLIST lpidl,
    LPITEMIDLIST& lpidlParent);

Paramètres

lpidl
[in] PIDL dont le parent sera récupéré.

lpidlParent
[out] Référence à un code PIDL dans lequel la méthode stocke le résultat.

Valeur de retour

Niveau du PIDL parent.

Notes

Le niveau d’un PIDL est relatif au bureau. Le code PIDL de bureau est considéré comme ayant un niveau de 0.

CShellManager ::ItemFromPath

Récupère le pointeur vers une liste d’identificateurs d’élément (PIDL) à partir de l’élément identifié par un chemin de chaîne.

HRESULT ItemFromPath(
    LPCTSTR lpszPath,
    LPITEMIDLIST& pidl);

Paramètres

lpszPath
[in] Chaîne qui spécifie le chemin d’accès de l’élément.

pidl
[out] Référence à un PIDL. La méthode utilise ce code PIDL pour stocker le pointeur vers sa valeur de retour.

Valeur de retour

Retourne NOERROR en cas de réussite ; valeur d’erreur définie par OLE.

Voir aussi

Graphique hiérarchique
Classes