CShellManager-Klasse
Implementiert mehrere Möglichkeiten für die Verwendung von Zeigern auf Bezeichnerlisten (PIDLs).
class CShellManager : public CObject
Name | Beschreibung |
---|---|
CShellManager::CShellManager | Erstellt ein CShellManager -Objekt. |
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. |
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.
Header: afxshellmanager.h
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);
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.
Nonzero, wenn der Benutzer einen Ordner aus dem Dialogfeld auswählt; andernfalls 0.
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 .
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);
}
Erstellt eine neue Liste mit zwei PIDLs.
LPITEMIDLIST ConcatenateItem(
LPCITEMIDLIST pidl1,
LPCITEMIDLIST pidl2);
pidl1
[in] Das erste Element.
pidl2
[in] Das zweite Element.
Ein Zeiger auf die neue Elementliste, wenn die Funktion erfolgreich ist, andernfalls NULL.
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.
Kopiert eine Elementliste.
LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);
pidlSource
[in] Die ursprüngliche Elementliste.
Ein Zeiger auf die neu erstellte Elementliste bei erfolgreicher Ausführung; andernfalls NULL.
Die neu erstellte Elementliste hat dieselbe Größe wie die Quellelementliste.
Erstellt eine neue PIDL.
LPITEMIDLIST CreateItem(UINT cbSize);
cbSize
[in] Die Größe der Elementliste.
Ein Zeiger auf die erstellte Elementliste bei erfolgreicher Ausführung; andernfalls NULL.
Erstellt ein CShellManager
-Objekt.
CShellManager();
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.
Löscht eine Elementliste.
void FreeItem(LPITEMIDLIST pidl);
pidl
[in] Eine zu löschende Elementliste.
Gibt die Anzahl der Elemente in einer Elementliste zurück.
UINT GetItemCount(LPCITEMIDLIST pidl);
pidl
[in] Ein Zeiger auf eine Elementliste.
Die Anzahl der Elemente in der Elementliste.
Gibt die Größe einer Elementliste zurück.
UINT GetItemSize(LPCITEMIDLIST pidl);
pidl
[in] Ein Zeiger auf eine Elementliste.
Die Größe der Elementliste.
Ruft das nächste Element von einem Zeiger auf eine Elementbezeichnerliste (PIDL) ab.
LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);
pidl
[in] Die Liste der zu durchlaufenden Elemente.
Ein Zeiger auf das nächste Element in der Liste.
Wenn in der Liste keine weiteren Elemente vorhanden sind, gibt diese Methode NULL zurück.
Ruft das übergeordnete Element eines Zeigers auf eine Elementbezeichnerliste (PIDL) ab.
int GetParentItem(
LPCITEMIDLIST lpidl,
LPITEMIDLIST& lpidlParent);
lpidl
[in] Eine PIDL, deren übergeordnetes Element abgerufen wird.
lpidlParent
[out] Ein Verweis auf eine PIDL, in der die Methode das Ergebnis speichert.
Die Ebene der übergeordneten PIDL.
Die Ebene einer PIDL ist relativ zum Desktop. Die Desktop-PIDL wird als Ebene 0 betrachtet.
Ruft den Zeiger auf eine Elementbezeichnerliste (PIDL) aus dem Element ab, das durch einen Zeichenfolgenpfad identifiziert wird.
HRESULT ItemFromPath(
LPCTSTR lpszPath,
LPITEMIDLIST& pidl);
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.
Gibt NOERROR zurück, wenn dies erfolgreich ist; ein OLE-definierter Fehlerwert.