ホーム › Storage.Imapi › IDiscRecorder
IDiscRecorder
COMメソッド 15
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| pbyUniqueID | BYTE* | in | レコーダーを一意に識別する ID を格納したバイトバッファへのポインタである。 |
| nulIDSize | DWORD | in | ID バッファのサイズをバイト単位で指定する。 |
| nulDriveNumber | DWORD | in | レコーダーに対応するドライブ番号を指定する。 |
| pbyUniqueID | BYTE* | inoutoptional | レコーダーの一意な ID を受け取るバイトバッファへのポインタである。 |
| ulBufferSize | DWORD | in | 受け取り用バッファのサイズをバイト単位で指定する。 |
| pulReturnSizeRequired | DWORD* | out | 実際に必要なバッファのバイト数を受け取るポインタである。 |
vtbl 5 HRESULT GetRecorderType(RECORDER_TYPES* fTypeCode)
| fTypeCode | RECORDER_TYPES* | out | レコーダーの種別コードを受け取るポインタである。 |
vtbl 6 HRESULT GetDisplayNames(LPWSTR* pbstrVendorID, LPWSTR* pbstrProductID, LPWSTR* pbstrRevision)
| pbstrVendorID | LPWSTR* | inoutoptional | ベンダー ID 文字列を受け取るポインタである。 |
| pbstrProductID | LPWSTR* | inoutoptional | 製品 ID 文字列を受け取るポインタである。 |
| pbstrRevision | LPWSTR* | inoutoptional | リビジョン文字列を受け取るポインタである。 |
| pbstrBasePnPID | LPWSTR* | out | レコーダーの基底プラグアンドプレイ ID 文字列を受け取るポインタである。 |
| pbstrPath | LPWSTR* | out | レコーダーのデバイスパス文字列を受け取るポインタである。 |
vtbl 9 HRESULT GetRecorderProperties(IPropertyStorage** ppPropStg)
| ppPropStg | IPropertyStorage** | out | レコーダーのプロパティを格納した IPropertyStorage を受け取るポインタである。 |
vtbl 10 HRESULT SetRecorderProperties(IPropertyStorage* pPropStg)
| pPropStg | IPropertyStorage* | inoptional | レコーダーへ設定するプロパティを格納した IPropertyStorage を指定する。 |
vtbl 11 HRESULT GetRecorderState(DISC_RECORDER_STATE_FLAGS* pulDevStateFlags)
| pulDevStateFlags | DISC_RECORDER_STATE_FLAGS* | out | レコーダーの現在の状態を表すフラグを受け取るポインタである。 |
vtbl 12 HRESULT OpenExclusive()
vtbl 13 HRESULT QueryMediaType(MEDIA_TYPES* fMediaType, MEDIA_FLAGS* fMediaFlags)
| fMediaType | MEDIA_TYPES* | out | 装着メディアの種別を受け取るポインタである。 |
| fMediaFlags | MEDIA_FLAGS* | out | メディアに関する追加フラグを受け取るポインタである。 |
vtbl 14 HRESULT QueryMediaInfo(BYTE* pbSessions, BYTE* pbLastTrack, DWORD* ulStartAddress, DWORD* ulNextWritable, DWORD* ulFreeBlocks)
| pbSessions | BYTE* | out | メディア上のセッション数を受け取るポインタである。 |
| pbLastTrack | BYTE* | out | 最後のトラック番号を受け取るポインタである。 |
| ulStartAddress | DWORD* | out | 書き込み開始アドレスを受け取るポインタである。 |
| ulNextWritable | DWORD* | out | 次に書き込み可能なアドレスを受け取るポインタである。 |
| ulFreeBlocks | DWORD* | out | メディア上の空きブロック数を受け取るポインタである。 |
vtbl 15 HRESULT Eject()
| bFullErase | BYTE | in | 完全消去を行う場合は 0 以外を、簡易消去を行う場合は 0 を指定する。 |
vtbl 17 HRESULT Close()
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDiscRecorder "{85AC9776-CA88-4CF2-894E-09598C078A41}" #usecom global IDiscRecorder IID_IDiscRecorder "{}" #comfunc global IDiscRecorder_Init 3 var,int,int #comfunc global IDiscRecorder_GetRecorderGUID 4 var,int,var #comfunc global IDiscRecorder_GetRecorderType 5 var #comfunc global IDiscRecorder_GetDisplayNames 6 var,var,var #comfunc global IDiscRecorder_GetBasePnPID 7 var #comfunc global IDiscRecorder_GetPath 8 var #comfunc global IDiscRecorder_GetRecorderProperties 9 sptr #comfunc global IDiscRecorder_SetRecorderProperties 10 sptr #comfunc global IDiscRecorder_GetRecorderState 11 var #comfunc global IDiscRecorder_OpenExclusive 12 #comfunc global IDiscRecorder_QueryMediaType 13 var,var #comfunc global IDiscRecorder_QueryMediaInfo 14 var,var,var,var,var #comfunc global IDiscRecorder_Eject 15 #comfunc global IDiscRecorder_Erase 16 int #comfunc global IDiscRecorder_Close 17 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDiscRecorder "{85AC9776-CA88-4CF2-894E-09598C078A41}" #usecom global IDiscRecorder IID_IDiscRecorder "{}" #comfunc global IDiscRecorder_Init 3 sptr,int,int #comfunc global IDiscRecorder_GetRecorderGUID 4 sptr,int,sptr #comfunc global IDiscRecorder_GetRecorderType 5 sptr #comfunc global IDiscRecorder_GetDisplayNames 6 sptr,sptr,sptr #comfunc global IDiscRecorder_GetBasePnPID 7 sptr #comfunc global IDiscRecorder_GetPath 8 sptr #comfunc global IDiscRecorder_GetRecorderProperties 9 sptr #comfunc global IDiscRecorder_SetRecorderProperties 10 sptr #comfunc global IDiscRecorder_GetRecorderState 11 sptr #comfunc global IDiscRecorder_OpenExclusive 12 #comfunc global IDiscRecorder_QueryMediaType 13 sptr,sptr #comfunc global IDiscRecorder_QueryMediaInfo 14 sptr,sptr,sptr,sptr,sptr #comfunc global IDiscRecorder_Eject 15 #comfunc global IDiscRecorder_Erase 16 int #comfunc global IDiscRecorder_Close 17 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。