INamespaceWalk::Walk メソッド (shobjidl_core.h)
指定したルートから特定の深さまでの名前空間の再帰的なウォークを開始します。
構文
HRESULT Walk(
[in] IUnknown *punkToWalk,
[in] DWORD dwFlags,
[in] int cDepth,
[in] INamespaceWalkCB *pnswcb
);
パラメーター
[in] punkToWalk
種類: IUnknown*
ウォークを開始するルート ノード。 これは、次のいずれかのオブジェクトで表すことができます。
デスクトップの IShellFolder をルートとして指定すると、 cDepth が十分に大きい場合に Windows 名前空間全体をウォークする可能性があります。[in] dwFlags
型: DWORD
ウォーク操作を制御する次の 1 つ以上のフラグ。
NSWF_DEFAULT (0x00000000)
他のフラグを設定しない場合は、この値を使用します。
NSWF_NONE_IMPLIES_ALL (0x00000001)
両方の条件が満たされている場合は、フォルダー内のすべてのアイテムを収集します。
- punkToWalk はフォルダー (IShellFolder または IShellView) です。
- フォルダー内のアイテムは現在選択されていません。
NSWF_ONE_IMPLIES_ALL (0x00000002)
両方の条件が満たされている場合は、フォルダー内のすべてのアイテムを収集します。
- punkToWalk はフォルダー (IShellFolder または IShellView) です。
- フォルダー内の項目の 1 つが現在選択されています。
NSWF_DONT_TRAVERSE_LINKS (0x00000004)
再帰のリンク (.lnk、.url、およびフォルダー ショートカット) に従わないでください。代わりに、通常の項目として返します。
NSWF_DONT_ACCUMULATE_RESULT (0x00000008)
名前空間のウォーク中にノードの PID を収集しないでください。
NSWF_TRAVERSE_STREAM_JUNCTIONS (0x00000010)
ウォークにストリーム ジャンクション ポイントのコンテンツを含めます。 たとえば、.cab ファイルの内容について説明します。
NSWF_FILESYSTEM_ONLY (0x00000020)
ファイル システム ノードのみをウォークします。
NSWF_SHOW_PROGRESS (0x00000040)
名前空間の移動中に、進行状況バーを含むダイアログ ボックスを表示します。
NSWF_FLAG_VIEWORDER (0x00000080)
ビューの順序でアイテムを返します。 これは、 punkToWalk が IShellView オブジェクトである場合にのみ適用されます。
NSWF_IGNORE_AUTOPLAY_HIDA (0x00000100)
データ オブジェクトで自動再生 HIDA を使用しないでください。 punkToWalk が IDataObject オブジェクトの場合にのみ適用されます。
NSWF_ASYNC (0x00000200)
バックグラウンド スレッドで実行して、ウォークを非同期的に実行します。
NSWF_DONT_RESOLVE_LINKS (0x00000400)
リンクを走査してターゲットを返します (.lnk、.url、フォルダーのショートカットの場合) が、それらのターゲットが存在することを確認しません (解決)。 これは最適化であり、不足しているターゲットまたは移動されたターゲットが見つかって返される場合を除き、結果には影響しません。
NSWF_ACCUMULATE_FOLDERS (0x00000800)
NSWF_DONT_SORT (0x00001000)
ウォークされる項目の並べ替え順序を維持しないでください。
NSWF_USE_TRANSFER_MEDIUM (0x00002000)
NSWF_DONT_TRAVERSE_STREAM_JUNCTIONS (0x00004000)
NSWF_ANY_IMPLIES_ALL (0x00008000)
Windows 8で導入されました。
[in] cDepth
型: int
名前空間階層の降順の最大深度。 この深さは 0 から始まります。 punkToWalk によって識別されるフォルダーのみをウォークするが、そのサブフォルダーを移動するには、0 に設定します。
[in] pnswcb
種類: INamespaceWalkCB*
INamespaceWalk によって 使用される INamespaceWalkCB コールバック関数。 このパラメーターは、NULL でもかまいません。 オブジェクトは、必要に応じて INamespaceWalkCB2 インターフェイスと IActionProgress インターフェイスを 実装できます。 以下の解説を参照してください。
戻り値
型: HRESULT
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
注釈
NSWF_SHOW_PROGRESS フラグを渡せず、pnswcb パラメーターが指すオブジェクトが IActionProgress を実装している場合、INamespaceWalk::Walk メソッドは IActionProgress::QueryCancel メソッドを定期的に呼び出して、操作を取り消す必要があるかどうかを判断します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | shobjidl_core.h (Shobjidl.h を含む) |
Library | Shell32.lib |
[DLL] | Shell32.dll (バージョン 6.0 以降) |