GetSystemWindowsDirectoryW

マルチユーザーシステム上の共有 Windows ディレクトリのパスを取得する。(Unicode)

GetSystemWindowsDirectoryW lpBuffer, uSize

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

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

解説

マルチユーザーシステム上の共有 Windows ディレクトリのパスを取得する。(Unicode)

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

[備考]
ターミナルサービスを実行するシステムでは、各ユーザーに固有の Windows ディレクトリがある。システム Windows
ディレクトリはすべてのユーザーで共有されるため、すべてのユーザーに適用される初期化ファイルやヘルプファイルをアプリケーションが格納するべきディレクトリである。ターミナルサービスでは、GetSystemWindowsDirectory
関数はシステム Windows ディレクトリのパスを取得し、GetWindowsDirectory 関数は各ユーザー専用の Windows
ディレクトリのパスを取得する。シングルユーザーシステムでは、GetSystemWindowsDirectory は
GetWindowsDirectory と同じである。
> [!NOTE] > sysinfoapi.h ヘッダは GetSystemWindowsDirectory を、UNICODE
プリプロセッサ定数の定義に基づいて ANSI または Unicode
版を自動選択するエイリアスとして定義する。エンコーディング中立なエイリアスとそうでないコードを混在させると、コンパイルや実行時のエラーを引き起こす不一致が生じうる。詳細は
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照。

情報

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