Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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
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.