IAudioSessionControl::SetDisplayName メソッド (audiopolicy.h)

SetDisplayName メソッドは、現在のセッションに表示名を割り当てます。

構文

HRESULT SetDisplayName(
  [in] LPCWSTR Value,
  [in] LPCGUID EventContext
);

パラメーター

[in] Value

セッションの表示名を含む null で終わるワイド文字列へのポインター。

[in] EventContext

イベント コンテキスト GUID へのポインター。 このメソッドの呼び出しで名前変更イベントが生成された場合、セッション マネージャーは 、セッション マネージャーと IAudioSessionEvents インターフェイスを登録しているすべてのクライアントに通知を送信します。 セッション マネージャーには、通知ごとに EventContext ポインター値が含まれます。 通知を受け取ると、クライアントは EventContext 値を調べることで、そのクライアントまたは別のクライアントがイベントのソースであるかどうかを判断できます。 このスキームは、セッション内のすべてのクライアント間で一意であるこのパラメーターの値を選択するクライアントによって異なります。 呼び出し元がこのパラメーターに NULL ポインターを指定した場合、クライアントの通知メソッドは NULL コンテキスト ポインターを受け取ります。

戻り値

メソッドが成功した場合は、S_OK を返します。 失敗した場合、次の表に示す値が含まれますが、これに限定されません。

リターン コード 説明
E_POINTER
パラメーター NULL です
AUDCLNT_E_DEVICE_INVALIDATED
オーディオ エンドポイント デバイスが取り外されているか、オーディオ ハードウェアまたは関連するハードウェア リソースが再構成、無効、削除、またはその他の方法で使用できなくなります。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows オーディオ サービスが実行されていません。

注釈

Windows Vista では、システム提供のプログラム Sndvol.exe は、表示名を使用してセッションのボリューム コントロールにラベルを付けます。 クライアントがセッションに表示名を割り当てるために SetDisplayName を呼び出さない場合、Sndvol プログラムは既定の自動生成された名前を使用してセッションにラベルを付けます。 既定の名前には、オーディオ アプリケーションのウィンドウ タイトルやバージョン リソースなどの情報が組み込まれています。

クライアントに複数のアクティブなセッションがある場合、クライアント指定の表示名は、さまざまなセッションのボリューム 制御を区別するのに特に役立ちます。

クロスプロセス セッションの場合、セッションには、既定の表示名を生成するアプリケーション名やプロセス ID などの識別情報がありません。 したがって、クライアントは SetDisplayName を 呼び出して、意味のない既定の表示名を表示しないようにする必要があります。

表示名は 、IAudioSessionControl オブジェクトの有効期間を超えて保持されません。 したがって、オブジェクトへのすべての参照が解放されると、その後に作成されたオブジェクトのバージョン (同じアプリケーション、同じセッション GUID、および同じエンドポイント デバイスを含む) は、クライアントが SetDisplayName を呼び出すまで、既定の自動的に生成された表示名をもう一度持ちます。

クライアントは、 IAudioSessionControl::GetDisplayName メソッドを呼び出すことによって、セッションの表示名を取得できます。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー audiopolicy.h

こちらもご覧ください

IAudioSessionControl インターフェイス

IAudioSessionControl::GetDisplayName

IAudioSessionEvents インターフェイス