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
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.