Win32 API 日本語リファレンス
ホームMedia.WindowsMediaFormat › IWMStatusCallback

IWMStatusCallback

COM
IID6d7cdc70-9888-11d3-8edc-00c04f6109cf継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWMStatusCallback インターフェイスは、さまざまなオブジェクトからステータス情報を受け取るためにアプリケーションが実装します。

解説(Remarks)

次のメソッドおよび関数は、このインターフェイスの実装をオブジェクトに関連付けます。

メソッド 1

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT OnStatus(WMT_STATUS Status, HRESULT hr, WMT_ATTR_DATATYPE dwType, BYTE* pValue, void* pvContext)

OnStatus メソッドは、ステータス情報をアプリケーションに伝達する必要があるときに呼び出されます。

StatusWMT_STATUSinWMT_STATUS 列挙型のメンバーの 1 つです。指定可能な WMT_STATUS 値の説明については、「解説」セクションの表を参照してください。
hrHRESULTinHRESULT エラーコードです。これが失敗を示している場合は、何らかのエラーが発生しているため、ステータスを通常どおり処理すべきではありません。失敗値を確認するには if (FAILED(hr)) を使用します。返される可能性のある結果の一覧については、トピック「Error Codes」を参照してください。
dwTypeWMT_ATTR_DATATYPEinWMT_ATTR_DATATYPE 列挙型のメンバーです。この値は、pValue にあるバッファー内のデータの型を指定します。
pValueBYTE*in値を格納するバイト配列へのポインターです。この配列の内容は、Status の値と dwType の値に応じて異なります。
pvContextvoid*inアプリケーションが独自の用途のために提供する汎用ポインターです。このポインターは、IWMReader::OpenIWMIndexer::StartIndexing などのメソッドに渡されたコンテキストポインターと一致します。SDK はこのポインターの用途について何ら想定しません。単にアプリケーションから提供され、コールバックが行われるときにアプリケーションへ返されるだけです。

戻り値

このメソッドはアプリケーションが実装します。常に S_OK を返す必要があります。

解説(Remarks)

pParam の内容は Status の内容に応じて異なります。

次の WMT_STATUS 値は、リーダーによってこのメソッドに渡される可能性があります。

メンバー 説明
WMT_ACQUIRE_LICENSE ライセンスの取得処理が完了しました。ライセンスの取得に失敗した場合は、hr パラメーターにエラーが返されます。ライセンスの取得に成功した場合は、hr パラメーターに S_OK が返され、pvalue パラメーターに WM_GET_LICENSE_DATA データ構造体が返されます。
WMT_BUFFERING_START リーダーがデータのバッファリングを開始しました。
WMT_BUFFERING_STOP リーダーがデータのバッファリングを停止しました。
WMT_CLOSED リーダーがファイルを閉じました。
WMT_CONNECTING リーダーがサーバーに接続しています。
WMT_END_OF_FILE リーダーがファイルの終端に達しました。
WMT_END_OF_SEGMENT Start メソッドが継続時間の引数付きで呼び出された場合、指定した期間の経過後に再生が完了すると WMT_END_OF_SEGMENT が返されます。引数は、再生の継続時間を 100 ナノ秒単位で示す QWORD です。
WMT_END_OF_STREAMING ファイルのストリーミングが完了しました。
WMT_EOF リーダーがファイルの終端に達しました。
WMT_ERROR ファイルの読み取り中にエラーが発生しました。
WMT_INDIVIDUALIZE 個別化 (Individualization) 処理が進行中、または完了しました。このイベントは、個別化処理の間に繰り返し送信されます。pvalue には、ダウンロードの進行状況に関するステータス情報を格納した WM_INDIVIDUALIZE_STATUS 構造体が含まれます。
WMT_LOCATING リーダーがサーバーを検索しています。
WMT_MISSING_CODEC リーダーに、このファイルを展開するための適切なコーデックがありません。
WMT_NEEDS_INDIVIDUALIZATION クライアントにセキュリティ更新が必要です。
WMT_NEW_METADATA 現在のソースのメタデータが変更されました。
WMT_NEW_SOURCEFLAGS 現在のソースの設定に変更がありました。
WMT_NO_RIGHTS リーダーが DRM バージョン 1 のコンテンツを再生しようとしましたが、コンピューターにそれを再生するための適切なライセンスがありません。
WMT_NO_RIGHTS_EX リーダーが DRM バージョン 7 のコンテンツを再生しようとしましたが、コンピューターにそれを再生するための適切なライセンスがありません。
WMT_OPENED ファイルが読み取り用に開かれました。
WMT_SAVEAS_START ファイルのディスクへの保存を開始しています。
WMT_SAVEAS_STOP ファイルのディスクへの保存を停止しました。
WMT_SOURCE_SWITCH ソースファイルまたはストリームに変更がありました。
WMT_STARTED リーダーがファイルの読み取りを開始しました。pValue パラメーターは、開始タイムスタンプを示す QWORD を指します。値が -1 の場合、開始タイムスタンプは 0 です。それ以外の負の値の場合は、正の値に変換して開始タイムスタンプとします。
WMT_STOPPED リーダーがファイルの読み取りを停止しました。
WMT_TIMER タイマーイベントが発生しました。
 

次の WMT_STATUS 値は、ライターのファイルシンクによってコールバックに渡される可能性があります。

メンバー 説明
WMT_ERROR ファイルの書き込み中にエラーが発生しました。
WMT_OPENED ファイルが書き込み用に開かれました。
WMT_STARTED ライターがファイルの書き込みを開始しました。pValue パラメーターは、開始タイムスタンプを示す QWORD を指します。値が -1 の場合、開始タイムスタンプは 0 です。それ以外の負の値の場合は、正の値に変換して開始タイムスタンプとします。
WMT_STOPPED ライターがファイルの書き込みを停止しました。
WMT_CLOSED ライターがファイルを閉じました。
 

次の WMT_STATUS 列挙値は、ライターのネットワークシンクによってコールバックに渡される可能性があります。

メンバー 説明
WMT_CLIENT_CONNECT クライアントがブロードキャストに接続しました。dwType パラメーターは WMT_TYPE_BINARY で、pValue パラメーターは WM_CLIENT_PROPERTIES 構造体を指します。
WMT_CLIENT_DISCONNECT クライアントがブロードキャストから切断しました。dwType パラメーターは WMT_TYPE_BINARY で、pValue パラメーターは WM_CLIENT_PROPERTIES 構造体を指します。
 

次の WMT_STATUS 列挙値は、インデクサーによってコールバックに渡される可能性があります。

メンバー 説明
WMT_ERROR ファイルの読み取り中にエラーが発生しました。
WMT_OPENED ファイルがインデックス作成用に開かれました。
WMT_STARTED インデクサーがファイルのインデックス作成を開始しました。pValue パラメーターは、開始タイムスタンプを示す QWORD を指します。値が -1 の場合、開始タイムスタンプは 0 です。それ以外の負の値の場合は、正の値に変換して開始タイムスタンプとします。
WMT_STOPPED インデクサーがファイルのインデックス作成を停止しました。
WMT_CLOSED インデクサーがファイルを閉じました。
WMT_INDEX_PROGRESS 現在のインデックス作成操作の進行状況を示します。引数は、完了率を示す DWORD で、0 から 100 の範囲です。
 

次の WMT_STATUS 列挙値は、バックアップリストアラーによってコールバックに渡される可能性があります。

メンバー 説明
WMT_BACKUPRESTORE_BEGIN ライセンスのバックアップまたは復元時に、処理が開始したことを示すために送信されます。
WMT_BACKUPRESTORE_END ライセンスのバックアップまたは復元時に、処理が正常に完了したことを示すために送信されます。
WMT_BACKUPRESTORE_CONNECTING ライセンスの復元時にのみ送信され、クライアントの資格情報が検証中であることを示します。
WMT_BACKUPRESTORE_DISCONNECTING ライセンスの復元時にのみ送信され、クライアントの資格情報が正常に検証されたことを示します。
WMT_ERROR_WITHURL ライセンスの復元時にのみ送信され、クライアントにこれを行う権限がないことを示します。
WMT_RESTRICTED_LICENSE ライセンスのバックアップ時にのみ送信され、ライセンスが制限されておりバックアップできないことを示します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWMStatusCallback "{6D7CDC70-9888-11D3-8EDC-00C04F6109CF}"
#usecom global IWMStatusCallback IID_IWMStatusCallback "{}"
#comfunc global IWMStatusCallback_OnStatus  3 int,int,int,var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。