IDiscMasterProgressEvents
COM公式ドキュメント
IDiscMasterProgressEvents インターフェイスは、IMAPI からアプリケーションに対して行われるすべてのコールバックを、単一のインターフェイスとして提供します。
メソッド 9
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
AddData、AddAudioTrackBlocks、または RecordDisc の各操作をキャンセルすべきかどうかを確認します。
| pbCancel | BYTE* | out | このパラメーターが TRUE の場合、書き込みをキャンセルします。FALSE の場合は書き込みを続行します。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。
有効なディスクレコーダーの一覧に変更があったことをアプリケーションに通知します (たとえば、USB CD-R ドライブがシステムから取り外された場合など)。
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。
解説(Remarks)
アプリケーションは IDiscMaster::EnumDiscRecorders を呼び出して、有効なレコーダーの一覧を更新する必要があります。現在アクティブなレコーダーが無効になっている場合は、新しいレコーダーを選択してください。
IRedbookDiscMaster::AddAudioTrackBlocks または IJolietDiscMaster::AddData の呼び出しに応じて、その進捗状況をアプリケーションに通知します。通知は最初と最後のステップ、およびその間の各時点で送信されます。
| nCompletedSteps | INT | in | ステージングされたイメージへのオーディオまたはデータの追加処理のうち、完了した任意単位のステップ数。 |
| nTotalSteps | INT | in | ステージングされたイメージにオーディオまたはデータの全体を追加するために必要な、任意単位の総ステップ数。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。
アクティブなレコーダーでのディスク書き込みの進捗状況をアプリケーションに通知します。通知は最初と最後のブロック、およびその間の各時点で送信されます。
| nCompleted | INT | in | これまでにディスクまたはトラックへ書き込まれたブロック数。 |
| nTotal | INT | in | ディスクまたはトラックを完了するために書き込む必要があるブロックの総数。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。
オーディオディスクの書き込み中に、トラックの開始または終了をアプリケーションに通知します。
| nCurrentTrack | INT | in | 書き込みが完全に終了したトラック数。 |
| nTotalTracks | INT | in | 書き込む必要があるトラックの総数。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。
解説(Remarks)
nTotalTracks 中 0 という通知は、トラック 1 の開始を示します。nTotalTracks 中 N という通知は、トラック N が完了し、トラック N+1 が開始されることを示します。最後に、nTotalTracks 中 nTotalTracks という通知は、最後のトラックの書き込みが完了したことを示します。
ディスクへの書き込み準備中であることをアプリケーションに通知します。書き込みが開始されるまで、これ以降の通知は送信されません。
| nEstimatedSeconds | INT | in | ディスクへの書き込み準備に要すると IMAPI が見積もった、通知時点からの秒数。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。
ディスクのクローズ処理を開始したことをアプリケーションに通知します。書き込みが完了するまで、これ以降の通知は送信されません。
| nEstimatedSeconds | INT | in | ディスクのクローズに要すると IMAPI が見積もった、通知時点からの秒数。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。
IDiscMaster::RecordDisc の呼び出しが完了したことをアプリケーションに通知します。
| status | HRESULT | in | IDiscMaster::RecordDisc から返されるステータスコード。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。
IDiscRecorder::Erase の呼び出しが完了したことをアプリケーションに通知します。
| status | HRESULT | in | IDiscRecorder::Erase から返されるステータスコード。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDiscMasterProgressEvents "{EC9E51C1-4E5D-11D3-9144-00104BA11C5E}" #usecom global IDiscMasterProgressEvents IID_IDiscMasterProgressEvents "{}" #comfunc global IDiscMasterProgressEvents_QueryCancel 3 var #comfunc global IDiscMasterProgressEvents_NotifyPnPActivity 4 #comfunc global IDiscMasterProgressEvents_NotifyAddProgress 5 int,int #comfunc global IDiscMasterProgressEvents_NotifyBlockProgress 6 int,int #comfunc global IDiscMasterProgressEvents_NotifyTrackProgress 7 int,int #comfunc global IDiscMasterProgressEvents_NotifyPreparingBurn 8 int #comfunc global IDiscMasterProgressEvents_NotifyClosingDisc 9 int #comfunc global IDiscMasterProgressEvents_NotifyBurnComplete 10 int #comfunc global IDiscMasterProgressEvents_NotifyEraseComplete 11 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IDiscMasterProgressEvents "{EC9E51C1-4E5D-11D3-9144-00104BA11C5E}" #usecom global IDiscMasterProgressEvents IID_IDiscMasterProgressEvents "{}" #comfunc global IDiscMasterProgressEvents_QueryCancel 3 sptr #comfunc global IDiscMasterProgressEvents_NotifyPnPActivity 4 #comfunc global IDiscMasterProgressEvents_NotifyAddProgress 5 int,int #comfunc global IDiscMasterProgressEvents_NotifyBlockProgress 6 int,int #comfunc global IDiscMasterProgressEvents_NotifyTrackProgress 7 int,int #comfunc global IDiscMasterProgressEvents_NotifyPreparingBurn 8 int #comfunc global IDiscMasterProgressEvents_NotifyClosingDisc 9 int #comfunc global IDiscMasterProgressEvents_NotifyBurnComplete 10 int #comfunc global IDiscMasterProgressEvents_NotifyEraseComplete 11 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。