次の方法で共有


CShellManager クラス

ID リストへのポインター (PIDL) を操作するためのさまざまなメソッドを実装します。

構文

class CShellManager : public CObject

メンバー

パブリック コンストラクター

名前 説明
CShellManager::CShellManager CShellManager オブジェクトを構築します。

パブリック メソッド

名前 説明
CShellManager::BrowseForFolder ユーザーがシェル フォルダーを選択できるようにするダイアログ ボックスを表示します。
CShellManager::ConcatenateItem 2 つの PIDL を連結します。
CShellManager::CopyItem 新しい PIDL を作成し、指定された PIDL をコピーします。
CShellManager::CreateItem 指定したサイズの新しい PIDL を作成します。
CShellManager::FreeItem 指定された PIDL を削除します。
CShellManager::GetItemCount 指定された PIDL 内の項目の数を返します。
CShellManager::GetItemSize 指定された PIDL のサイズを返します。
CShellManager::GetNextItem PIDL から次の項目を返します。
CShellManager::GetParentItem 指定された項目の親項目を取得します。
CShellManager::ItemFromPath 指定されたパスによって識別される項目の PIDL を取得します。

解説

CShellManager クラスのメソッドはすべて PIDL を処理します。 PIDL は、シェル オブジェクトの一意の識別子です。

CShellManager オブジェクトは手動で作成しないでください。 アプリケーションのフレームワークによって自動的に作成されます。 ただし、アプリケーションの初期化プロセス中に CWinAppEx::InitShellManager を呼び出す必要があります。 アプリケーションのシェル マネージャーへのポインターを取得するには、 CWinAppEx::GetShellManager を呼び出します。

継承階層

CObject

CShellManager

要件

Header: afxshellmanager.h

CShellManager::BrowseForFolder

ユーザーがシェル フォルダーを選択できるようにするダイアログ ボックスを表示します。

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

パラメーター

strOutFolder
[out]選択したフォルダーのパスを格納するためにメソッドによって使用される文字列。

pWndParent
[in]親ウィンドウへのポインター。

lplszInitialFolder
[in]ダイアログ ボックスが表示されるときに既定で選択されるフォルダーを含む文字列。

lpszTitle
[in]ダイアログ ボックスのタイトル。

ulFlags
[in]ダイアログ ボックスのオプションを指定するフラグ。 詳細な説明については、 BROWSEINFO を参照してください。

piFolderImage
[out]メソッドが選択したフォルダーのイメージ インデックスを書き込む整数値へのポインター。

戻り値

ユーザーがダイアログ ボックスからフォルダーを選択した場合は 0 以外。それ以外の場合は 0。

解説

このメソッドを呼び出すと、ユーザーがフォルダーを選択できるダイアログ ボックスがアプリケーションによって作成されて表示されます。 このメソッドは、フォルダーのパスを strOutFolder パラメーターに書き込みます。

次の例では、CWinAppEx::GetShellManager メソッドを使用してCShellManager オブジェクトへの参照を取得する方法と、BrowseForFolder メソッドを使用する方法を示します。 このコード スニペットは、 Explorer サンプルの一部です。

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

2 つの PIDL を含む新しいリストを作成します。

LPITEMIDLIST ConcatenateItem(
    LPCITEMIDLIST pidl1,
    LPCITEMIDLIST pidl2);

パラメーター

pidl1
[in]最初の項目。

pidl2
[in]2 番目の項目。

戻り値

関数が成功した場合は新しい項目リストへのポインター。それ以外の場合は NULL。

解説

このメソッドは、pidl1pidl2 の両方を含めるのに十分な大きさ新しい ITEMIDLIST を作成します。 次に、 pidl1 および pidl2 を新しいリストにコピーします。

CShellManager::CopyItem

アイテム リストをコピーします。

LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);

パラメーター

pidlSource
[in]元の項目リスト。

戻り値

成功した場合は、新しく作成された項目リストへのポインター。それ以外の場合は NULL。

解説

新しく作成された項目リストのサイズは、ソースアイテムリストと同じです。

CShellManager::CreateItem

新しい PIDL を作成します。

LPITEMIDLIST CreateItem(UINT cbSize);

パラメーター

cbSize
[in]項目リストのサイズ。

戻り値

成功した場合は、作成された項目リストへのポインター。それ以外の場合は NULL。

CShellManager::CShellManager

CShellManager オブジェクトを構築します。

CShellManager();

解説

ほとんどの場合、 CShellManager を直接作成する必要はありません。 既定では、フレームワークによって自動的に作成されます。 CShellManagerへのポインターを取得するには、CWinAppEx::GetShellManager を呼び出します。 CShellManagerを手動で作成する場合は、メソッド CWinAppEx::InitShellManager で初期化する必要があります。

CShellManager::FreeItem

項目リストを削除します。

void FreeItem(LPITEMIDLIST pidl);

パラメーター

pidl
[in]削除する項目リスト。

CShellManager::GetItemCount

アイテム リスト内のアイテムの数を返します。

UINT GetItemCount(LPCITEMIDLIST pidl);

パラメーター

pidl
[in]項目リストへのポインター。

戻り値

項目リスト内の項目の数。

CShellManager::GetItemSize

項目リストのサイズを返します。

UINT GetItemSize(LPCITEMIDLIST pidl);

パラメーター

pidl
[in]項目リストへのポインター。

戻り値

項目リストのサイズ。

CShellManager::GetNextItem

項目識別子リスト (PIDL) へのポインターから次の項目を取得します。

LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);

パラメーター

pidl
[in]反復処理する項目の一覧。

戻り値

リスト内の次の項目へのポインター。

解説

リストにこれ以上項目がない場合、このメソッドは NULL を返します。

CShellManager::GetParentItem

項目識別子リスト (PIDL) へのポインターの親を取得します。

int GetParentItem(
    LPCITEMIDLIST lpidl,
    LPITEMIDLIST& lpidlParent);

パラメーター

lpidl
[in]親を取得する PIDL。

lpidlParent
[out]メソッドが結果を格納する PIDL への参照。

戻り値

親 PIDL のレベル。

解説

PIDL のレベルは、デスクトップに対して相対的です。 デスクトップ PIDL のレベルは 0 と見なされます。

CShellManager::ItemFromPath

文字列パスで識別される項目から項目識別子リスト (PIDL) へのポインターを取得します。

HRESULT ItemFromPath(
    LPCTSTR lpszPath,
    LPITEMIDLIST& pidl);

パラメーター

lpszPath
[in]項目のパスを指定する文字列。

pidl
[out]PIDL への参照。 メソッドは、この PIDL を使用して、戻り値へのポインターを格納します。

戻り値

成功した場合は NOERROR を返します。OLE で定義されたエラー値。

関連項目

階層図
クラス