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)

ビューの順序でアイテムを返します。 これは、 punkToWalkIShellView オブジェクトである場合にのみ適用されます。

NSWF_IGNORE_AUTOPLAY_HIDA (0x00000100)

データ オブジェクトで自動再生 HIDA を使用しないでください。 punkToWalkIDataObject オブジェクトの場合にのみ適用されます。

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 以降)

こちらもご覧ください

INamespaceWalk

INamespaceWalkCB