GetWindowsDirectoryW

Windows ディレクトリのパスを取得する。(Unicode)

GetWindowsDirectoryW lpBuffer, uSize

lpBuffer : [wstr] パスを受け取るバッファへのポインタ。Windows ディレクトリがルートディレクトリでない限り、このパスはバックスラッシュで終わらない。たとえば、Windows ディレクトリが C ドライブ上の Windows という名前である場合、この関数で取得される Windows ディレクトリのパスは C:\Windows となる。システムが C ドライブのルートディレクトリにインストールされている場合、取得されるパスは C:\ となる。
uSize : [int] lpBuffer パラメータで指定したバッファの最大サイズ(TCHAR 単位)。この値は MAX_PATH に設定すべきである。

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

解説

Windows ディレクトリのパスを取得する。(Unicode)

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

[備考]
Windows
ディレクトリは、一部のレガシーアプリケーションが初期化ファイルやヘルプファイルを格納するディレクトリである。新しいアプリケーションは
Windows
ディレクトリにファイルを格納すべきではなく、代わりにシステム全体のデータをアプリケーションのインストールディレクトリに、ユーザー固有のデータをユーザーのプロファイルに格納すべきである。ユーザーが共有版のシステムを実行している場合、Windows
ディレクトリは各ユーザーで非公開であることが保証される。
アプリケーションがユーザーごとに格納したい他のファイルを作成する場合、HOMEPATH
環境変数で指定されたディレクトリに配置すべきである。このディレクトリは、管理者がユーザーマネージャ管理ツールを介して指定した場合、各ユーザーで異なる。HOMEPATH
は常に、各ユーザーで非公開であることが保証されるユーザーのホームディレクトリ、または既定のディレクトリ(たとえば
C:\USERS\DEFAULT、ユーザーがすべてのアクセス権を持つ)のいずれかを指定する。
ターミナルサービス: アプリケーションがターミナルサービス環境で実行されている場合、各ユーザーは非公開の Windows
ディレクトリを持つ。システム用の共有 Windows ディレクトリも存在する。アプリケーションがターミナルサービス対応(イメージヘッダで
IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE フラグが設定されている)の場合、この関数は
GetSystemWindowsDirectory 関数と同様にシステム Windows
ディレクトリのパスを返す。それ以外の場合、ユーザーの非公開 Windows ディレクトリのパスを取得する。

情報

プラグイン / モジュール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