Freigeben über


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

CObject

CShellManager

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 CShellManagerCWinAppEx::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.

Siehe auch

Hierarchiediagramm
Klassen