CShellManager – třída
Implementuje několik metod, které umožňují pracovat s ukazateli na seznamy identifikátorů (PIDLs).
Syntaxe
class CShellManager : public CObject
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CShellManager::CShellManager | CShellManager Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CShellManager::BrowseForFolder | Zobrazí dialogové okno, které uživateli umožňuje vybrat složku prostředí. |
CShellManager::ConcatenateItem | Zřetězí dva kódy PIN. |
CShellManager::CopyItem | Vytvoří nový PIDL a zkopíruje do něj zadaný PIDL. |
CShellManager::CreateItem | Vytvoří nový PIDL zadané velikosti. |
CShellManager::FreeItem | Odstraní zadaný PIDL. |
CShellManager::GetItemCount | Vrátí počet položek v zadaném PIDL. |
CShellManager::GetItemSize | Vrátí velikost zadaného PIDL. |
CShellManager::GetNextItem | Vrátí další položku z PIDL. |
CShellManager::GetParentItem | Načte nadřazenou položku zadané položky. |
CShellManager::ItemFromPath | Načte PIDL pro položku identifikovanou zadanou cestou. |
Poznámky
Metody CShellManager
třídy se týkají kódů PIDL. PIDL je jedinečný identifikátor objektu prostředí.
Objekt byste neměli vytvářet CShellManager
ručně. Vytvoří se automaticky v rámci vaší aplikace. Během procesu inicializace aplikace byste však měli volat CWinAppEx::InitShellManager . Pokud chcete získat ukazatel na správce prostředí pro vaši aplikaci, zavolejte CWinAppEx::GetShellManager.
Hierarchie dědičnosti
Požadavky
Hlavička: afxshellmanager.h
CShellManager::BrowseForFolder
Zobrazí dialogové okno, které uživateli umožňuje vybrat složku prostředí.
BOOL BrowseForFolder(
CString& strOutFolder,
CWnd* pWndParent = NULL,
LPCTSTR lplszInitialFolder = NULL,
LPCTSTR lpszTitle = NULL,
UINT ulFlags = BIF_RETURNONLYFSDIRS,
LPINT piFolderImage = NULL);
Parametry
strOutFolder
[ven] Řetězec používaný metodou k uložení cesty k vybrané složce.
pWndParent
[v] Ukazatel na nadřazené okno.
lplszInitialFolder
[v] Řetězec obsahující složku, která je ve výchozím nastavení vybrána při zobrazení dialogového okna.
lpszTitle
[v] Název dialogového okna.
ulFlags
[v] Příznaky určující možnosti dialogového okna. Podrobný popis najdete v části BROWSEINFO .
piFolderImage
[ven] Ukazatel na celočíselnou hodnotu, kde metoda zapíše index obrázku vybrané složky.
Návratová hodnota
Nenulové, pokud uživatel vybere složku z dialogového okna; jinak 0.
Poznámky
Při volání této metody aplikace vytvoří a zobrazí dialogové okno, které uživateli umožní vybrat složku. Metoda zapíše cestu ke složce do parametru strOutFolder .
Příklad
Následující příklad ukazuje, jak načíst odkaz na CShellManager
objekt pomocí CWinAppEx::GetShellManager
metody a jak použít metodu BrowseForFolder
. Tento fragment kódu je součástí ukázky Průzkumníka.
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
Vytvoří nový seznam obsahující dva pidly.
LPITEMIDLIST ConcatenateItem(
LPCITEMIDLIST pidl1,
LPCITEMIDLIST pidl2);
Parametry
pidl1
[v] První položka.
pidl2
[v] Druhá položka.
Návratová hodnota
Ukazatel na nový seznam položek, pokud je funkce úspěšná, jinak NULL.
Poznámky
Tato metoda vytvoří nový ITEMIDLIST dostatečně velký, aby obsahoval pidl1 i pidl2. Pak zkopíruje pidl1 a pidl2 do nového seznamu.
CShellManager::CopyItem
Zkopíruje seznam položek.
LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);
Parametry
pidlSource
[v] Původní seznam položek.
Návratová hodnota
Ukazatel na nově vytvořený seznam položek v případě úspěchu; jinak NULL.
Poznámky
Nově vytvořený seznam položek má stejnou velikost jako seznam zdrojových položek.
CShellManager::CreateItem
Vytvoří nový PIDL.
LPITEMIDLIST CreateItem(UINT cbSize);
Parametry
CbSize
[v] Velikost seznamu položek.
Návratová hodnota
Ukazatel na seznam vytvořených položek v případě úspěchu; jinak NULL.
CShellManager::CShellManager
CShellManager
Vytvoří objekt.
CShellManager();
Poznámky
Ve většině případů nemusíte vytvářet CShellManager
přímo. Ve výchozím nastavení rozhraní vytvoří jednu za vás. Chcete-li získat ukazatel na CShellManager
, volání CWinAppEx::GetShellManager. Pokud vytvoříte CShellManager
ručně, musíte ji inicializovat pomocí metody CWinAppEx::InitShellManager.
CShellManager::FreeItem
Odstraní seznam položek.
void FreeItem(LPITEMIDLIST pidl);
Parametry
pidl
[v] Seznam položek, který chcete odstranit.
CShellManager::GetItemCount
Vrátí počet položek v seznamu položek.
UINT GetItemCount(LPCITEMIDLIST pidl);
Parametry
pidl
[v] Ukazatel na seznam položek
Návratová hodnota
Počet položek v seznamu položek
CShellManager::GetItemSize
Vrátí velikost seznamu položek.
UINT GetItemSize(LPCITEMIDLIST pidl);
Parametry
pidl
[v] Ukazatel na seznam položek
Návratová hodnota
Velikost seznamu položek.
CShellManager::GetNextItem
Načte další položku z ukazatele na seznam identifikátorů položek (PIDL).
LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);
Parametry
pidl
[v] Seznam položek, které se mají iterovat.
Návratová hodnota
Ukazatel na další položku v seznamu.
Poznámky
Pokud v seznamu nejsou žádné další položky, vrátí tato metoda hodnotu NULL.
CShellManager::GetParentItem
Načte nadřazenou položku ukazatele na seznam identifikátorů položek (PIDL).
int GetParentItem(
LPCITEMIDLIST lpidl,
LPITEMIDLIST& lpidlParent);
Parametry
lpidl
[v] A PIDL, jehož nadřazený objekt se načte.
lpidlParent
[ven] Odkaz na PIDL, kde metoda uloží výsledek.
Návratová hodnota
Úroveň nadřazeného PIDL.
Poznámky
Úroveň PIDL je relativní vzhledem k ploše. Desktop PIDL se považuje za úroveň 0.
CShellManager::ItemFromPath
Načte ukazatel na seznam identifikátorů položek (PIDL) z položky identifikované cestou řetězce.
HRESULT ItemFromPath(
LPCTSTR lpszPath,
LPITEMIDLIST& pidl);
Parametry
lpszPath
[v] Řetězec, který určuje cestu k položce.
pidl
[ven] Odkaz na PIDL. Metoda používá tento PIDL k uložení ukazatele na jeho návratovou hodnotu.
Návratová hodnota
Vrátí chybu NOERROR, pokud je úspěšná; chybová hodnota definovaná ole.