IFileSystemImage
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
このインターフェイスは、ファイルシステムイメージの構築、セッションパラメーターの設定、およびイメージのインポートまたはエクスポートに使用します。
解説(Remarks)
スクリプトで CFileSystemImage オブジェクトを作成するには、CreateObject の呼び出し時にプログラム識別子として IMAPI2.MsftFileSystemImage を指定します。
メソッド 50
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
ルートディレクトリ項目を取得します。
| pVal | IFsiDirectoryItem** | out | ルートディレクトリ項目の IFsiDirectoryItem インターフェイス。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
記録セッションの開始ブロックアドレスを取得します。
| pVal | INT* | out | 記録セッションの開始ブロックアドレス。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
セッションの開始ブロックは、次の方法で設定できます。
- ファイルシステムをインポートすると、セッションの開始ブロックが自動的に設定されます。
- 直前のセッションをインポートしない場合、クライアントは IFileSystemImage::put_SessionStartBlock を呼び出してこのプロパティを設定できます。
記録セッションの開始ブロックアドレスを設定します。
| newVal | INT | in | 新しい記録セッションのブロック番号。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。
解説(Remarks)
直前のセッションがインポートされている場合、セッションの開始ブロックを手動で変更することはできません。
イメージに使用できるブロックの最大数を取得します。
| pVal | INT* | out | ファイルシステムイメージの作成に使用するブロック数。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
イメージに使用できるブロックの最大数を設定します。
| newVal | INT | in | ファイルシステムイメージの作成に使用するブロック数。 既定では、332,800 ブロックを使用してファイルシステムイメージが作成されます。この値は、650MB のディスクあたり 74 分のオーディオ容量を前提としています。 ブロック数を無制限にするには、newVal に 0 を設定します。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
FreeMediaBlocks プロパティに指定された値が、現在のデータに基づく推定イメージサイズに対して小さすぎます。
値: 0xC0AAB121 |
レコーダーの機能に基づいて、使用できるブロックの最大数を設定します。
| discRecorder | IDiscRecorder2* | in | 使用できるブロックの最大数の取得元となる記録デバイスを識別する IDiscRecorder2 インターフェイス。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
| 内部エラーが発生しました: %1!ls!。 |
使用中のブロック数を取得します。
| pVal | INT* | out | ファイルシステムイメージで使用されているブロック数の推定値。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
このファイルシステムイメージのボリューム名を取得します。
| pVal | LPWSTR* | out | このファイルシステムイメージのボリューム名を含む文字列。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
ボリューム名を設定するには、IFileSystemImage::put_VolumeName メソッドを呼び出します。
このファイルシステムイメージのボリューム名を設定します。
| newVal | LPWSTR | in | このファイルシステムイメージのボリューム名を含む文字列。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
解説(Remarks)
文字列は 15 文字までに制限されます。ISO 9660 ディスクの場合、ボリューム名には次の文字を使用できます。
- "A" ~ "Z"
- "0" ~ "9"
- "_" (アンダースコア)
- "a" ~ "z"
- "A" ~ "Z"
- "0" ~ "9"
- "." (ピリオド)
- "_" (アンダースコア)
インポートされたファイルシステムから提供されるボリューム名を取得します。
| pVal | LPWSTR* | out | インポートされたファイルシステムから提供されるボリューム名を含む文字列。ファイルシステムがインポートされるまでは NULL です。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
インポートされたボリューム名はユーザーへの情報提供のために用意されているもので、後続のセッションに自動的に引き継がれることはありません。
ファイルシステムイメージに追加するブートイメージを取得します。
| pVal | IBootOptions** | out | ディスクに追加するブートイメージの IBootOptions インターフェイス。ブートイメージが指定されていない場合は NULL です。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
ブートオブジェクトを含めることができるのは、最初のディスクイメージのみです。
値: 0xC0AAB149 |
|
|
ブートオブジェクトをイメージに追加できませんでした。
値: 0xC0AAB148 |
ファイルシステムイメージに追加するブートイメージを設定します。このメソッドは、渡された IBootOptions インターフェイスからストリームをコピーすることで、ブートオプションの完全なコピーを作成します。
| newVal | IBootOptions* | in | ファイルシステムイメージに追加するブートイメージの IBootOptions インターフェイス。NULL を指定できます。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ブートオブジェクトを含めることができるのは、最初のディスクイメージのみです。
値: 0xC0AAB149 |
|
|
ブートオブジェクトをイメージに追加できませんでした。
値: 0xC0AAB148 |
解説(Remarks)
ブートイメージを指定できるのは、ファイルシステムイメージに以前のセッションが存在しない場合のみです。ブートイメージはディスクの先頭セクターから開始する必要があります。
ファイルシステムイメージ内のファイル数を取得します。
| pVal | INT* | out | ファイルシステムイメージ内のファイル数。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
ファイルシステムイメージ内のディレクトリ数を取得します。
| pVal | INT* | out | ファイルシステムイメージ内のディレクトリ数。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
スタッシュファイルが構築される一時ディレクトリを取得します。
| pVal | LPWSTR* | out | 一時ディレクトリのパスを含む文字列。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
スタッシュファイルが構築される一時ディレクトリを設定します。
| newVal | LPWSTR | in | 一時作業ディレクトリのパスを含む文字列。既定値は現在の temp ディレクトリです。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
|
|
作業ディレクトリ %1!ls! は有効ではありません。
値: 0xC0AAB140 |
|
|
作業ディレクトリを %1!ls! に設定できません。使用可能な領域は %2!I64d! バイトですが、およそ %3!I64d! バイトが必要です。
値: 0xC0AAB141 |
解説(Remarks)
スタッシュファイルは、ファイルシステムイメージの構築に使用される一時ファイルです。
既存のスタッシュファイルを新しい作業ディレクトリに移動できない場合は、例外が発生します。
ファイルシステムイメージの結果ストリームが存在する場合、作業ディレクトリを変更することはできません。
変更ポイント識別子を取得します。
| pVal | INT* | out | 変更ポイント識別子。この識別子は、ファイルシステムイメージの作成開始以降に加えられた変更の回数を表します。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
アプリケーションは、ファイルシステムを変更する前にこのプロパティの値を保存しておき、後でその値を IFileSystemImage::RollbackToChangePoint メソッドに渡すことで、その時点以降の変更を元に戻すことができます。
アプリケーションは IFileSystemImage::LockInChangePoint メソッドを呼び出して、構築途中の任意の時点でファイルシステムイメージの状態をロックできます。いったんロックを設定すると、RollbackToChangePoint を呼び出してファイルシステムイメージを以前の状態に戻すことはできません。
ファイルシステムイメージの作成および構築における準拠レベルを決定します。(Get)
| pVal | VARIANT_BOOL* | out | ファイルシステムイメージが該当する規格に厳密に準拠して作成される場合は VARIANT_TRUE です。 IMAPI バージョン 1.0 との互換性のために準拠基準が緩和されている場合は VARIANT_FALSE です。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
ファイルシステムイメージの作成および構築における準拠レベルを決定します。(Put)
| newVal | VARIANT_BOOL | in | 該当する規格に厳密に準拠してファイルシステムイメージを作成するには、VARIANT_TRUE を設定します。VARIANT_TRUE を指定できるのは、ファイルシステムイメージが空の場合のみです。 IMAPI バージョン 1.0 との互換性のために準拠基準を緩和するには、VARIANT_FALSE を設定します。 既定値は VARIANT_FALSE です。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。
解説(Remarks)
このプロパティが VARIANT_TRUE の場合に、ファイルシステムの制約に違反する操作をメソッドが要求すると、例外がスローされます。
ファイル名およびディレクトリ名に制限された文字セットを使用するかどうかを判断します。
| pVal | VARIANT_BOOL* | out | ファイルシステムイメージに追加するファイル名およびディレクトリ名が、CP_ANSI (コードポイント 32 ~ 127) に直接対応する文字で構成されている必要がある場合は VARIANT_TRUE です。それ以外の場合は VARIANT_FALSE です。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
ファイル名およびディレクトリ名を CP_ANSI 文字のみに制限するかどうかを決定します。
| newVal | VARIANT_BOOL | in | ファイル名およびディレクトリ名を CP_ANSI 文字のみに制限するには VARIANT_TRUE を設定します。それ以外の場合は VARIANT_FALSE を設定します。既定値は VARIANT_FALSE です。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。
解説(Remarks)
このプロパティを設定しても、既にファイルシステムイメージに含まれているファイルやディレクトリには影響しません。
このプロパティの値を変更できるのは、結果ストリームがアクティブでない場合のみです。
結果ストリームの生成時に作成するファイルシステムの種類を取得します。
| pVal | FsiFileSystems* | out | 結果ストリームの生成時に作成する 1 つ以上のファイルシステムの種類。指定可能な値については、FsiFileSystems 列挙型を参照してください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
ファイルシステムの種類を指定するには、IFileSystemImage::put_FileSystemsToCreate メソッドを呼び出します。IFilesystemImage::ChooseImageDefaults または IFilesystemImage::ChooseImageDefaultsForMediaType を呼び出して、IMAPI にファイルシステムを選択させることもできます。
サポートされているファイルシステムの種類の一覧を取得するには、IFileSystemImage::get_FileSystemsSupported メソッドを呼び出します。
結果ストリームの生成時に作成するファイルシステムを設定します。
| newVal | FsiFileSystems | in | 結果ストリームの生成時に作成する 1 つ以上のファイルシステム。指定可能な値については、FsiFileSystems 列挙型を参照してください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
|
|
このファイルシステムイメージには、%1!ls! ファイルシステムに対してディレクトリが多すぎます。
値: 0xC0AAB130 |
|
|
インポートされたセッションのファイルシステムと新しいセッションのファイルシステムが一致しないため、作成対象として指定したファイルシステムを変更できません。
値: 0xC0AAB163L |
|
|
ISO9660 ではディレクトリの階層は 8 レベルまでに制限されています。
値: 0xC0AAB131 |
|
|
インポートされたセッションのファイルシステムと現在のセッションのファイルシステムが一致しないため、作成対象として指定したファイルシステムを変更できません。
値: 0xC0AAB133 |
|
|
この機能は現在のファイルシステムのリビジョンではサポートされていません。この機能を使用せずにイメージが作成されます。
値: 0x00AAB15FL |
解説(Remarks)
直前のセッションが IFileSystemImage::ImportFileSystem または IFileSystemImage::ImportSpecificFileSystem を使用してインポートされており、そのセッションのレイアウトが、IFileSystemImage::put_FileSystemToCreate の newVal で指定されたファイルシステムに対して IMAPI が使用するレイアウトと互換性がない場合、このメソッドは IMAPI_E_INCOMPATIBLE_PREVIOUS_SESSION を返します。
ファイルシステムを変更できるのは、結果ストリームがアクティブでない場合のみです。
クライアントがファイルシステムイメージの構築に使用できるファイルシステムの種類の一覧を取得します。
| pVal | FsiFileSystems* | out | クライアントがファイルシステムイメージの構築に使用できる 1 つ以上のファイルシステムの種類。指定可能な値については、FsiFileSystems 列挙型を参照してください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
ファイルシステムイメージの UDF リビジョンレベルを設定します。
| newVal | INT | in | UDF リビジョンレベルを表す 16 進数。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
解説(Remarks)
値は UDF 仕様に従ってエンコードされますが、変数のサイズは LONG です。たとえば、リビジョンレベル 1.02 は 0x102 と表されます。
このプロパティは、新しいファイルシステムイメージの UDF リビジョンを指定するために使用します。ファイルシステムがインポートされている場合、このメソッドを呼び出して UDF リビジョンレベルを変更することはできません。
サポートされている UDF リビジョンレベルを確認するには、IFileSystemImage::get_UDFRevisionsSupported メソッドを呼び出します。
インポートされたファイルシステムイメージの UDF リビジョンレベルを取得します。
| pVal | INT* | out | インポートされたファイルシステムイメージの UDF リビジョンレベル。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
値は UDF 仕様に従ってエンコードされますが、変数のサイズは LONG です。たとえば、リビジョンレベル 1.02 は 0x102 と表されます。
サポートされている UDF リビジョンレベルの一覧を取得します。
| pVal | SAFEARRAY** | out | サポートされている UDF リビジョンレベルの一覧。一覧の各要素は VARIANT です。バリアントの型は VT_I4 です。バリアントの lVal メンバーにリビジョンレベルが格納されます。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
値は UDF 仕様に従ってエンコードされますが、変数のサイズは LONG です。たとえば、リビジョンレベル 1.02 は 0x102 と表されます。
現在のメディアに基づいて、既定のファイルシステムの種類とイメージサイズを設定します。
| discRecorder | IDiscRecorder2* | in | 現在のメディアが入っているデバイスを識別する IDiscRecorder2。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
メディアに互換性がないか、物理フォーマットが不明です。
値: 0xC0AA0203 |
|
|
FreeMediaBlocks プロパティに指定された値が、現在のデータに基づく推定イメージサイズに対して小さすぎます。
値: 0xC0AAB121 |
|
|
指定されたディスクには、サポートされているファイルシステムのいずれも含まれていません。
値: 0xC0AAB151 |
指定されたメディアの種類に基づいて、既定のファイルシステムの種類とイメージサイズを設定します。
| value | IMAPI_MEDIA_PHYSICAL_TYPE | in | 書き込みイメージの書き込み先となる物理メディアの種類を識別します。指定可能な値については、IMAPI_MEDIA_PHYSICAL_TYPE 列挙型を参照してください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
|
|
FreeMediaBlocks プロパティに指定された値が、現在のデータに基づく推定イメージサイズに対して小さすぎます。
値: 0xC0AAB121 |
ファイルシステムイメージの ISO9660 互換性レベルを設定します。
| newVal | INT | in | ファイルシステムイメージの ISO9660 互換性レベル。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
解説(Remarks)
サポートされている互換性レベルを確認するには、IFileSystemImage::get_ISO9660InterchangeLevelsSupported メソッドを呼び出します。
このプロパティは、IFileSystemImage::put_FileSystemsToCreate の呼び出し時に FsiFileSystemISO9660 を指定した場合にのみ意味を持ちます。
結果イメージの作成時に使用する ISO9660 互換性レベルを取得します。
| pVal | INT* | out | ISO9660 ファイルシステムのインターチェンジレベルを示します。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
サポートされている互換性レベルの一覧を取得するには、IFileSystemImage::get_ISO9660InterchangeLevelsSupported メソッドを呼び出します。
サポートされている ISO9660 互換性レベルを取得します。
| pVal | SAFEARRAY** | out | サポートされている ISO9660 互換性レベルの一覧。一覧の各項目は、サポートされるインターチェンジレベルを 1 つ示す VARIANT です。バリアントの型は VT_UI4 です。バリアントの ulVal メンバーに互換性レベルが格納されます。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
ファイルシステムとファイルデータを含む結果オブジェクトを作成します。
| resultStream | IFileSystemImageResult** | out | イメージ結果の IFileSystemImageResult インターフェイス。 クライアントアプリケーションは、このイメージをメディアや、ディスクドライブなどの長期保存用デバイスにストリーミングできます。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
解説(Remarks)
現在の実装では、直前に IFileSystemImage::IdentifyFileSystemsOnDisc メソッドを呼び出していると、IFileSystemImage::CreateResultImage はディスクメディアへのアクセスを必要とします。この問題を回避するには、IFileSystemImage::IdentifyFileSystemsOnDisc の操作専用に別の IFileSystemImage オブジェクトを作成することをお勧めします。
ファイルシステムが単一のセッションで生成され、開始アドレスが 0 である場合、生成されたストリームは ISO ファイルとして保存できます。
指定したファイルまたはディレクトリが存在するかどうかを確認します。
| fullPath | LPWSTR | in | 確認するディレクトリまたはファイルの完全修飾パスを含む文字列。 |
| itemType | FsiItemType* | out | 項目がファイルであるか、ディレクトリであるか、または存在しないかを示します。指定可能な値については、FsiItemType 列挙型を参照してください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
|
|
指定されたパスが完全修飾されていません。パスは、イメージのルート、またはディレクトリ構造内でのイメージの位置を示すために、'\\' または '/' で始まる必要があります。
値: 0xC0AAB110 |
|
|
ディレクトリ '%1!s!' が FileSystemImage の階層内に見つかりません。
値: 0xC0AAB11A |
|
|
オブジェクトはこのインターフェイスをサポートしていません。
値: 0x80004002 |
ディスクと、そのディスクに記録されたセッションを識別する文字列を取得します。
| discIdentifier | LPWSTR* | out | ディスクとそのディスク上のセッションを識別するシグネチャを含む文字列。この文字列は、ディスク間で一意であることが保証されるものではありません。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
このメソッドを呼び出す前に MultisessionInterfaces プロパティを設定する必要があります。
値: 0xC0AAB15D |
解説(Remarks)
ディスク上にセッションを重ねて記録する際、このシグネチャは、クライアントがセッションの順序を確実にしたり、ディスク上のセッションとこれからディスクに書き込むセッションイメージを区別したりするためのキーとして機能します。
CalculateDiscIdentifier を呼び出す前に、IFileSystemImage::put_MultisessionInterfaces を呼び出す必要があります。
光学メディア上に存在するファイルシステムの種類の一覧を取得します。
| discRecorder | IDiscRecorder2* | in | メディアが入っている記録デバイスを識別する IDiscRecorder2 インターフェイス。このパラメーターが NULL の場合は、IMultisession で指定された discRecorder が使用されます。 |
| fileSystems | FsiFileSystems* | out | ディスク上の 1 つ以上のファイルシステム。指定可能な値については、FsiFileSystems 列挙型を参照してください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
クライアントアプリケーションは、このメソッドが返した値を指定して IFileSystemImage::GetDefaultFileSystemForImport を呼び出すことで、インポートするファイルシステムの種類を判断できます。
既定でインポートするファイルシステムを取得します。
| fileSystems | FsiFileSystems | in | 1 つ以上のファイルシステムの値。指定可能な値については、FsiFileSystems 列挙型を参照してください。 |
| importDefault | FsiFileSystems* | out | 既定のファイルシステムを示す単一のファイルシステムの値。この値は、fileSystems で指定されたファイルシステムのいずれかです。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
解説(Remarks)
IFileSystemImage::ImportFileSystem で使用する既定のファイルシステムを特定するには、このメソッドを使用します。
サポートされているファイルシステムを特定するには、IFileSystemImage::get_FileSystemsSupported メソッドを呼び出します。
現在のディスク上の既定のファイルシステムをインポートします。
| importedFileSystem | FsiFileSystems* | out | インポートされたファイルシステムを示します。指定可能な値については、FsiFileSystems 列挙型を参照してください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
このメソッドを呼び出す前に MultisessionInterfaces プロパティを設定する必要があります。
値: 0xC0AAB15D |
|
|
光学メディアが空です。
値: 0xC0AAB150 |
|
|
指定されたディスクには、サポートされているファイルシステムのいずれも含まれていません。
値: 0xC0AAB151 Note
これらのファイルシステムは実際にはこの操作でサポートされている可能性が高いのですが、低レベルでは、ImportFileSystem の呼び出し時に IMAPI2 が汎用的な例外/エラー処理を行い、エラー 0xC0AAB151 を返します。ディスクを排他アクセスで取得できない場合や、その他の理由でアクセスが拒否された場合には、このエラーは報告されません。
|
|
|
ブートオブジェクトを含めることができるのは、最初のディスクイメージのみです。
値: 0xC0AAB149 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
FreeMediaBlocks プロパティに指定された値が、現在のデータに基づく推定イメージサイズに対して小さすぎます。
値: 0xC0AAB121 |
|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
|
|
現在のメディアで提供されているマルチセッションの種類は、いずれも IMAPI ではサポートされていません。
値: 0xC0AAB15C Note IFileSystemImage::ImportFileSystem メソッドは、記録デバイスにメディアが入っていない場合にこのエラーを返します。
|
|
|
メディアからインポートされた直前のセッションのレイアウトに互換性がないため、操作に失敗しました。
値: 0xC0AAB133 |
解説(Remarks)
IFileSystemImage::ImportFileSystem を呼び出す前に、IFileSystemImage::put_MultisessionInterfaces を呼び出す必要があります。さらに、IFileSystemImage::put_MultisessionInterfaces の前に IDiscFormat2::get_MediaHeuristicallyBlank を呼び出して、メディアが空でないことを確認することをお勧めします。
ディスクに複数のファイルシステムが含まれている場合、インポートされるファイルシステムは 1 つだけです。このメソッドは、UDF、Joliet、ISO 9660 の順序でインポートするファイルシステムを選択します。 インポートでは、ディレクトリとファイルがメモリ内のファイルシステム構造に転送されます。
このメソッドは、メモリ内ファイルシステムの構築中であればいつでも呼び出せます。 インポート中に、メモリ内のコピーに同じファイルまたはディレクトリが既に存在する場合は、メモリ内のバージョンが保持され、インポートされるファイルは破棄されます。
ディスクの既定のファイルシステムを確認するには、IFileSystemImage::GetDefaultFileSystemForImport メソッドを呼び出します。
このメソッドはファイル情報のみを読み取ります。項目がファイルの場合、ファイルデータは IFsiDirectoryItem::AddFile、IFsiDirectoryItem::AddTree、または IFsiDirectoryItem::Add メソッドの呼び出し時にコピーされます。
最後のセッションにサポートされているファイルシステムが見つからない場合、このメソッドは IMAPI_E_NO_SUPPORTED_FILE_SYSTEM を返します。 また、最後のセッションのファイルシステムのレイアウトが、結果イメージ用に要求されたファイルシステムを作成する際に IMAPI が使用するレイアウトと互換性がない場合、このメソッドは IMAPI_E_INCOMPATIBLE_PREVIOUS_SESSION を返します。詳細については、IFileSystemImage::put_FileSystemsToCreate メソッドのドキュメントを参照してください。
ディスクから特定のファイルシステムをインポートします。
| fileSystemToUse | FsiFileSystems | in | インポートするファイルシステムを示します。指定可能な値については、FsiFileSystems 列挙型を参照してください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
|
|
このメソッドを呼び出す前に MultisessionInterfaces プロパティを設定する必要があります。
値: 0xC0AAB15D |
|
|
ブートオブジェクトを含めることができるのは、最初のディスクイメージのみです。
値: 0xC0AAB149 |
|
|
光学メディアが空です。
値: 0xC0AAB150 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
|
|
現在のメディアで提供されているマルチセッションの種類は、いずれも IMAPI ではサポートされていません。
値: 0xC0AAB15C Note IFileSystemImage::ImportFileSystem メソッドは、記録デバイスにメディアが入っていない場合にこのエラーを返します。
|
|
|
メディアからインポートされた直前のセッションのレイアウトに互換性がないため、操作に失敗しました。
値: 0xC0AAB133 |
|
|
指定されたディスクには '%1!ls!' ファイルシステムが含まれていません。
値: 0xC0AAB152 |
|
|
インポート対象として指定されたファイルシステムに、無効なファイル名が含まれています。
値: 0xC0AAB110 |
解説(Remarks)
IFileSystemImage::ImportSpecificFileSystem を呼び出す前に、IFileSystemImage::put_MultisessionInterfaces を呼び出す必要があります。さらに、IFileSystemImage::put_MultisessionInterfaces の前に IDiscFormat2::get_MediaHeuristicallyBlank を呼び出して、メディアが空でないことを確認することをお勧めします。
このメソッドは、メモリ内ファイルシステムの構築中であればいつでも呼び出せます。 インポート中に、メモリ内のコピーに同じファイルまたはディレクトリが既に存在する場合は、メモリ内のバージョンが保持され、インポートされるファイルは破棄されます。
書き換え可能なメディア (DVD+/-RW、DVDRAM、BD-RE) では、最初のセッションが ISO9660 ファイルシステムの場合、ファイルシステム上の制約により 2 番目のセッションのインポートや書き込みはサポートされません。
このメソッドはファイル情報のみを読み取ります。項目がファイルの場合、ファイルデータは IFsiDirectoryItem::AddFile、IFsiDirectoryItem::AddTree、または IFsiDirectoryItem::Add メソッドの呼び出し時にコピーされます。
最後のセッションのファイルシステムのレイアウトが、結果イメージ用に要求されたファイルシステムを作成する際に IMAPI が使用するレイアウトと互換性がない場合、このメソッドは IMAPI_E_INCOMPATIBLE_PREVIOUS_SESSION を返します。詳細については、IFileSystemImage::put_FileSystemsToCreate メソッドのドキュメントを参照してください。 fileSystemToUse で指定されたファイルシステムが見つからない場合、このメソッドは IMAPI_E_FILE_SYSTEM_NOT_FOUND を返します。
イメージを指定した変更ポイントの状態に戻します。
| changePoint | INT | in | ロールバック先の状態を示す変更ポイント。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
このファイルシステムイメージには、%1!ls! ファイルシステムに対してディレクトリが多すぎます。
値: 0xC0AAB130 |
|
|
ISO9660 ではディレクトリの階層は 8 レベルまでに制限されています。
値: 0xC0AAB131 |
解説(Remarks)
通常、アプリケーションはファイルシステムを変更する前に IFileSystemImage::get_ChangePoint メソッドを呼び出して変更ポイントの値を保存します。必要に応じて、その変更ポイントの値をこのメソッドに渡すことで、その時点以降の変更を元に戻すことができます。
アプリケーションは IFileSystemImage::LockInChangePoint メソッドを呼び出して、構築途中の任意の時点でファイルシステムイメージの状態をロックできます。ロックを設定した後は、このメソッドを呼び出してファイルシステムイメージを以前の状態に戻すことはできません。
現在の変更ポイントのレベルでファイルシステム情報をロックします。
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
| 内部エラーが発生しました: %1!ls!。 |
解説(Remarks)
変更ポイントをロックすると、それ以前の変更ポイントへのロールバックは許可されなくなります。
変更ポイントをロックしても、IFileSystemImage::get_ChangePoint プロパティは変化しません。
指定した名前のディレクトリ項目を作成します。
| name | LPWSTR | in | 作成するディレクトリ項目の名前を含む文字列。 |
| newItem | IFsiDirectoryItem** | out | 新しいディレクトリ項目の IFsiDirectoryItem インターフェイス。 使用が終わったら、IFsiDirectoryItem::Release メソッドを呼び出してインターフェイスを解放します。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
パラメーター %1!ls! に指定された値が有効ではありません。
値: 0xC0AAB101 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
解説(Remarks)
IFsiDirectoryItem インターフェイスのプロパティを設定した後、親ディレクトリ項目に対して IFsiDirectoryItem::Add メソッドを呼び出し、ファイルシステムイメージに追加します。
指定した名前のファイル項目を作成します。
| name | LPWSTR | in | 作成するファイル項目の名前を含む文字列。 |
| newItem | IFsiFileItem** | out | 新しいファイル項目の IFsiFileItem インターフェイス。 使用が終わったら、IFsiFileItem::Release メソッドを呼び出してインターフェイスを解放します。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
指定された name が有効ではありません。
値: 0xC0AAB101 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
解説(Remarks)
IFsiFileItem インターフェイスのプロパティを設定した後、親ディレクトリ項目に対して IFsiDirectoryItem::Add メソッドを呼び出し、ファイルシステムイメージに追加します。
UDF システムイメージのボリューム名を取得します。
| pVal | LPWSTR* | out | UDF システムイメージのボリューム名を含む文字列。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
Joliet システムイメージのボリューム名を取得します。
| pVal | LPWSTR* | out | Joliet システムイメージのボリューム名を含む文字列。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
ISO9660 システムイメージのボリューム名を取得します。
| pVal | LPWSTR* | out | ISO9660 システムイメージのボリューム名を含む文字列。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
ファイルシステムイメージに追加されるファイルを、書き込み前にステージングする必要があるかどうかを示します。
| pVal | VARIANT_BOOL* | out | ファイルシステムイメージに追加されるファイルを、書き込み前に 1 つ以上のステージファイルにステージングする必要がある場合は VARIANT_TRUE。ファイルシステムイメージに追加されるファイルをステージングせずに IMAPI がイメージ作成処理を最適化してもよい場合は、VARIANT_FALSE が返されます。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
解説(Remarks)
「ステージング」とは、書き込み操作を開始する前に、書き込む対象のすべてのファイルを含むイメージをハードディスク上に作成する処理です。
IFileSystemImage::put_StageFiles でこのプロパティを VARIANT_TRUE に設定した場合、影響を受けるのはプロパティを設定した後に追加されたファイルのみで、それらのファイルは常にステージングされます。プロパティに VARIANT_TRUE を指定する前にステージングされていなかったファイルは、ステージングされません。
VARIANT_FALSE を指定すると、ファイルシステムイメージの作成処理が次の 2 つの点で最適化されます。
- イメージの生成に要する時間が短くなります
- IMAPI がローカルディスク上で消費する領域が少なくなります
ファイルシステムイメージに追加されるファイルを、書き込み前にステージングするかどうかを決定します。
| newVal | VARIANT_BOOL | in | ファイルシステムイメージに追加されるファイルを、書き込み前に 1 つ以上のステージファイルへ強制的にステージングするには VARIANT_TRUE を設定します。ステージングが不要で、より高いパフォーマンスを求める場合は VARIANT_FALSE を設定します。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
実装されていません。
値: 0x80004001 |
解説(Remarks)
「ステージング」とは、書き込み操作を開始する前に、書き込む対象のすべてのファイルを含むイメージをハードディスク上に作成する処理です。
このプロパティを VARIANT_TRUE に設定した場合、影響を受けるのはプロパティを設定した後に追加されたファイルのみで、それらのファイルは常にステージングされます。プロパティに VARIANT_TRUE を指定する前にステージングされていなかったファイルは、ステージングされません。
VARIANT_FALSE を指定すると、ファイルシステムイメージの作成処理が次の 2 つの点で最適化されます。
- イメージの生成に要する時間が短くなります
- IMAPI がローカルディスク上で消費する領域が少なくなります
光学メディア用のマルチセッションインターフェイスの一覧を取得します。
| pVal | SAFEARRAY** | out | 光学メディア用のマルチセッションインターフェイスの一覧。一覧の各要素は VT_Dispatch 型の VARIANT です。バリアントの pdispVal メンバーに対して IMultisession インターフェイスをクエリしてください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
必要なメモリを割り当てられませんでした。
値: 0x8007000E |
解説(Remarks)
IMultisession インターフェイスに対して、派生した IMultisession インターフェイス (たとえば IMultisessionSequential インターフェイス) をクエリしてください。
光学メディア用のマルチセッションインターフェイスの一覧を設定します。
| newVal | SAFEARRAY* | in | 光学メディア用のマルチセッションインターフェイスの一覧。一覧の各要素は、型が VT_DISPATCH の VARIANT です。マルチセッションインターフェイスに対して IDispatch インターフェイスをクエリし、バリアントの pdispVal メンバーにその IDispatch インターフェイスを設定してください。 |
戻り値
成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。操作が失敗した場合は次のエラーコードが返されるのが一般的ですが、返される可能性のある値はこれらに限られません。
| リターンコード | 説明 |
|---|---|
|
ポインターが有効ではありません。
値: 0x80004003 |
|
|
要求されたマルチセッションの種類は IMAPI ではサポートされていません。
値: 0xC0AAB15B |
|
|
IMAPI は現在のメディアの種類でのマルチセッションを許可していません。
値: 0xC0AAB159 |
|
|
現在のメディアで提供されているマルチセッションの種類は、いずれも IMAPI ではサポートされていません。
値: 0xC0AAB15C |
|
|
マルチセッションのパラメーターのいずれかを取得できないか、値が正しくありません。
値: 0xC0AAB162 |
|
|
内部エラーが発生しました: %1!ls!。
値: 0xC0AAB100 |
|
|
ソースディスク上のブロック %1!I64d! にシークできません。この値は、光学メディアが空の場合にも返されます。
値: 0xC0AAB156 |
解説(Remarks)
このメソッドは、マルチセッションの種類に互換性があることを検証します。次のいずれかの場合にメソッドは成功します。
- 一覧に、IMultisession::put_InUse が VARIANT_TRUE に設定された派生 IMultisession インターフェイスが 1 つだけ含まれており、そのマルチセッションの種類が現在のメディアでサポートされ、かつ IFileSystemImage の実装でサポートされている場合。
- 一覧に、IMultisession::put_InUse プロパティが VARIANT_TRUE に設定された派生 IMultisession インターフェイスが 1 つも含まれていないが、現在のメディアでサポートされ、かつ IFileSystemImage の実装でサポートされている派生 IMultisession が少なくとも 1 つ含まれている場合。
例については、マルチセッションディスクの作成 を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IFileSystemImage "{2C941FE1-975B-59BE-A960-9A2A262853A5}" #usecom global IFileSystemImage IID_IFileSystemImage "{}" #comfunc global IFileSystemImage_get_Root 7 sptr #comfunc global IFileSystemImage_get_SessionStartBlock 8 var #comfunc global IFileSystemImage_put_SessionStartBlock 9 int #comfunc global IFileSystemImage_get_FreeMediaBlocks 10 var #comfunc global IFileSystemImage_put_FreeMediaBlocks 11 int #comfunc global IFileSystemImage_SetMaxMediaBlocksFromDevice 12 sptr #comfunc global IFileSystemImage_get_UsedBlocks 13 var #comfunc global IFileSystemImage_get_VolumeName 14 var #comfunc global IFileSystemImage_put_VolumeName 15 wstr #comfunc global IFileSystemImage_get_ImportedVolumeName 16 var #comfunc global IFileSystemImage_get_BootImageOptions 17 sptr #comfunc global IFileSystemImage_put_BootImageOptions 18 sptr #comfunc global IFileSystemImage_get_FileCount 19 var #comfunc global IFileSystemImage_get_DirectoryCount 20 var #comfunc global IFileSystemImage_get_WorkingDirectory 21 var #comfunc global IFileSystemImage_put_WorkingDirectory 22 wstr #comfunc global IFileSystemImage_get_ChangePoint 23 var #comfunc global IFileSystemImage_get_StrictFileSystemCompliance 24 var #comfunc global IFileSystemImage_put_StrictFileSystemCompliance 25 int #comfunc global IFileSystemImage_get_UseRestrictedCharacterSet 26 var #comfunc global IFileSystemImage_put_UseRestrictedCharacterSet 27 int #comfunc global IFileSystemImage_get_FileSystemsToCreate 28 var #comfunc global IFileSystemImage_put_FileSystemsToCreate 29 int #comfunc global IFileSystemImage_get_FileSystemsSupported 30 var #comfunc global IFileSystemImage_put_UDFRevision 31 int #comfunc global IFileSystemImage_get_UDFRevision 32 var #comfunc global IFileSystemImage_get_UDFRevisionsSupported 33 var #comfunc global IFileSystemImage_ChooseImageDefaults 34 sptr #comfunc global IFileSystemImage_ChooseImageDefaultsForMediaType 35 int #comfunc global IFileSystemImage_put_ISO9660InterchangeLevel 36 int #comfunc global IFileSystemImage_get_ISO9660InterchangeLevel 37 var #comfunc global IFileSystemImage_get_ISO9660InterchangeLevelsSupported 38 var #comfunc global IFileSystemImage_CreateResultImage 39 sptr #comfunc global IFileSystemImage_Exists 40 wstr,var #comfunc global IFileSystemImage_CalculateDiscIdentifier 41 var #comfunc global IFileSystemImage_IdentifyFileSystemsOnDisc 42 sptr,var #comfunc global IFileSystemImage_GetDefaultFileSystemForImport 43 int,var #comfunc global IFileSystemImage_ImportFileSystem 44 var #comfunc global IFileSystemImage_ImportSpecificFileSystem 45 int #comfunc global IFileSystemImage_RollbackToChangePoint 46 int #comfunc global IFileSystemImage_LockInChangePoint 47 #comfunc global IFileSystemImage_CreateDirectoryItem 48 wstr,sptr #comfunc global IFileSystemImage_CreateFileItem 49 wstr,sptr #comfunc global IFileSystemImage_get_VolumeNameUDF 50 var #comfunc global IFileSystemImage_get_VolumeNameJoliet 51 var #comfunc global IFileSystemImage_get_VolumeNameISO9660 52 var #comfunc global IFileSystemImage_get_StageFiles 53 var #comfunc global IFileSystemImage_put_StageFiles 54 int #comfunc global IFileSystemImage_get_MultisessionInterfaces 55 var #comfunc global IFileSystemImage_put_MultisessionInterfaces 56 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IFileSystemImage "{2C941FE1-975B-59BE-A960-9A2A262853A5}" #usecom global IFileSystemImage IID_IFileSystemImage "{}" #comfunc global IFileSystemImage_get_Root 7 sptr #comfunc global IFileSystemImage_get_SessionStartBlock 8 sptr #comfunc global IFileSystemImage_put_SessionStartBlock 9 int #comfunc global IFileSystemImage_get_FreeMediaBlocks 10 sptr #comfunc global IFileSystemImage_put_FreeMediaBlocks 11 int #comfunc global IFileSystemImage_SetMaxMediaBlocksFromDevice 12 sptr #comfunc global IFileSystemImage_get_UsedBlocks 13 sptr #comfunc global IFileSystemImage_get_VolumeName 14 sptr #comfunc global IFileSystemImage_put_VolumeName 15 wstr #comfunc global IFileSystemImage_get_ImportedVolumeName 16 sptr #comfunc global IFileSystemImage_get_BootImageOptions 17 sptr #comfunc global IFileSystemImage_put_BootImageOptions 18 sptr #comfunc global IFileSystemImage_get_FileCount 19 sptr #comfunc global IFileSystemImage_get_DirectoryCount 20 sptr #comfunc global IFileSystemImage_get_WorkingDirectory 21 sptr #comfunc global IFileSystemImage_put_WorkingDirectory 22 wstr #comfunc global IFileSystemImage_get_ChangePoint 23 sptr #comfunc global IFileSystemImage_get_StrictFileSystemCompliance 24 sptr #comfunc global IFileSystemImage_put_StrictFileSystemCompliance 25 int #comfunc global IFileSystemImage_get_UseRestrictedCharacterSet 26 sptr #comfunc global IFileSystemImage_put_UseRestrictedCharacterSet 27 int #comfunc global IFileSystemImage_get_FileSystemsToCreate 28 sptr #comfunc global IFileSystemImage_put_FileSystemsToCreate 29 int #comfunc global IFileSystemImage_get_FileSystemsSupported 30 sptr #comfunc global IFileSystemImage_put_UDFRevision 31 int #comfunc global IFileSystemImage_get_UDFRevision 32 sptr #comfunc global IFileSystemImage_get_UDFRevisionsSupported 33 sptr #comfunc global IFileSystemImage_ChooseImageDefaults 34 sptr #comfunc global IFileSystemImage_ChooseImageDefaultsForMediaType 35 int #comfunc global IFileSystemImage_put_ISO9660InterchangeLevel 36 int #comfunc global IFileSystemImage_get_ISO9660InterchangeLevel 37 sptr #comfunc global IFileSystemImage_get_ISO9660InterchangeLevelsSupported 38 sptr #comfunc global IFileSystemImage_CreateResultImage 39 sptr #comfunc global IFileSystemImage_Exists 40 wstr,sptr #comfunc global IFileSystemImage_CalculateDiscIdentifier 41 sptr #comfunc global IFileSystemImage_IdentifyFileSystemsOnDisc 42 sptr,sptr #comfunc global IFileSystemImage_GetDefaultFileSystemForImport 43 int,sptr #comfunc global IFileSystemImage_ImportFileSystem 44 sptr #comfunc global IFileSystemImage_ImportSpecificFileSystem 45 int #comfunc global IFileSystemImage_RollbackToChangePoint 46 int #comfunc global IFileSystemImage_LockInChangePoint 47 #comfunc global IFileSystemImage_CreateDirectoryItem 48 wstr,sptr #comfunc global IFileSystemImage_CreateFileItem 49 wstr,sptr #comfunc global IFileSystemImage_get_VolumeNameUDF 50 sptr #comfunc global IFileSystemImage_get_VolumeNameJoliet 51 sptr #comfunc global IFileSystemImage_get_VolumeNameISO9660 52 sptr #comfunc global IFileSystemImage_get_StageFiles 53 sptr #comfunc global IFileSystemImage_put_StageFiles 54 int #comfunc global IFileSystemImage_get_MultisessionInterfaces 55 sptr #comfunc global IFileSystemImage_put_MultisessionInterfaces 56 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。