ホーム › Media.WindowsMediaFormat › IWMStatusCallback
IWMStatusCallback
COM公式ドキュメント
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 メソッドは、ステータス情報をアプリケーションに伝達する必要があるときに呼び出されます。
| Status | WMT_STATUS | in | WMT_STATUS 列挙型のメンバーの 1 つです。指定可能な WMT_STATUS 値の説明については、「解説」セクションの表を参照してください。 |
| hr | HRESULT | in | HRESULT エラーコードです。これが失敗を示している場合は、何らかのエラーが発生しているため、ステータスを通常どおり処理すべきではありません。失敗値を確認するには if (FAILED(hr)) を使用します。返される可能性のある結果の一覧については、トピック「Error Codes」を参照してください。 |
| dwType | WMT_ATTR_DATATYPE | in | WMT_ATTR_DATATYPE 列挙型のメンバーです。この値は、pValue にあるバッファー内のデータの型を指定します。 |
| pValue | BYTE* | in | 値を格納するバイト配列へのポインターです。この配列の内容は、Status の値と dwType の値に応じて異なります。 |
| pvContext | void* | in | アプリケーションが独自の用途のために提供する汎用ポインターです。このポインターは、IWMReader::Open、IWMIndexer::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)
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 指定が可能。#define global IID_IWMStatusCallback "{6D7CDC70-9888-11D3-8EDC-00C04F6109CF}" #usecom global IWMStatusCallback IID_IWMStatusCallback "{}" #comfunc global IWMStatusCallback_OnStatus 3 int,int,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。