次の方法で共有


ICodecAPI::RegisterForEvent メソッド (strmif.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

RegisterForEvent メソッドは、コーデックからイベントを受信するようにアプリケーションを登録します。

構文

HRESULT RegisterForEvent(
  [in]  const GUID *Api,
  [out] LONG_PTR   userData
);

パラメーター

[in] Api

イベントを指定する GUID へのポインター。 イベントには次の 3 つのカテゴリがあります。

意味
CODECAPI_CHANGELISTS
コーデックのプロパティが変更されると、コーデックによってアプリケーションに通知されます。 イベント データは、変更されたプロパティの GUID の一覧です。
codecapi.h で定義されているプロパティ GUID の 1 つ。 (「 Codec API のプロパティ」を参照してください)。
コーデックは、指定されたプロパティが変更されたときにアプリケーションに通知します。 通常、コーデックは、限られたプロパティ セット (存在する場合) に対してこの種類の通知をサポートします。
コーデックによって定義された独自のイベント GUID。
実装依存。

[out] userData

呼び出し元定義データへのポインター。 アプリケーションは 、lParam1 イベント パラメーターでこのポインターを受け取ります。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
実装されていません。 コーデックはイベント通知をサポートしていないか、 Api パラメーターで指定されたイベント GUID をサポートしていません。

注釈

アプリケーションは、エンコーダー コーデックがイベントを送信するたびに、 EC_CODECAPI_EVENT イベント通知を受け取ります。 イベントを取得するには、 IMediaEventEx インターフェイスを使用します。

イベントの lParam2 パラメーターは、 CodecAPIEventData 構造体へのポインターです。 イベント GUID に応じて、この構造体の後に追加のデータを追加できます。 このデータのサイズは、 dataLength メンバーによって指定されます。

GUID イベント データ
CODECAPI_CHANGELISTS GUID の配列。 各 GUID は、現在の値または有効な範囲が変更されたコーデック プロパティを指定します。 配列のサイズは dataLength です / sizeof(GUID)
codecapi.h で定義されているプロパティ GUID。 [なし] :
独自のイベント GUID。 実装依存。
 

コーデックが指定したイベントをサポートしていない場合、メソッドは E_NOTIMPLを返します。 コーデックは、他のイベントをサポートしている場合があります。

イベントの通知を無効にするには、 ICodecAPI::UnregisterForEvent を呼び出します。

要件

要件
サポートされている最小のクライアント WINDOWS XP と SP2 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)
Library Strmiids.lib

こちらもご覧ください

Codec API リファレンス

エンコーダー API

ICodecAPI