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

IRawCDImageCreator

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID25983550-9d65-49ce-b335-40630d901227継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

このインターフェイスは、Disc-at-Once (DAO) モードで CD メディアに書き込むための RAW CD イメージを作成する際に使用します。このインターフェイスで作成したイメージは、IDiscFormat2RawCD インターフェイスを使用して CD メディアに書き込むことができます。

解説(Remarks)

このインターフェイスで作成したイメージは、後で使用するために永続的なストレージへ書き出すことも、CD メディアへ書き込むために IDiscFormat2RawCD インターフェイスへ直接渡すこともできます。

DVD メディアはこの種類の書き込みをサポートしていません。

このインターフェイスは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

メソッド 19

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT CreateResultImage(IStream** resultStream)

現在の設定に基づいて、最終的な IStream オブジェクトを作成します。

resultStreamIStream**out確定した IStream オブジェクトへのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

IRawCDImageCreator::CreateResultImage は一度しか呼び出すことができず、呼び出すとオブジェクトは読み取り専用になります。このオブジェクトに関連付けられたすべてのプロパティは読み取りは可能ですが、変更はできません。生成される IStream オブジェクトは MSF 95:00:00 から開始するディスクイメージとなり、これにより開始アドレスが異なる複数のメディアに対して単一のイメージを書き込めるようになります。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 8 HRESULT AddTrack(IMAPI_CD_SECTOR_TYPE dataType, IStream* data, INT* trackIndex)

指定された IStream オブジェクトを受け取り、そのインターフェイスポインターをイメージ内の次のトラックとして保存します。

dataTypeIMAPI_CD_SECTOR_TYPEinIMAPI_CD_SECTOR_TYPE で定義される、データの種類を示す値。IRawCDImageCreator::AddTrack メソッドがサポートするのは IMAPI_CD_SECTOR_AUDIO のみです。
dataIStream*in指定する IStream オブジェクトへのポインター。
trackIndexINT*out新しいトラックに関連付けられる、1 から 99 の範囲の LONG 値。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

追加するトラックは、既存のすべてのトラックと互換性がある必要があります。制限事項については IMAPI_CD_SECTOR_TYPE 列挙型を参照してください。

データストリームは少なくとも 4 秒 (300 セクター) の長さが必要です。また、最終セクターが LBA 398,099 (MSF 88:29:74) を超えるようなデータストリームは指定できません。超えた場合、リードアウトが最大値である MSF 89:59:74 を超えてしまうためです。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 9 HRESULT AddSpecialPregap(IStream* data)

指定された IStream オブジェクトを受け取り、そのポインターをトラック 1 のプリギャップ用データとして使用するために保存します。

dataIStream*in指定する IStream オブジェクトへのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このメソッドは、イメージにトラックを追加する前にのみ呼び出すことができます。data ストリームは少なくとも 2 秒 (150 セクター) の長さが必要です。

data ストリームの最終セクターが LBA 397,799 (MSF 88:25:74) を超えないようにしてください。超えた場合、最小サイズのトラックとリードアウトを加えると最大値である MSF 89:59:74 を超えてしまうためです。さらに、最初のトラックの IMAPI_CD_SECTOR_TYPE の値は暗黙的に "Audio" として定義することを推奨します。この場合、生成された音声は、最初のトラックを再生してオーディオディスクの先頭まで「巻き戻す」ことでのみ聴くことができます。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 10 HRESULT AddSubcodeRWGenerator(IStream* subcode)

IStream によって提供されるカスタム R-W サブコードの追加を可能にします。指定するオブジェクトは、最終イメージ作成時に RAW ディスクイメージのセクター数 × 96 バイトに等しいサイズである必要があります。

subcodeIStream*inサブコードデータ (1 セクターあたり 96 バイト)。最上位 2 ビットは P/Q ビットであるため、常にゼロである必要があります。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

IRawCDImageCreator::CreateResultImage を呼び出す前であれば、いつでも追加できます。IRawCDImageCreator::put_ResultingImageType が PQ のみを返すように設定されている場合、生成されるイメージでは RW サブコードが使用されないため、この呼び出しは失敗します。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 11 HRESULT put_ResultingImageType(IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE value)

生成されるイメージファイルの種類を定義する値を設定します。

valueIMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPEinイメージファイルの種類を定義する IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE 列挙型の値。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

IRawCDImageCreator::AddSubcodeRWGenerator で設定された値が NULL でない場合、生成されるイメージではサブコードが生成されないため、IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE で定義される PQ_ONLY 型は有効な選択肢ではありません。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 12 HRESULT get_ResultingImageType(IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE* value)

生成されるイメージファイルの種類を指定する値を取得します。

valueIMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE*outイメージファイルに現在設定されている種類を定義する IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE 列挙型の値へのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 13 HRESULT get_StartOfLeadout(INT* value)

リードアウトの開始位置を示す LBA の値を取得します。このメソッドで得られた値をメディアの LastPossibleStartOfLeadout と比較することで、そのイメージをメディアに書き込めるかどうかを判断できます。

valueINT*outリードアウトの開始位置を表す LBA の LONG 値へのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このメソッドを使用するには、イメージに少なくとも 1 つのトラックが追加されている必要があります。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 14 HRESULT put_StartOfLeadoutLimit(INT value)

StartOfLeadoutLimit プロパティの値を設定します。

valueINTin現在の StartOfLeadoutLimit を表す LONG 値へのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 15 HRESULT get_StartOfLeadoutLimit(INT* value)

現在の StartOfLeadoutLimit プロパティの値を取得します。この値は、生成されるイメージが、StartOfLeadout がその LBA 以上であるメディアに収まる必要があるかどうかを指定します。

valueINT*out現在の StartOfLeadoutLimit を表す LONG 値へのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 16 HRESULT put_DisableGaplessAudio(VARIANT_BOOL value)

"ギャップレスオーディオ" 記録を無効にするかどうかを指定する値を設定します。このプロパティの既定値は VARIANT_FALSE で、連続するオーディオトラック間での "ギャップレス" 記録を無効にします。

valueVARIANT_BOOLin"ギャップレスオーディオ" を無効にするかどうかを指定する VARIANT_BOOL 値。VARIANT_FALSE を設定すると "ギャップレスオーディオ" は無効になり、VARIANT_TRUE を設定すると有効になります。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

無効な場合、既定ではオーディオトラック間に標準の 2 秒 (150 セクター) の無音ギャップが挿入されます。有効な場合は、前のオーディオトラックの最後の 2 秒分の音声データが次のオーディオトラックのプリギャップ領域にエンコードされ、トラック間をシームレスに移行できるようになります。

このプロパティ値は、イメージへのトラック追加を開始する前にのみ設定することを推奨します。開始後に変更すると、他のイメージプロパティに悪影響を及ぼす可能性があるためです。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 17 HRESULT get_DisableGaplessAudio(VARIANT_BOOL* value)

"ギャップレスオーディオ" 記録が無効かどうかを指定する現在の値を取得します。このプロパティの既定値は VARIANT_FALSE で、連続するオーディオトラック間での "ギャップレス" 記録を無効にします。

valueVARIANT_BOOL*out"ギャップレスオーディオ" が無効かどうかを指定する VARIANT_BOOL 値。VARIANT_FALSE は "ギャップレスオーディオ" が無効であることを示し、VARIANT_TRUE は有効であることを示します。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

無効な場合、既定ではオーディオトラック間に標準の 2 秒 (150 セクター) の無音ギャップが挿入されます。有効な場合は、前のオーディオトラックの最後の 2 秒分の音声データが次のオーディオトラックのプリギャップ領域にエンコードされ、トラック間をシームレスに移行できるようになります。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 18 HRESULT put_MediaCatalogNumber(LPWSTR value)

オーディオディスク全体に対する Media Catalog Number (MCN) を取得します。

valueLPWSTRinオーディオディスクに関連付ける MCN を表す BSTR 値。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

返される MCN は 13 桁の 10 進数として書式設定されており、指定する際も同じ形式である必要があります。さらに、指定する MCN 値には有効なチェックサム桁 (最下位桁) が含まれている必要があり、そうでない場合は拒否されます。スクリプトとの互換性を高めるため、先頭のゼロは省略できます。たとえば "0123456789012" は "123456789012" と表現できます。

MCN 値の詳細については、MMC 仕様を参照してください。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 19 HRESULT get_MediaCatalogNumber(LPWSTR* value)

オーディオディスク全体に対する Media Catalog Number (MCN) を設定します。

valueLPWSTR*outオーディオディスクに現在関連付けられている MCN を表す BSTR 値へのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このメソッドが返す MCN は 13 桁の 10 進数として書式設定されており、IRawCDImageCreator::put_MediaCatalogNumber メソッドに指定する際も同じ形式である必要があります。さらに、IRawCDImageCreator::put_MediaCatalogNumber を通じて指定する MCN 値には有効なチェックサム桁 (最下位桁) が含まれている必要があり、そうでない場合は拒否されます。スクリプトとの互換性を高めるため、先頭のゼロは省略できます。たとえば "0123456789012" は "123456789012" と表現できます。

MCN 値の詳細については、MMC 仕様を参照してください。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 20 HRESULT put_StartingTrackNumber(INT value)

開始トラック番号を設定します。

valueINTin開始トラック番号を表す LONG 値。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このプロパティ値は、トラックを追加する前にのみ設定できます。このプロパティに 1 以外の値を設定した場合、イメージに追加するトラックはすべてオーディオトラックである必要があります。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 21 HRESULT get_StartingTrackNumber(INT* value)

開始トラック番号を取得します。

valueINT*out開始トラック番号を表す LONG 値へのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このプロパティが 1 以外の値を保持している場合、イメージに追加するトラックはすべてオーディオトラックである必要があります。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 22 HRESULT get_TrackInfo(INT trackIndex, IRawCDImageTrackInfo** value)

インデックス付きプロパティを取得します。どのトラックを照会するかを決定するインデックスとして、1 から 99 の範囲の LONG 値を受け取ります。返されたオブジェクトに対して、対象となるトラックごとのプロパティを照会または設定します。

trackIndexINTin照会するトラックを指定するために使用する、1 から 99 の範囲の LONG 値。
valueIRawCDImageTrackInfo**out指定した trackInfo のインデックス値に対応するトラックの情報を格納する IRawCDImageTrackInfo オブジェクトへのポインターへのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 23 HRESULT get_NumberOfExistingTracks(INT* value)

メディア上に存在するオーディオトラックの数を取得します。(IRawCDImageCreator.get_NumberOfExistingTracks)

valueINT*outメディア上に現在存在するオーディオトラックの数を示す LONG 値へのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 24 HRESULT get_LastUsedUserSectorInImage(INT* value)

既存トラック間のオーバーヘッドを含む、現在のメディア上で使用済みのセクター総数を取得します。

valueINT*outメディア上で使用済みのセクター総数を示す LONG 値へのポインター。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

この値は、トラックの一部と見なされるデータを含む最後のセクターの LBA を表し、リードイン、リードアウト、および MSF 00:00:00 から MSF 00:02:00 までの 2 秒間といったオーバーヘッドは含みません。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

vtbl 25 HRESULT get_ExpectedTableOfContents(SAFEARRAY** value)

生成されるディスクの SCSI 形式の目次 (TOC) を取得します。

valueSAFEARRAY**out生成されるディスクの SCSI 形式の目次 (TOC)。この値の正確さは、すべてのイメージプロパティを設定した後に IRawCDImageCreator::get_ExpectedTableOfContents を呼び出すかどうかに依存します。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返される場合もあります。

解説(Remarks)

このメソッドは、イメージに少なくとも 1 つのトラックが追加された後にのみ呼び出すことができます。

このメソッドは、Windows Server 2003 with Service Pack 1 (SP1)、Windows XP with Service Pack 2 (SP2)、および Windows Vista では Windows Feature Pack for Storage を通じてサポートされます。この更新パッケージが提供するすべての機能は、Windows 7 および Windows Server 2008 R2 ではネイティブにサポートされます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IRawCDImageCreator "{25983550-9D65-49CE-B335-40630D901227}"
#usecom global IRawCDImageCreator IID_IRawCDImageCreator "{}"
#comfunc global IRawCDImageCreator_CreateResultImage              7 sptr
#comfunc global IRawCDImageCreator_AddTrack                       8 int,sptr,var
#comfunc global IRawCDImageCreator_AddSpecialPregap               9 sptr
#comfunc global IRawCDImageCreator_AddSubcodeRWGenerator          10 sptr
#comfunc global IRawCDImageCreator_put_ResultingImageType         11 int
#comfunc global IRawCDImageCreator_get_ResultingImageType         12 var
#comfunc global IRawCDImageCreator_get_StartOfLeadout             13 var
#comfunc global IRawCDImageCreator_put_StartOfLeadoutLimit        14 int
#comfunc global IRawCDImageCreator_get_StartOfLeadoutLimit        15 var
#comfunc global IRawCDImageCreator_put_DisableGaplessAudio        16 int
#comfunc global IRawCDImageCreator_get_DisableGaplessAudio        17 var
#comfunc global IRawCDImageCreator_put_MediaCatalogNumber         18 wstr
#comfunc global IRawCDImageCreator_get_MediaCatalogNumber         19 var
#comfunc global IRawCDImageCreator_put_StartingTrackNumber        20 int
#comfunc global IRawCDImageCreator_get_StartingTrackNumber        21 var
#comfunc global IRawCDImageCreator_get_TrackInfo                  22 int,sptr
#comfunc global IRawCDImageCreator_get_NumberOfExistingTracks     23 var
#comfunc global IRawCDImageCreator_get_LastUsedUserSectorInImage  24 var
#comfunc global IRawCDImageCreator_get_ExpectedTableOfContents    25 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。