Win32 API 日本語リファレンス
ホームStorage.Imapi › IDiscMasterProgressEvents

IDiscMasterProgressEvents

COM
IIDec9e51c1-4e5d-11d3-9144-00104ba11c5e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IDiscMasterProgressEvents インターフェイスは、IMAPI からアプリケーションに対して行われるすべてのコールバックを、単一のインターフェイスとして提供します。

メソッド 9

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

vtbl 3 HRESULT QueryCancel(BYTE* pbCancel)

AddData、AddAudioTrackBlocks、または RecordDisc の各操作をキャンセルすべきかどうかを確認します。

pbCancelBYTE*outこのパラメーターが TRUE の場合、書き込みをキャンセルします。FALSE の場合は書き込みを続行します。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。

vtbl 4 HRESULT NotifyPnPActivity()

有効なディスクレコーダーの一覧に変更があったことをアプリケーションに通知します (たとえば、USB CD-R ドライブがシステムから取り外された場合など)。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。

解説(Remarks)

アプリケーションは IDiscMaster::EnumDiscRecorders を呼び出して、有効なレコーダーの一覧を更新する必要があります。現在アクティブなレコーダーが無効になっている場合は、新しいレコーダーを選択してください。

vtbl 5 HRESULT NotifyAddProgress(INT nCompletedSteps, INT nTotalSteps)

IRedbookDiscMaster::AddAudioTrackBlocks または IJolietDiscMaster::AddData の呼び出しに応じて、その進捗状況をアプリケーションに通知します。通知は最初と最後のステップ、およびその間の各時点で送信されます。

nCompletedStepsINTinステージングされたイメージへのオーディオまたはデータの追加処理のうち、完了した任意単位のステップ数。
nTotalStepsINTinステージングされたイメージにオーディオまたはデータの全体を追加するために必要な、任意単位の総ステップ数。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。

vtbl 6 HRESULT NotifyBlockProgress(INT nCompleted, INT nTotal)

アクティブなレコーダーでのディスク書き込みの進捗状況をアプリケーションに通知します。通知は最初と最後のブロック、およびその間の各時点で送信されます。

nCompletedINTinこれまでにディスクまたはトラックへ書き込まれたブロック数。
nTotalINTinディスクまたはトラックを完了するために書き込む必要があるブロックの総数。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。

vtbl 7 HRESULT NotifyTrackProgress(INT nCurrentTrack, INT nTotalTracks)

オーディオディスクの書き込み中に、トラックの開始または終了をアプリケーションに通知します。

nCurrentTrackINTin書き込みが完全に終了したトラック数。
nTotalTracksINTin書き込む必要があるトラックの総数。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。

解説(Remarks)

nTotalTracks 中 0 という通知は、トラック 1 の開始を示します。nTotalTracks 中 N という通知は、トラック N が完了し、トラック N+1 が開始されることを示します。最後に、nTotalTracksnTotalTracks という通知は、最後のトラックの書き込みが完了したことを示します。

vtbl 8 HRESULT NotifyPreparingBurn(INT nEstimatedSeconds)

ディスクへの書き込み準備中であることをアプリケーションに通知します。書き込みが開始されるまで、これ以降の通知は送信されません。

nEstimatedSecondsINTinディスクへの書き込み準備に要すると IMAPI が見積もった、通知時点からの秒数。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。

vtbl 9 HRESULT NotifyClosingDisc(INT nEstimatedSeconds)

ディスクのクローズ処理を開始したことをアプリケーションに通知します。書き込みが完了するまで、これ以降の通知は送信されません。

nEstimatedSecondsINTinディスクのクローズに要すると IMAPI が見積もった、通知時点からの秒数。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。

vtbl 10 HRESULT NotifyBurnComplete(HRESULT status)

IDiscMaster::RecordDisc の呼び出しが完了したことをアプリケーションに通知します。

statusHRESULTinIDiscMaster::RecordDisc から返されるステータスコード。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。

vtbl 11 HRESULT NotifyEraseComplete(HRESULT status)

IDiscRecorder::Erase の呼び出しが完了したことをアプリケーションに通知します。

statusHRESULTinIDiscRecorder::Erase から返されるステータスコード。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は通常、次のエラーコードが返されますが、返される可能性のある値はこれらだけではありません。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 方式にも切替可。