GetServiceDisplayNameA 関数 (winsvc.h)
指定したサービスの表示名を取得します。
構文
BOOL GetServiceDisplayNameA(
[in] SC_HANDLE hSCManager,
[in] LPCSTR lpServiceName,
[out, optional] LPSTR lpDisplayName,
[in, out] LPDWORD lpcchBuffer
);
パラメーター
[in] hSCManager
OpenSCManager 関数によって返されるサービス コントロール マネージャー データベースへのハンドル。
[in] lpServiceName
サービス名。 この名前は、サービスのレジストリ キー名と同じです。 256 文字未満の名前を選択することをお勧めします。
[out, optional] lpDisplayName
サービスの表示名を受け取るバッファーへのポインター。 関数が失敗した場合、このバッファーには空の文字列が含まれます。
この配列の最大サイズは 4K バイトです。 必要なサイズを決定するには、このパラメーターに NULL を指定し、 lpcchBuffer パラメーターに 0 を指定します。 関数は失敗し、 GetLastError は ERROR_INSUFFICIENT_BUFFERを返します。 lpcchBuffer パラメーターは、必要なサイズを受け取ります。
このパラメーターは、次の形式を使用してローカライズされた文字列を指定できます。
@[path]dllname,-strID
識別子 strID を持つ文字列は dllname から読み込まれます。 パス は省略可能です。 詳細については、「 RegLoadMUIString」を参照してください。
Windows Server 2003 および Windows XP: ローカライズされた文字列は、Windows Vista までサポートされません。
[in, out] lpcchBuffer
TCHAR で lpDisplayName が指すバッファーのサイズを指定する変数へのポインター。
出力時に、この変数はサービスの表示名のサイズを文字で受け取りますが、null 終端文字は除きます。
lpDisplayName が指すバッファーが小さすぎて表示名を格納できない場合、関数はそれを格納しません。 関数が戻ると、 lpcchBuffer には、null 終端文字を除くサービスの表示名のサイズが含まれます。
戻り値
関数が成功した場合、戻り値は 0 以外です。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
サービスには、サービス名と表示名の 2 つの名前があります。 サービス名は、レジストリ内のサービスのキーの名前です。 表示名は、サービス コントロール パネル アプリケーションに表示されるわかりやすい名前であり、 NET START コマンドで使用されます。 サービス名を表示名にマップするには、 GetServiceDisplayName 関数を使用します。 表示名をサービス名にマップするには、 GetServiceKeyName 関数を使用します。
注意
winsvc.h ヘッダーは、GetServiceDisplayName をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winsvc.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |