Share via


CShellManager-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Hiermee worden verschillende methoden geïmplementeerd waarmee u met aanwijzers naar id-lijsten (PIDLs) kunt werken.

Syntaxis

class CShellManager : public CObject

Leden

Openbare constructors

Naam Description
CShellManager::CShellManager Maakt een CShellManager object.

Openbare methoden

Naam Description
CShellManager::BrowseForFolder Hiermee wordt een dialoogvenster weergegeven waarmee de gebruiker een shell-map kan selecteren.
CShellManager::ConcatenateItem Voegt twee PIDLs samen.
CShellManager::CopyItem Hiermee maakt u een nieuwe PIDL en kopieert u de opgegeven PIDL.
CShellManager::CreateItem Hiermee maakt u een nieuwe PIDL van de opgegeven grootte.
CShellManager::FreeItem Hiermee verwijdert u de opgegeven PIDL.
CShellManager::GetItemCount Retourneert het aantal items in de opgegeven PIDL.
CShellManager::GetItemSize Retourneert de grootte van de opgegeven PIDL.
CShellManager::GetNextItem Retourneert het volgende item van de PIDL.
CShellManager::GetParentItem Hiermee wordt het bovenliggende item van het opgegeven item opgehaald.
CShellManager::ItemFromPath Haalt de PIDL op voor het item dat is geïdentificeerd door het opgegeven pad.

Opmerkingen

De methoden van de CShellManager klasse hebben allemaal te maken met PIDLs. Een PIDL is een unieke id voor een shell-object.

U moet geen object handmatig maken CShellManager . Deze wordt automatisch gemaakt door het framework van uw toepassing. U moet echter CWinAppEx::InitShellManager aanroepen tijdens het initialisatieproces van uw toepassing. Als u een aanwijzer naar de shell-manager voor uw toepassing wilt krijgen, roept u CWinAppEx::GetShellManager aan.

Overnamehiërarchie

CObject

CShellManager

Requirements

Koptekst: afxshellmanager.h

CShellManager::BrowseForFolder

Hiermee wordt een dialoogvenster weergegeven waarmee de gebruiker een shell-map kan selecteren.

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

Parameterwaarden

strOutFolder
[uit] De tekenreeks die door de methode wordt gebruikt om het pad van de geselecteerde map op te slaan.

pWndParent
[in] Een aanwijzer naar het bovenliggende venster.

lplszInitialFolder
[in] Een tekenreeks die de map bevat die standaard is geselecteerd wanneer het dialoogvenster wordt weergegeven.

lpszTitle
[in] De titel voor het dialoogvenster.

ulFlags
[in] Vlaggen die opties voor het dialoogvenster opgeven. Zie BROWSEINFO voor de gedetailleerde beschrijving.

piFolderImage
[uit] Een aanwijzer naar de waarde van het gehele getal waarin de methode de afbeeldingsindex van de geselecteerde map schrijft.

Retourwaarde

Niet-nul als de gebruiker een map selecteert in het dialoogvenster; anders 0.

Opmerkingen

Wanneer u deze methode aanroept, maakt de toepassing een dialoogvenster waarmee de gebruiker een map kan selecteren. De methode schrijft het pad van de map naar de parameter strOutFolder .

Example

In het volgende voorbeeld ziet u hoe u een verwijzing naar een CShellManager object ophaalt met behulp van de CWinAppEx::GetShellManager methode en hoe u de BrowseForFolder methode gebruikt. Dit codefragment maakt deel uit van het Explorer-voorbeeld.

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

Hiermee maakt u een nieuwe lijst met twee PIDLs.

LPITEMIDLIST ConcatenateItem(
    LPCITEMIDLIST pidl1,
    LPCITEMIDLIST pidl2);

Parameterwaarden

pidl1
[in] Het eerste item.

pidl2
[in] Het tweede item.

Retourwaarde

Een aanwijzer naar de lijst met nieuwe items als de functie slaagt, anders NULL.

Opmerkingen

Met deze methode wordt een nieuwe ITEMIDLIST gemaakt die groot genoeg is om zowel pidl1 als pidl2 te bevatten. Vervolgens worden pidl1 en pidl2 gekopieerd naar de nieuwe lijst.

CShellManager::CopyItem

Hiermee kopieert u een itemlijst.

LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);

Parameterwaarden

pidlSource
[in] De oorspronkelijke itemlijst.

Retourwaarde

Een aanwijzer naar de zojuist gemaakte itemlijst, indien geslaagd; anders NULL.

Opmerkingen

De zojuist gemaakte itemlijst heeft dezelfde grootte als de lijst met bronitems.

CShellManager::CreateItem

Hiermee maakt u een nieuwe PIDL.

LPITEMIDLIST CreateItem(UINT cbSize);

Parameterwaarden

cbSize
[in] De grootte van de itemlijst.

Retourwaarde

Een aanwijzer naar de lijst met gemaakte items als dit lukt; anders NULL.

CShellManager::CShellManager

Maakt een CShellManager object.

CShellManager();

Opmerkingen

In de meeste gevallen hoeft u niet rechtstreeks een CShellManager maken. Standaard maakt het framework er een voor u. Als u een aanwijzer naar de CShellManageraanwijzer wilt krijgen, roept u CWinAppEx::GetShellManager aan. Als u een CShellManager handmatige methode maakt, moet u deze initialiseren met de methode CWinAppEx::InitShellManager.

CShellManager::FreeItem

Hiermee verwijdert u een itemlijst.

void FreeItem(LPITEMIDLIST pidl);

Parameterwaarden

Pidl
[in] Een itemlijst die u wilt verwijderen.

CShellManager::GetItemCount

Retourneert het aantal items in een itemlijst.

UINT GetItemCount(LPCITEMIDLIST pidl);

Parameterwaarden

Pidl
[in] Een aanwijzer naar een itemlijst.

Retourwaarde

Het aantal items in de itemlijst.

CShellManager::GetItemSize

Retourneert de grootte van een itemlijst.

UINT GetItemSize(LPCITEMIDLIST pidl);

Parameterwaarden

Pidl
[in] Een aanwijzer naar een itemlijst.

Retourwaarde

De grootte van de itemlijst.

CShellManager::GetNextItem

Hiermee wordt het volgende item opgehaald van een aanwijzer naar een lijst met item-id's (PIDL).

LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);

Parameterwaarden

Pidl
[in] De lijst met items die moeten worden herhaald.

Retourwaarde

Een aanwijzer naar het volgende item in de lijst.

Opmerkingen

Als er geen items meer in de lijst staan, retourneert deze methode NULL.

CShellManager::GetParentItem

Hiermee wordt het bovenliggende item van een aanwijzer opgehaald naar een lijst met item-id's (PIDL).

int GetParentItem(
    LPCITEMIDLIST lpidl,
    LPITEMIDLIST& lpidlParent);

Parameterwaarden

lpidl
[in] Een PIDL waarvan het bovenliggende item wordt opgehaald.

lpidlParent
[uit] Een verwijzing naar een PIDL waar de methode het resultaat opslaat.

Retourwaarde

Het niveau van de bovenliggende PIDL.

Opmerkingen

Het niveau van een PIDL is relatief ten opzichte van het bureaublad. De PIDL van het bureaublad wordt beschouwd als een niveau van 0.

CShellManager::ItemFromPath

Haalt de aanwijzer op naar een lijst met item-id's (PIDL) uit het item dat is geïdentificeerd door een tekenreekspad.

HRESULT ItemFromPath(
    LPCTSTR lpszPath,
    LPITEMIDLIST& pidl);

Parameterwaarden

lpszPath
[in] Een tekenreeks die het pad voor het item aangeeft.

Pidl
[uit] Een verwijzing naar een PIDL. De methode gebruikt deze PIDL om de aanwijzer op te slaan in de retourwaarde.

Retourwaarde

Retourneert NOERROR indien geslaagd; een OLE-gedefinieerde foutwaarde.

Zie ook

Hiërarchiegrafiek
Klassen