CShellManager-Klasse
Implementiert mehrere Möglichkeiten für die Verwendung von Zeigern auf Bezeichnerlisten (PIDLs).
Syntax
class CShellManager : public CObject
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CShellManager::CShellManager | Erstellt ein CShellManager -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CShellManager::BrowseForFolder | Zeigt ein Dialogfeld an, in dem der Benutzer einen Shellordner auswählen kann. |
CShellManager::ConcatenateItem | Verkettet zwei PIDLs. |
CShellManager::CopyItem | Erstellt eine neue PIDL und kopiert die bereitgestellten PIDL darin. |
CShellManager::CreateItem | Erstellt eine neue PIDL der angegebenen Größe. |
CShellManager::FreeItem | Löscht die bereitgestellte PIDL. |
CShellManager::GetItemCount | Gibt die Anzahl der Elemente in der angegebenen PIDL zurück. |
CShellManager::GetItemSize | Gibt die Größe der bereitgestellten PIDL zurück. |
CShellManager::GetNextItem | Gibt das nächste Element aus der PIDL zurück. |
CShellManager::GetParentItem | Ruft das übergeordnete Element des angegebenen Elements ab. |
CShellManager::ItemFromPath | Ruft die PIDL für das vom angegebenen Pfad identifizierte Element ab. |
Hinweise
Die Methoden der CShellManager
Klasse behandeln alle PIDLs. Eine PIDL ist ein eindeutiger Bezeichner für ein Shellobjekt.
Sie sollten ein CShellManager
Objekt nicht manuell erstellen. Sie wird automatisch vom Framework Ihrer Anwendung erstellt. Sie sollten jedoch CWinAppEx::InitShellManager während des Initialisierungsprozesses Ihrer Anwendung aufrufen. Rufen Sie CWinAppEx::GetShellManager auf, um einen Zeiger auf den Shell-Manager für Ihre Anwendung abzurufen.
Vererbungshierarchie
Anforderungen
Header: afxshellmanager.h
CShellManager::BrowseForFolder
Zeigt ein Dialogfeld an, in dem der Benutzer einen Shellordner auswählen kann.
BOOL BrowseForFolder(
CString& strOutFolder,
CWnd* pWndParent = NULL,
LPCTSTR lplszInitialFolder = NULL,
LPCTSTR lpszTitle = NULL,
UINT ulFlags = BIF_RETURNONLYFSDIRS,
LPINT piFolderImage = NULL);
Parameter
strOutFolder
[out] Die Zeichenfolge, die von der Methode zum Speichern des Pfads des ausgewählten Ordners verwendet wird.
pWndParent
[in] Ein Zeiger auf das übergeordnete Fenster.
lplszInitialFolder
[in] Eine Zeichenfolge, die den Ordner enthält, der standardmäßig ausgewählt ist, wenn das Dialogfeld angezeigt wird.
lpszTitle
[in] Der Titel für das Dialogfeld.
ulFlags
[in] Flags, die Optionen für das Dialogfeld angeben. Ausführliche Beschreibung finden Sie unter BROWSEINFO .
piFolderImage
[out] Ein Zeiger auf den ganzzahligen Wert, in dem die Methode den Bildindex des ausgewählten Ordners schreibt.
Rückgabewert
Nonzero, wenn der Benutzer einen Ordner aus dem Dialogfeld auswählt; andernfalls 0.
Hinweise
Wenn Sie diese Methode aufrufen, wird von der Anwendung ein Dialogfeld erstellt und angezeigt, in dem der Benutzer einen Ordner auswählen kann. Die Methode schreibt den Pfad des Ordners in den strOutFolder-Parameter .
Beispiel
Im folgenden Beispiel wird das Abrufen eines Verweises auf ein CShellManager
Objekt mithilfe der CWinAppEx::GetShellManager
Methode und der Verwendung der BrowseForFolder
Methode veranschaulicht. Dieser Codeausschnitt ist Teil des Explorer-Beispiels.
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
Erstellt eine neue Liste mit zwei PIDLs.
LPITEMIDLIST ConcatenateItem(
LPCITEMIDLIST pidl1,
LPCITEMIDLIST pidl2);
Parameter
pidl1
[in] Das erste Element.
pidl2
[in] Das zweite Element.
Rückgabewert
Ein Zeiger auf die neue Elementliste, wenn die Funktion erfolgreich ist, andernfalls NULL.
Hinweise
Diese Methode erstellt eine neue ITEMIDLIST groß genug, um pidl1 und pidl2 zu enthalten. Anschließend wird pidl1 und pidl2 in die neue Liste kopiert.
CShellManager::CopyItem
Kopiert eine Elementliste.
LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);
Parameter
pidlSource
[in] Die ursprüngliche Elementliste.
Rückgabewert
Ein Zeiger auf die neu erstellte Elementliste bei erfolgreicher Ausführung; andernfalls NULL.
Hinweise
Die neu erstellte Elementliste hat dieselbe Größe wie die Quellelementliste.
CShellManager::CreateItem
Erstellt eine neue PIDL.
LPITEMIDLIST CreateItem(UINT cbSize);
Parameter
cbSize
[in] Die Größe der Elementliste.
Rückgabewert
Ein Zeiger auf die erstellte Elementliste bei erfolgreicher Ausführung; andernfalls NULL.
CShellManager::CShellManager
Erstellt ein CShellManager
-Objekt.
CShellManager();
Hinweise
In den meisten Fällen müssen Sie keinen direkten Erstellen CShellManager
. Standardmäßig erstellt das Framework ein Framework für Sie. Rufen Sie zum Abrufen eines Zeigers auf den CShellManager
CWinAppEx::GetShellManager auf. Wenn Sie einen CShellManager
manuellen Vorgang erstellen, müssen Sie ihn mit der Methode CWinAppEx::InitShellManager initialisieren.
CShellManager::FreeItem
Löscht eine Elementliste.
void FreeItem(LPITEMIDLIST pidl);
Parameter
pidl
[in] Eine zu löschende Elementliste.
CShellManager::GetItemCount
Gibt die Anzahl der Elemente in einer Elementliste zurück.
UINT GetItemCount(LPCITEMIDLIST pidl);
Parameter
pidl
[in] Ein Zeiger auf eine Elementliste.
Rückgabewert
Die Anzahl der Elemente in der Elementliste.
CShellManager::GetItemSize
Gibt die Größe einer Elementliste zurück.
UINT GetItemSize(LPCITEMIDLIST pidl);
Parameter
pidl
[in] Ein Zeiger auf eine Elementliste.
Rückgabewert
Die Größe der Elementliste.
CShellManager::GetNextItem
Ruft das nächste Element von einem Zeiger auf eine Elementbezeichnerliste (PIDL) ab.
LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);
Parameter
pidl
[in] Die Liste der zu durchlaufenden Elemente.
Rückgabewert
Ein Zeiger auf das nächste Element in der Liste.
Hinweise
Wenn in der Liste keine weiteren Elemente vorhanden sind, gibt diese Methode NULL zurück.
CShellManager::GetParentItem
Ruft das übergeordnete Element eines Zeigers auf eine Elementbezeichnerliste (PIDL) ab.
int GetParentItem(
LPCITEMIDLIST lpidl,
LPITEMIDLIST& lpidlParent);
Parameter
lpidl
[in] Eine PIDL, deren übergeordnetes Element abgerufen wird.
lpidlParent
[out] Ein Verweis auf eine PIDL, in der die Methode das Ergebnis speichert.
Rückgabewert
Die Ebene der übergeordneten PIDL.
Hinweise
Die Ebene einer PIDL ist relativ zum Desktop. Die Desktop-PIDL wird als Ebene 0 betrachtet.
CShellManager::ItemFromPath
Ruft den Zeiger auf eine Elementbezeichnerliste (PIDL) aus dem Element ab, das durch einen Zeichenfolgenpfad identifiziert wird.
HRESULT ItemFromPath(
LPCTSTR lpszPath,
LPITEMIDLIST& pidl);
Parameter
lpszPath
[in] Eine Zeichenfolge, die den Pfad für das Element angibt.
pidl
[out] Ein Verweis auf eine PIDL. Die Methode verwendet diese PIDL, um den Zeiger auf den Rückgabewert zu speichern.
Rückgabewert
Gibt NOERROR zurück, wenn dies erfolgreich ist; ein OLE-definierter Fehlerwert.