IBurnVerification
COM公式ドキュメント
このインターフェースを IDiscFormat2Data または IDiscFormat2TrackAtOnce と組み合わせて使用し、書き込み操作の後に書き込み済みメディアの整合性をどのように検証するかを決定する Burn Verification Level プロパティを取得または設定します。
解説(Remarks)
次のサンプル関数は、IMAPI_BURN_VERIFICATION_LEVEL で定義される書き込み検証レベルを実装する方法を示します。書き込み検証レベルは、書き込み操作の前に設定する必要があります。
#include <imapi2.h>
HRESULT setBurnVerification(
IDiscFormat2Data *DataWriter,
IMAPI_BURN_VERIFICATION_LEVEL VerificationLevel
)
{
HRESULT hr = S_OK;
IBurnVerification *burnVerifier = NULL;
hr = DataWriter->QueryInterface(IID_PPV_ARGS(&burnVerifier));
if (SUCCEEDED(hr))
{
hr = burnVerifier->put_BurnVerificationLevel(VerificationLevel);
}
if (burnVerifier != NULL)
{
burnVerifier->Release();
burnVerifier = NULL;
}
return hr;
}
このインターフェースは、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 ではネイティブにサポートされます。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Burn Verification Level を設定します。
| value | IMAPI_BURN_VERIFICATION_LEVEL | in | Burn Verification Level を定義する値です。指定可能な値については、IMAPI_BURN_VERIFICATION_LEVEL を参照してください。 |
戻り値
成功した場合は 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 ではネイティブにサポートされます。
現在の Burn Verification Level を取得します。
| value | IMAPI_BURN_VERIFICATION_LEVEL* | out | 現在の Burn Verification Level を示す IMAPI_BURN_VERIFICATION_LEVEL 列挙型へのポインターです。 |
戻り値
成功した場合は 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 ではネイティブにサポートされます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IBurnVerification "{D2FFD834-958B-426D-8470-2A13879C6A91}" #usecom global IBurnVerification IID_IBurnVerification "{}" #comfunc global IBurnVerification_put_BurnVerificationLevel 3 int #comfunc global IBurnVerification_get_BurnVerificationLevel 4 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IBurnVerification "{D2FFD834-958B-426D-8470-2A13879C6A91}" #usecom global IBurnVerification IID_IBurnVerification "{}" #comfunc global IBurnVerification_put_BurnVerificationLevel 3 int #comfunc global IBurnVerification_get_BurnVerificationLevel 4 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。