SearchPathW

指定したパスから指定したファイルを検索する。(Unicode)

SearchPathW lpPath, lpFileName, lpExtension, nBufferLength, lpBuffer, lpFilePart

lpPath : [wstr] ファイルを検索するパス。このパラメータが NULL の場合、関数はレジストリ依存のシステム検索パスを使って一致するファイルを検索する。詳細は備考の項を参照。
lpFileName : [wstr] 検索するファイルの名前。
lpExtension : [wstr] ファイル検索時にファイル名に追加する拡張子。拡張子の先頭文字はピリオド (.) でなければならない。拡張子は、指定されたファイル名が拡張子で終わっていない場合にのみ付加される。拡張子が不要な場合やファイル名に既に拡張子が含まれている場合、このパラメータは NULL を指定できる。
nBufferLength : [int] 有効なパスとファイル名 (終端の null 文字を含む) を受け取るバッファのサイズ (TCHAR 単位)。
lpBuffer : [wstr] 検索結果のファイルのパスとファイル名を受け取るバッファへのポインタ。文字列は null 終端される。
lpFilePart : [var] 有効なパスとファイル名の最終要素のアドレス (lpBuffer 内の、パス中の最後のバックスラッシュ (\\) 直後の文字のアドレス) を受け取る変数へのポインタ。

(プラグイン / モジュール : kernel32.dll)

解説

指定したパスから指定したファイルを検索する。(Unicode)

[戻り値]
関数が成功した場合、戻り値はバッファにコピーされた文字列の長さ (終端の null 文字を含まない TCHAR 単位) となる。戻り値が
nBufferLength より大きい場合、戻り値はパスを保持するために必要なバッファサイズ (終端の null 文字を含む)
である。関数が失敗した場合、戻り値はゼロである。拡張エラー情報を取得するには GetLastError を呼び出す。

[備考]
lpPath パラメータが NULL の場合、SearchPath は次のレジストリ値の現在の値に基づいて一致するファイルを検索する:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\SafeProcessSearchMode
この REG_DWORD レジストリ値が 1 の場合、SearchPath
はまずシステムパスで指定されたフォルダを検索し、その後現在の作業フォルダを検索する。値が 0
の場合、まず現在の作業フォルダを検索し、次にシステムパスで指定されたフォルダを検索する。このレジストリキーのシステム既定値は 0
である。SearchPath 関数が使用する検索モードは、SetSearchPathMode
関数を呼び出すことでプロセスごとに設定することもできる。SearchPath 関数は、出力を LoadLibrary
関数への呼び出しに使用する目的で .dll ファイルを探す手段としては推奨されない。SearchPath 関数の検索順序は
LoadLibrary 関数が使用する検索順序と異なるため、誤った .dll ファイルが見つかる可能性がある。.dll
ファイルを探してロードする必要がある場合は LoadLibrary 関数を使用すること。ヒント: Windows 10 バージョン
1607 以降、この関数の Unicode 版 (SearchPathW) では MAX_PATH
の制限を解除するオプトインが可能。詳細は「ファイル、パス、および名前空間の命名」の「最大パス長の制限」節を参照。Windows 8 および
Windows Server 2012 では、この関数は以下の技術によってサポートされている。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs