Megosztás a következőn keresztül:


CShellManager osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Számos metódust implementál, amelyek lehetővé teszik az azonosítólistákra mutató mutatók (PIDL-k) használatát.

Szemantika

class CShellManager : public CObject

Tagok

Nyilvános konstruktorok

Név Description
CShellManager::CShellManager Egy CShellManager objektumot hoz létre.

Nyilvános metódusok

Név Description
CShellManager::BrowseForFolder Megjelenít egy párbeszédpanelt, amely lehetővé teszi a felhasználó számára a rendszerhéjmappa kiválasztását.
CShellManager::ConcatenateItem Összefűz két PIDL-t.
CShellManager::CopyItem Létrehoz egy új PIDL-t, és átmásolja a megadott PIDL-t.
CShellManager::CreateItem Létrehoz egy új PIDL-t a megadott méretből.
CShellManager::FreeItem Törli a megadott PIDL-t.
CShellManager::GetItemCount A megadott PIDL-ben lévő elemek számát adja vissza.
CShellManager::GetItemSize A megadott PIDL méretét adja vissza.
CShellManager::GetNextItem A KÖVETKEZŐ elemet adja vissza a PIDL-ből.
CShellManager::GetParentItem Lekéri a megadott elem szülőelemét.
CShellManager::ItemFromPath Lekéri a megadott elérési út által azonosított elemHEZ tartozó PIDL-t.

Megjegyzések

Az osztály módszerei mind CShellManager a PIDL-kkel foglalkoznak. A PIDL egy rendszerhéjobjektum egyedi azonosítója.

Ne hozzon létre manuálisan objektumot CShellManager . Ezt az alkalmazás keretrendszere automatikusan létrehozza. A CWinAppEx::InitShellManager metódust azonban az alkalmazás inicializálási folyamata során kell meghívnia. Ha az alkalmazás felületkezelőjéhez szeretne mutatót kapni, hívja meg a CWinAppEx::GetShellManager parancsot.

Öröklési hierarchia

CObject

CShellManager

Requirements

Fejléc: afxshellmanager.h

CShellManager::BrowseForFolder

Megjelenít egy párbeszédpanelt, amely lehetővé teszi a felhasználó számára a rendszerhéjmappa kiválasztását.

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

Paraméterek

strOutFolder
[kifelé] A metódus által a kijelölt mappa elérési útjának tárolására használt sztring.

pWndParent
[in] Mutató a szülőablakra.

lplszInitialFolder
[in] A párbeszédpanel megjelenésekor alapértelmezés szerint kijelölt mappát tartalmazó sztring.

lpszTitle
[in] A párbeszédpanel címe.

ulFlags
[in] A párbeszédpanel beállításait megjelölő jelzők. A részletes leírásért tekintse meg a BROWSEINFO webhelyet.

piFolderImage
[kifelé] Egy mutató arra az egész számra, ahol a metódus a kijelölt mappa képindexét írja.

Visszaadott érték

Nonzero, ha a felhasználó kiválaszt egy mappát a párbeszédpanelen; egyéb esetben 0.

Megjegyzések

Amikor meghívja ezt a metódust, az alkalmazás létrehoz és megjeleníti a párbeszédpanelt, amely lehetővé teszi, hogy a felhasználó kijelöljön egy mappát. A metódus beírja a mappa elérési útját a strOutFolder paraméterbe.

Example

Az alábbi példa bemutatja, hogyan kérhető le egy CShellManager objektumra mutató hivatkozás a CWinAppEx::GetShellManager metódus használatával és a BrowseForFolder metódus használatával. Ez a kódrészlet az Explorer-minta része.

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

Létrehoz egy két PIDL-t tartalmazó új listát.

LPITEMIDLIST ConcatenateItem(
    LPCITEMIDLIST pidl1,
    LPCITEMIDLIST pidl2);

Paraméterek

pidl1
[in] Az első elem.

pidl2
[in] A második elem.

Visszaadott érték

Az új elemlistára mutató mutató, ha a függvény sikeres, ellenkező esetben NULL.

Megjegyzések

Ez a metódus létrehoz egy új ITEMIDLIST-et , amely elég nagy ahhoz, hogy a pidl1 és a pidl2 is tartalmazzon. Ezután a pidl1 és a pidl2 fájlokat az új listára másolja.

CShellManager::CopyItem

Elemlista másolása.

LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);

Paraméterek

pidlSource
[in] Az eredeti elemlista.

Visszaadott érték

Ha sikeres, mutató az újonnan létrehozott elemlistára; ellenkező esetben NULL.

Megjegyzések

Az újonnan létrehozott elemlista mérete megegyezik a forráselemlistával.

CShellManager::CreateItem

Létrehoz egy új PIDL-t.

LPITEMIDLIST CreateItem(UINT cbSize);

Paraméterek

cbSize
[in] Az elemlista mérete.

Visszaadott érték

A létrehozott elemlistára mutató mutató, ha sikeres; ellenkező esetben NULL.

CShellManager::CShellManager

Egy CShellManager objektumot hoz létre.

CShellManager();

Megjegyzések

A legtöbb esetben nem kell közvetlenül létrehoznia.CShellManager Alapértelmezés szerint a keretrendszer létrehoz egyet az Ön számára. A CWinAppEx::GetShellManager hívásával mutatót CShellManagerkaphat. Ha manuálisan hoz létre egy CShellManager fiókot, inicializálnia kell azt a CWinAppEx::InitShellManager metódussal.

CShellManager::FreeItem

Elemlista törlése.

void FreeItem(LPITEMIDLIST pidl);

Paraméterek

pidl
[in] Törölni kívánt elemlista.

CShellManager::GetItemCount

Egy elemlistában szereplő elemek számát adja vissza.

UINT GetItemCount(LPCITEMIDLIST pidl);

Paraméterek

pidl
[in] Egy elemlistára mutató mutató.

Visszaadott érték

Az elemlistában szereplő elemek száma.

CShellManager::GetItemSize

Egy elemlista méretét adja vissza.

UINT GetItemSize(LPCITEMIDLIST pidl);

Paraméterek

pidl
[in] Egy elemlistára mutató mutató.

Visszaadott érték

Az elemlista mérete.

CShellManager::GetNextItem

Lekéri a következő elemet egy mutatóból egy elemazonosító-listába (PIDL).

LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);

Paraméterek

pidl
[in] Az iterálni kívánt elemek listája.

Visszaadott érték

A lista következő elemére mutató mutató.

Megjegyzések

Ha nincs több elem a listában, ez a metódus NULL értéket ad vissza.

CShellManager::GetParentItem

Egy mutató szülőjének lekérése egy elemazonosító-listához (PIDL).

int GetParentItem(
    LPCITEMIDLIST lpidl,
    LPITEMIDLIST& lpidlParent);

Paraméterek

lpidl
[in] Egy PIDL, amelynek a szülőjét lekéri a rendszer.

lpidlParent
[kifelé] Hivatkozás egy OLYAN PIDL-re, ahol a metódus tárolja az eredményt.

Visszaadott érték

A szülő PIDL szintje.

Megjegyzések

A PIDL szintje az asztalhoz viszonyítva van. Az asztali PIDL 0 szintűnek minősül.

CShellManager::ItemFromPath

Lekéri a mutatót egy elemazonosító-listára (PIDL) egy sztringútvonal által azonosított elemből.

HRESULT ItemFromPath(
    LPCTSTR lpszPath,
    LPITEMIDLIST& pidl);

Paraméterek

lpszPath
[in] Az elem elérési útját meghatározó sztring.

pidl
[kifelé] Hivatkozás egy PIDL-re. A metódus ezt a PIDL-t használja a mutató visszatérési értékére való tárolásához.

Visszaadott érték

A NOERROR értéket adja vissza, ha sikeres; OLE által definiált hibaérték.

Lásd még

hierarchiadiagram
osztályok