次の方法で共有


IMAPI との対話

次の手順では、アプリケーションと IMAPI の間の一般的な相互作用について説明します。

  1. MSDiscMasterObj のインスタンス (CoCreateInstance、インポートからのスマート ポインターなどを使用) を作成し、IDiscMaster インターフェイスを要求します。
  2. IDiscMaster::Open を呼び出して IMAPI へのアクセスを取得します。 この呼び出しが成功した場合、アプリケーションは MSDiscMasterObj に実装されているすべてのインターフェイスとメソッドにフル アクセスできます。
  3. EnumDiscMasterFormats を使用してディスク マスター形式列挙子を取得します。 ディスク マスター オブジェクトでサポートされている一連の形式を列挙し、アクティブな形式を選択します。 列挙子から返される形式は、 IJolietDiscMaster および IRedbookDiscMaster のインターフェイスの ID です
  4. EnumDiscRecorders を使用してディスク レコーダー列挙子を取得します。 サポートされているディスク レコーダー (アクティブな形式に固有) の一覧を列挙し、アクティブなレコーダーを選択します。 IDiscRecorder インターフェイスは、物理デバイスを表します。
  5. IDiscMaster::P rogressAdvise を使用して、進行状況コールバックに登録します。
  6. 選択した形式のインターフェイスを使用して、コンテンツをビルドします。 コンテンツは段階的にビルドされるため、トラックまたはフォルダーの内容を 1 つずつディスクに追加できます。 このコンテンツをビルドすることは、 イメージのステージングと呼ばれます。 ステージングされたイメージの内容を段階的に削除することはできません (追加されたトラックを削除することはできません)、ステージングイメージの内容をクリアしてステージングを再開することができます。 IDiscMaster::ClearFormatContent を使用してステージングを再開します。

**オーディオの場合: **

  1. ディスクで新しいオーディオ トラックが開始されていることを示すには、 IRedbookDiscMaster::CreateAudioTrack を使用します。
  2. IRedbookDiscMaster::AddAudioTrackBlocks を使用して、未加工のオーディオ データをトラックに追加します。アプリケーションでは、GetAvailableAudioTrackBlocksGetTotalAudioBlocksGetUsedAudioBlocks を使用して統計情報を取得できます。
  3. IRedbookDiscMaster::CloseAudioTrack を使用してオーディオ トラックを閉じます。
  4. スペースが不足するか、すべてのオーディオ トラックが書き込まれるまで、手順 1 から 3 を繰り返します。

**データの場合: **

  1. IJolietDiscMaster::AddData を使用して、フォルダーの内容をイメージに追加します。 フォルダー内の項目は、イメージ ファイルのルートに配置されます。 統計情報を取得するには、 GetTotalDataBlocksGetUsedDataBlocks を使用します。
  2. スペースが不足するか、すべてのデータが追加されるまで、上記の手順を繰り返します。

**すべてのディスクの場合: **

  1. ディスクを記録するには、IDiscMaster::RecordDisc を使用します。
  2. IDiscMaster::Close を使用して IMAPI セッションを閉じます。 セッションを閉じると、ディスク スタッシュの内容がクリアされます。