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

IDiscFormat2RawCD

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID27354155-8f64-5b0f-8f00-5d77afbe261e継承元IDiscFormat2呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl12

メソッド 24

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

vtbl 12 HRESULT PrepareMedia()
vtbl 13 HRESULT WriteMedia(IStream* data)
dataIStream*inロウ(raw)モードで CD メディアへ書き込むイメージデータを供給する IStream へのポインタである。
vtbl 14 HRESULT WriteMedia2(IStream* data, INT streamLeadInSectors)
dataIStream*inロウ(raw)モードで CD メディアへ書き込むイメージデータを供給する IStream へのポインタである。
streamLeadInSectorsINTinストリーム内に含まれるリードインセクター数を指定する。
vtbl 15 HRESULT CancelWrite()
vtbl 16 HRESULT ReleaseMedia()
vtbl 17 HRESULT SetWriteSpeed(INT RequestedSectorsPerSecond, VARIANT_BOOL RotationTypeIsPureCAV)
RequestedSectorsPerSecondINTin要求する書き込み速度を毎秒セクター数で指定する。
RotationTypeIsPureCAVVARIANT_BOOLin回転方式を純粋な CAV にする場合に VARIANT_TRUE を指定する。
vtbl 18 HRESULT put_Recorder(IDiscRecorder2* value)
valueIDiscRecorder2*in書き込みに使用する記録デバイスを表す IDiscRecorder2 へのポインタを指定する。
vtbl 19 HRESULT get_Recorder(IDiscRecorder2** value)
valueIDiscRecorder2**out現在設定されている記録デバイスを表す IDiscRecorder2 ポインタを受け取る変数へのポインタである。
vtbl 20 HRESULT put_BufferUnderrunFreeDisabled(VARIANT_BOOL value)
valueVARIANT_BOOLinバッファアンダーラン防止機能を無効化するかどうかを指定する VARIANT_BOOL 値である。
vtbl 21 HRESULT get_BufferUnderrunFreeDisabled(VARIANT_BOOL* value)
valueVARIANT_BOOL*outバッファアンダーラン防止機能が無効化されているかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 22 HRESULT get_StartOfNextSession(INT* value)
valueINT*out次のセッションの開始アドレスを受け取る変数へのポインタである。
vtbl 23 HRESULT get_LastPossibleStartOfLeadout(INT* value)
valueINT*outリードアウトを開始できる最後のアドレスを受け取る変数へのポインタである。
vtbl 24 HRESULT get_CurrentPhysicalMediaType(IMAPI_MEDIA_PHYSICAL_TYPE* value)
valueIMAPI_MEDIA_PHYSICAL_TYPE*out現在装填されているメディアの物理種別を受け取る列挙値へのポインタである。
vtbl 25 HRESULT get_SupportedSectorTypes(SAFEARRAY** value)
valueSAFEARRAY**outサポートされるセクター種別の配列を格納する SAFEARRAY を受け取るポインタへのポインタである。
vtbl 26 HRESULT put_RequestedSectorType(IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE value)
valueIMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPEin書き込みに使用するロウ CD データセクター種別を指定する列挙値である。
vtbl 27 HRESULT get_RequestedSectorType(IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE* value)
valueIMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE*out要求されているロウ CD データセクター種別を受け取る列挙値へのポインタである。
vtbl 28 HRESULT put_ClientName(LPWSTR value)
valueLPWSTRinデバイスへの排他アクセス取得時に使用するクライアント名を指す文字列へのポインタである。
vtbl 29 HRESULT get_ClientName(LPWSTR* value)
valueLPWSTR*out設定されているクライアント名を受け取る変数へのポインタである。
vtbl 30 HRESULT get_RequestedWriteSpeed(INT* value)
valueINT*out要求されている書き込み速度(毎秒セクター数)を受け取る変数へのポインタである。
vtbl 31 HRESULT get_RequestedRotationTypeIsPureCAV(VARIANT_BOOL* value)
valueVARIANT_BOOL*out要求された回転方式が純粋な CAV であるかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 32 HRESULT get_CurrentWriteSpeed(INT* value)
valueINT*out現在の書き込み速度(毎秒セクター数)を受け取る変数へのポインタである。
vtbl 33 HRESULT get_CurrentRotationTypeIsPureCAV(VARIANT_BOOL* value)
valueVARIANT_BOOL*out現在の回転方式が純粋な CAV であるかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 34 HRESULT get_SupportedWriteSpeeds(SAFEARRAY** supportedSpeeds)
supportedSpeedsSAFEARRAY**outサポートされる書き込み速度(毎秒セクター数)の配列を格納する SAFEARRAY を受け取るポインタへのポインタである。
vtbl 35 HRESULT get_SupportedWriteSpeedDescriptors(SAFEARRAY** supportedSpeedDescriptors)
supportedSpeedDescriptorsSAFEARRAY**outサポートされる書き込み速度記述子(IWriteSpeedDescriptor)の配列を格納する SAFEARRAY を受け取るポインタへのポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDiscFormat2RawCD "{27354155-8F64-5B0F-8F00-5D77AFBE261E}"
#usecom global IDiscFormat2RawCD IID_IDiscFormat2RawCD "{}"
#comfunc global IDiscFormat2RawCD_PrepareMedia                        12
#comfunc global IDiscFormat2RawCD_WriteMedia                          13 sptr
#comfunc global IDiscFormat2RawCD_WriteMedia2                         14 sptr,int
#comfunc global IDiscFormat2RawCD_CancelWrite                         15
#comfunc global IDiscFormat2RawCD_ReleaseMedia                        16
#comfunc global IDiscFormat2RawCD_SetWriteSpeed                       17 int,int
#comfunc global IDiscFormat2RawCD_put_Recorder                        18 sptr
#comfunc global IDiscFormat2RawCD_get_Recorder                        19 sptr
#comfunc global IDiscFormat2RawCD_put_BufferUnderrunFreeDisabled      20 int
#comfunc global IDiscFormat2RawCD_get_BufferUnderrunFreeDisabled      21 var
#comfunc global IDiscFormat2RawCD_get_StartOfNextSession              22 var
#comfunc global IDiscFormat2RawCD_get_LastPossibleStartOfLeadout      23 var
#comfunc global IDiscFormat2RawCD_get_CurrentPhysicalMediaType        24 var
#comfunc global IDiscFormat2RawCD_get_SupportedSectorTypes            25 var
#comfunc global IDiscFormat2RawCD_put_RequestedSectorType             26 int
#comfunc global IDiscFormat2RawCD_get_RequestedSectorType             27 var
#comfunc global IDiscFormat2RawCD_put_ClientName                      28 wstr
#comfunc global IDiscFormat2RawCD_get_ClientName                      29 var
#comfunc global IDiscFormat2RawCD_get_RequestedWriteSpeed             30 var
#comfunc global IDiscFormat2RawCD_get_RequestedRotationTypeIsPureCAV  31 var
#comfunc global IDiscFormat2RawCD_get_CurrentWriteSpeed               32 var
#comfunc global IDiscFormat2RawCD_get_CurrentRotationTypeIsPureCAV    33 var
#comfunc global IDiscFormat2RawCD_get_SupportedWriteSpeeds            34 var
#comfunc global IDiscFormat2RawCD_get_SupportedWriteSpeedDescriptors  35 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。