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 を呼び出します。
継承階層
要件
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。
解説
このメソッドは、pidl1 と pidl2 の両方を含めるのに十分な大きさ新しい 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 で定義されたエラー値。