Udostępnij za pośrednictwem


Klasa CShellManager

Implementuje kilka metod, które umożliwiają pracę ze wskaźnikami do list identyfikatorów (PIDLs).

Składnia

class CShellManager : public CObject

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CShellManager::CShellManager CShellManager Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CShellManager::BrowseForFolder Wyświetla okno dialogowe, które umożliwia użytkownikowi wybranie folderu powłoki.
CShellManager::ConcatenateItem Łączy dwie listy PIDLS.
CShellManager::CopyItem Tworzy nowy kod PIDL i kopiuje do niego podany kod PIDL.
CShellManager::CreateItem Tworzy nowy kod PIDL o określonym rozmiarze.
CShellManager::FreeItem Usuwa podany plik PIDL.
CShellManager::GetItemCount Zwraca liczbę elementów w podanym identyfikatorze PIDL.
CShellManager::GetItemSize Zwraca rozmiar dostarczonego identyfikatora PIDL.
CShellManager::GetNextItem Zwraca następny element z piDL.
CShellManager::GetParentItem Pobiera element nadrzędny podanego elementu.
CShellManager::ItemFromPath Pobiera identyfikator PIDL dla elementu zidentyfikowany przez podaną ścieżkę.

Uwagi

Metody CShellManager klasy zajmują się listami PIDLs. PiDL to unikatowy identyfikator obiektu powłoki.

Nie należy ręcznie tworzyć CShellManager obiektu. Zostanie ona utworzona automatycznie przez strukturę aplikacji. Należy jednak wywołać metodę CWinAppEx::InitShellManager podczas procesu inicjowania aplikacji. Aby uzyskać wskaźnik do menedżera powłoki dla aplikacji, wywołaj polecenie CWinAppEx::GetShellManager.

Hierarchia dziedziczenia

Obiekt CObject

CShellManager

Wymagania

Nagłówek: afxshellmanager.h

CShellManager::BrowseForFolder

Wyświetla okno dialogowe, które umożliwia użytkownikowi wybranie folderu powłoki.

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

Parametry

strOutFolder
[out] Ciąg używany przez metodę do przechowywania ścieżki wybranego folderu.

pWndParent
[in] Wskaźnik do okna nadrzędnego.

lplszInitialFolder
[in] Ciąg zawierający folder wybrany domyślnie po wyświetleniu okna dialogowego.

lpszTitle
[in] Tytuł okna dialogowego.

ulFlags
[in] Flagi określające opcje okna dialogowego. Aby uzyskać szczegółowy opis, zobacz BROWSEINFO .

piFolderImage
[out] Wskaźnik do wartości całkowitej, w której metoda zapisuje indeks obrazu wybranego folderu.

Wartość zwracana

Nonzero, jeśli użytkownik wybierze folder z okna dialogowego; w przeciwnym razie 0.

Uwagi

Po wywołaniu tej metody aplikacja tworzy i wyświetla okno dialogowe, które umożliwia użytkownikowi wybranie folderu. Metoda zapisze ścieżkę folderu do parametru strOutFolder .

Przykład

W poniższym przykładzie pokazano, jak pobrać odwołanie do CShellManager obiektu przy użyciu CWinAppEx::GetShellManager metody i jak używać BrowseForFolder metody . Ten fragment kodu jest częścią przykładu Eksploratora.

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

Tworzy nową listę zawierającą dwie listy PIDLs.

LPITEMIDLIST ConcatenateItem(
    LPCITEMIDLIST pidl1,
    LPCITEMIDLIST pidl2);

Parametry

pidl1
[in] Pierwszy element.

pidl2
[in] Drugi element.

Wartość zwracana

Wskaźnik do nowej listy elementów, jeśli funkcja powiedzie się, w przeciwnym razie wartość NULL.

Uwagi

Ta metoda tworzy nowy element ITEMIDLIST wystarczająco duży, aby zawierał zarówno pidl1 , jak i pidl2. Następnie kopiuje pidl1 i pidl2 do nowej listy.

CShellManager::CopyItem

Kopiuje listę elementów.

LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);

Parametry

pidlSource
[in] Oryginalna lista elementów.

Wartość zwracana

Wskaźnik do nowo utworzonej listy elementów, jeśli się powiedzie; w przeciwnym razie wartość NULL.

Uwagi

Nowo utworzona lista elementów ma taki sam rozmiar jak lista elementów źródłowych.

CShellManager::CreateItem

Tworzy nowy kod PIDL.

LPITEMIDLIST CreateItem(UINT cbSize);

Parametry

cbSize
[in] Rozmiar listy elementów.

Wartość zwracana

Wskaźnik do listy utworzonych elementów, jeśli się powiedzie; w przeciwnym razie wartość NULL.

CShellManager::CShellManager

CShellManager Tworzy obiekt.

CShellManager();

Uwagi

W większości przypadków nie trzeba tworzyć bezpośrednio CShellManager . Domyślnie platforma tworzy jedną dla Ciebie. Aby uzyskać wskaźnik do elementu , wywołaj metodę CShellManagerCWinAppEx::GetShellManager. Jeśli tworzysz CShellManager ręcznie, musisz zainicjować go za pomocą metody CWinAppEx::InitShellManager.

CShellManager::FreeItem

Usuwa listę elementów.

void FreeItem(LPITEMIDLIST pidl);

Parametry

pidl
[in] Lista elementów do usunięcia.

CShellManager::GetItemCount

Zwraca liczbę elementów na liście elementów.

UINT GetItemCount(LPCITEMIDLIST pidl);

Parametry

pidl
[in] Wskaźnik do listy elementów.

Wartość zwracana

Liczba elementów na liście elementów.

CShellManager::GetItemSize

Zwraca rozmiar listy elementów.

UINT GetItemSize(LPCITEMIDLIST pidl);

Parametry

pidl
[in] Wskaźnik do listy elementów.

Wartość zwracana

Rozmiar listy elementów.

CShellManager::GetNextItem

Pobiera następny element ze wskaźnika do listy identyfikatorów elementów (PIDL).

LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);

Parametry

pidl
[in] Lista elementów do iterowania.

Wartość zwracana

Wskaźnik do następnego elementu na liście.

Uwagi

Jeśli na liście nie ma więcej elementów, ta metoda zwraca wartość NULL.

CShellManager::GetParentItem

Pobiera element nadrzędny wskaźnika do listy identyfikatorów elementów (PIDL).

int GetParentItem(
    LPCITEMIDLIST lpidl,
    LPITEMIDLIST& lpidlParent);

Parametry

lpidl
[in] PiDL, którego element nadrzędny zostanie pobrany.

lpidlParent
[out] Odwołanie do piDL, w którym metoda będzie przechowywać wynik.

Wartość zwracana

Poziom nadrzędnego identyfikatora PIDL.

Uwagi

Poziom piDL jest względny względem pulpitu. Pulpit PIDL jest uważany za poziom 0.

CShellManager::ItemFromPath

Pobiera wskaźnik do listy identyfikatorów elementów (PIDL) z elementu zidentyfikowanego przez ścieżkę ciągu.

HRESULT ItemFromPath(
    LPCTSTR lpszPath,
    LPITEMIDLIST& pidl);

Parametry

lpszPath
[in] Ciąg określający ścieżkę elementu.

pidl
[out] Odwołanie do piDL. Metoda używa tego identyfikatora PIDL do przechowywania wskaźnika do zwracanej wartości.

Wartość zwracana

Zwraca błąd NOERROR w przypadku powodzenia; wartość błędu zdefiniowanego przez ole.

Zobacz też

Wykres hierarchii
Klasy