IWMPConvert
COM公式ドキュメント
IWMPConvert インターフェイスは、Microsoft 以外の技術を使用して作成されたデジタルメディアファイルを Advanced Systems Format (ASF) に変換する Windows Media Player 変換プラグインを実現するためのメソッドを提供します。
解説(Remarks)
これらのメソッドは変換プラグインによって実装され、Windows Media Player から呼び出されます。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ConvertFile メソッドは変換プラグインによって実装され、Windows Media Player から呼び出されます。これにより、変換プラグインがデジタルメディアファイルを ASF に変換できるようになります。
| bstrInputFile | LPWSTR | in | 変換対象のファイルへのパスを格納する BSTR。 |
| bstrDestinationFolder | LPWSTR | in | 変換後のファイルをコピーする先のフォルダーへのパスを格納する BSTR。 |
| pbstrOutputFile | LPWSTR* | inout | 変換後のファイルへのパスを受け取る BSTR へのポインター。 |
戻り値
このメソッドは HRESULT を返します。次の表に、推奨される戻り値の一覧を示します。
| 戻り値のコード/値 | 説明 |
|---|---|
|
ファイルの変換中に原因不明の失敗が発生しました。 |
|
ライセンスによりファイルの変換が禁止されています。IWMPConvert::GetErrorURL は、この問題を説明する Web ページの URL を返す必要があります。 |
|
ライセンスによりファイルの変換が禁止されています。利用可能なエラー URL はありません。 |
|
指定されたファイルが破損しています。 |
|
プラグインに原因不明の問題があります。IWMPConvert::GetErrorURL は、ユーザーがプラグインを再インストールできる Web ページの URL を返す必要があります。 |
| プラグインに原因不明の問題があります。利用可能なエラー URL はありません。 | |
|
この変換プラグインは、現在のファイルを変換するための正しいプラグインではありません。 |
解説(Remarks)
これは同期呼び出しです。コードは可能な限り速やかに完了して戻る必要があります。このメソッドはデジタルメディアファイルのトランスコードを目的としたものではありません。ファイル形式の変更のためにのみ、このメソッドを使用してください。
Windows Media Player 10 Mobile: このメソッドはサポートされていません。
GetErrorURL メソッドは変換プラグインによって実装され、Windows Media Player から呼び出されます。これは、エラーの原因となった状況をユーザーが修正するのに役立つ情報を表示する Web ページの URL を取得するために使用されます。
| pbstrURL | LPWSTR* | inout | エラー情報を表示する Web ページの URL を受け取る BSTR へのポインター。 |
戻り値
このメソッドは HRESULT を返します。
解説(Remarks)
これは同期呼び出しです。コードは可能な限り速やかに完了して戻る必要があります。
Windows Media Player 10 Mobile: このメソッドはサポートされていません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPConvert "{D683162F-57D4-4108-8373-4A9676D1C2E9}" #usecom global IWMPConvert IID_IWMPConvert "{}" #comfunc global IWMPConvert_ConvertFile 3 wstr,wstr,var #comfunc global IWMPConvert_GetErrorURL 4 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IWMPConvert "{D683162F-57D4-4108-8373-4A9676D1C2E9}" #usecom global IWMPConvert IID_IWMPConvert "{}" #comfunc global IWMPConvert_ConvertFile 3 wstr,wstr,sptr #comfunc global IWMPConvert_GetErrorURL 4 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。