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

IIsoImageManager

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

公式ドキュメント

既存の .iso ファイルに書き込み可能な有効なファイルシステムが含まれているかどうかを検証するには、このインターフェイスを使用します。

解説(Remarks)

SetPath によって有効なパスが指定された場合、指定されたイメージファイルから IStream オブジェクトが作成され、Stream プロパティが設定されます。 SetStream によって有効な IStream が指定された場合、それがイメージの検証に直接使用され、Path プロパティは設定されません。

このインターフェイスは、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 ではネイティブにサポートされます。

メソッド 5

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

vtbl 7 HRESULT get_Path(LPWSTR* pVal)

.iso イメージへの論理パスを取得します。

pValLPWSTR*out.iso イメージへの論理パスへのポインター。例: "c:\path\file.iso"。

解説(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 8 HRESULT get_Stream(IStream** data)

.iso イメージに関連付けられた IStream オブジェクトを取得します。

dataIStream**out.iso イメージに関連付けられた IStream オブジェクト。

戻り値

成功した場合は 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 9 HRESULT SetPath(LPWSTR Val)

Path プロパティの値に .iso イメージへの論理パスを設定します。

ValLPWSTRin.iso イメージへの論理パス。例: "c:\path\file.iso"。

戻り値

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

戻り値 説明
IMAPI_E_INVALID_PATH
パス '%1!s!' の形式が正しくないか、無効な文字が含まれています。

値: 0xC0AAB110

解説(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 10 HRESULT SetStream(IStream* data)

Stream プロパティに、.iso イメージに関連付けられた IStream オブジェクトを設定します。

dataIStream*in.iso イメージに関連付けられた IStream オブジェクト。

戻り値

成功した場合は 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 11 HRESULT Validate()

指定された .iso イメージが有効かどうかを判定します。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
IMAPI_E_IMAGEMANAGER_IMAGE_NOT_ALIGNED イメージが 2 KB のセクター境界に整列していません。
IMAPI_E_IMAGEMANAGER_NO_VALID_VD_FOUND イメージに有効なボリューム記述子が含まれていません。
IMAPI_E_IMAGEMANAGER_NO_IMAGE このメソッドを呼び出す前に、SetPath メソッドまたは SetStream メソッドでイメージが設定されていません。
IMAPI_E_IMAGEMANAGER_IMAGE_TOO_BIG 指定されたイメージはサイズが MAXLONG を超えているため、大きすぎて検証できません。

解説(Remarks)

このメソッドが成功するには、ディスクイメージ (ファイルまたはストリーム) が次の条件を満たしている必要があります。

ディスクイメージがこれらの条件を満たしていない場合、このメソッドは該当する失敗コードを返します。さらに重要な点として、検証に失敗すると、記録後に Windows がそのイメージをマウントする際の操作の成功率に影響します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IIsoImageManager "{6CA38BE5-FBBB-4800-95A1-A438865EB0D4}"
#usecom global IIsoImageManager IID_IIsoImageManager "{}"
#comfunc global IIsoImageManager_get_Path    7 var
#comfunc global IIsoImageManager_get_Stream  8 sptr
#comfunc global IIsoImageManager_SetPath     9 wstr
#comfunc global IIsoImageManager_SetStream   10 sptr
#comfunc global IIsoImageManager_Validate    11
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。