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
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ę CShellManager
CWinAppEx::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.