<Return[S]><Top>

SearchPath

Declare Function Api_SearchPath& Lib "kernel32" Alias "SearchPathA" (ByVal lpPath$, ByVal lpFileName$, ByVal lpExtension$, ByVal nBufferLength&, ByVal lpBuffer$, ByVal lpFilePart$)

Declare Function SearchPath Lib "kernel32" Alias "SearchPathA" (ByVal lpPath As String, ByVal lpFileName As String, ByVal lpExtension As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long

指定されたファイルを検索する。

パラメータ
lpPath
    ファイル検索対象のパス名を保持している、NULL で終わる文字列へのポインタを指定する。

    NULL を指定すると、この関数は次の順序でファイルを検索する。
    1.アプリケーションのロードに使った(アプリケーションの実行可能ファイルと同じ)ディレクトリ
    2.カレントディレクトリ
    3.Windows 95:Windows のシステムディレクトリ。このディレクトリのパスは、GetSystemDirectory 関数で取得できる。
       Windows NT/2000:32 ビットの Windows システムディレクトリ。このディレクトリのパスは、GetSystemDirectory 関数で取得できる。

       このディレクトリの既定の名前は、SYSTEM32 である。
    4.Windows NT/2000:16 ビットの Windows システムディレクトリ。このディレクトリのパスを取得する Win32 関数はないが、SearchPath  

       関数の検索対象になる。このディレクトリの既定の名前は、SYSTEM である。
    5.Windows ディレクトリ。このディレクトリのパスは、GetWindowsDirectory 関数で取得できる。
    6.環境変数 PATH に記述されている各ディレクトリ
lpFileName
    検索対象のファイルの名前を保持している、NULL で終わる文字列へのポインタを指定する。
lpExtension
    検索対象のファイルの拡張子を保持している、NULL で終わる文字列へのポインタを指定する。

    拡張子の先頭には、ピリオド(.)を指定する。

    この拡張子は、lpFileName パラメータで拡張子が指定されていなかった場合にのみ追加される。
    拡張子が不要な場合、または、lpFileName パラメータで拡張子を指定した場合は、lpExtension パラメータで NULL を指定する。
nBufferLength
    lpBuffer パラメータが指す、有効なパスとファイル名を格納するバッファのサイズを、TCHAR 単位で指定する。
lpBuffer
    1 個のバッファへのポインタを指定する。関数から制御が返ると、このバッファに、見つかったパスとファイル名が格納される。
lpFilePart
    1 個の変数へのポインタを指定する。関数から制御が返ると、この変数に、有効なパスとファイル名の組み合わせのうち、最後のコンポー

    ネントを指す、(lpBuffer バッファ内の)アドレスが格納される。最後のコンポーネントとは、最後の円記号(\)の直後、つまりファイル名

    を意味する。
 

戻り値
    関数が成功すると、バッファにコピーされた文字の長さが TCHAR 単位で返る(終端の NULL 文字を除く)。戻り値が nBufferLength

    より大きい場合、その戻り値は、パスを格納するのに必要なバッファのサイズを示す。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。