<Return[PQ]><Top>

QueryDosDevice

Declare Function Api_QueryDosDevice& Lib "kernel32" Alias "QueryDosDeviceA" (ByVal lpDeviceName$, ByVal lpTargetPath$, ByVal ucchMax&)

Declare Function QueryDosDevice Lib "kernel32" Alias "QueryDosDeviceA" (ByVal lpDeviceName As String, ByVal lpTargetPath As String, ByVal ucchMax As Long) As Long

アプリケーションで MS-DOS デバイス名に関する情報を取得できるようにする。関数は、特定の MS-DOS デバイス名に対する現在のマッピングを取得する。また、既存の MS-DOS デバイス名のリストをすべて取得することもできる。
MS-DOS デバイス名は、オブジェクトの名前空間にシンボリックリンクとして格納される。MS-DOS パスを対応するパスに変換するコードでは、これらのシンボリックリンクを使って MS-DOS デバイス名とドライブ名をマップする。QueryDosDevice 関数を使うと、Win32 ベースのアプリケーションで MS-DOS デバイスの名前空間を実装するためのシンボリックリンク名と各シンボリックリンクの値を照会することができる。

パラメータ
lpDeviceName
    照会する MS-DOS デバイス名文字列へのポインタを指定する。
    このパラメータには、NULL を指定することができる。その場合、QueryDosDevice 関数は既存の MS-DOS デバイス名をすべて列挙したリ

    ストを、lpTargetPath パラメータが示すバッファに格納する。
lpTargetPath
    照会結果を受け取るバッファへのポインタを指定する。このバッファには、1 つ以上の NULL で終わる文字列が入る。最後の NULL で終

    わる文字列の後ろには、さらに NULL 文字が追加される。
    lpDeviceName パラメータが NULL 以外の場合、lpDeviceName パラメータが示す特定の MS-DOS デバイスに関する情報が返る。最初

    にバッファに保存される NULL で終わる文字列は、現在のデバイス名マッピングである。その他の NULL で終わる文字列は、削除され

    ていない以前のデバイス名マッピングである。
    lpDeviceName パラメータが NULL の場合、既存の MS-DOS デバイス名をすべて列挙したリストが返る。バッファに格納される NULL で

    終わる各文字列は、既存の MS-DOS デバイス名を表す。
ucchMax
    lpTargetPath パラメータが示すバッファに格納できる最大文字数を指定する。

戻り値
    関数が成功すると、lpTargetPath パラメータが示すバッファに格納されたデータの文字数が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    DefineDosDevice 関数を使うと、MS-DOS デバイスの名前空間を実装するためのシンボリックリンクを Win32 ベースのアプリケーションで作

    成、および変更することができる。
    MS-DOS デバイス名はグローバルに適用される。MS-DOS デバイス名は、一度定義すると、明示的に削除するかシステムを再起動しない

    限りすべてのプロセスで表示され続ける。