MsiEnumComponentCostsA 関数 (msiquery.h)
MsiEnumComponentCosts 関数は、コンポーネントのインストールに必要なドライブごとのディスク領域を列挙します。 この情報は、ユーザー インターフェイス内のすべてのドライブに必要なディスク領域のコストを表示するために必要です。 返されるディスク領域のコストは、512 バイトの倍数で表されます。
MsiEnumComponentCosts
構文
UINT MsiEnumComponentCostsA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szComponent,
[in] DWORD dwIndex,
[in] INSTALLSTATE iState,
[out] LPSTR szDriveBuf,
[in, out] LPDWORD pcchDriveBuf,
[out] LPINT piCost,
[out] LPINT piTempCost
);
パラメーター
[in] hInstall
DLL カスタム アクションに提供されるインストール、または MsiOpenPackage、
[in] szComponent
Component テーブルの Component 列に表示されるコンポーネントの名前を指定する null で終わる文字列。 このパラメーターには null を指定できます。
szComponent が null または空の文字列の場合、MsiEnumComponentCosts は、インストール時に使用されたドライブあたりのディスク領域の合計を列挙します。 この場合、iState
[in] dwIndex
ドライブの 0 から始まるインデックス。 このパラメーターは、MsiEnumComponentCosts 関数への最初の呼び出しでは 0 にし、その後の呼び出しではインクリメントする必要があります。
[in] iState
列挙するコンポーネントの状態を要求しました。 szComponent が Null または空の文字列として渡された場合、インストーラーは iState パラメーターを無視します。
[out] szDriveBuf
null 終端記号を含むドライブ名を保持するバッファー。 これは、エラーが発生した場合の空の文字列です。
[in, out] pcchDriveBuf
lpDriveBuf パラメーターが指すバッファーのサイズを TCHAR 単位で指定する変数へのポインター。 このサイズには、終端の null 文字を含める必要があります。 指定されたバッファーが小さすぎる場合、pcchDriveBuf
[out] piCost
512 バイトの倍数で表されるドライブあたりのコンポーネントのコスト。 エラーが発生した場合、この値は 0 です。
piCost で返される値は、インストール後にコンポーネントによって使用される最終的なディスク領域です。
[out] piTempCost
インストール期間中のドライブあたりのコンポーネント コスト。エラーが発生した場合は 0。 *piTempCost の値は、インストール期間中の一時的な領域の要件を表します。 この一時的な領域の要件は、インストールの期間中にのみ必要な領域です。 これは、最終的なディスク領域の要件には影響しません。
戻り値
戻り値 | 意味 |
---|---|
|
構成データが破損しています。 |
|
無効なパラメーターが関数に渡されました。 |
|
返すドライブはもうありません。 |
|
値が列挙されました。 |
|
コンポーネントがありません。 |
|
コストが完了していません。 |
|
バッファーのサイズがドライブ名に対して十分ではありません。 |
|
指定されたハンドルが無効または非アクティブです。 |
備考
ドライブあたりのディスク領域のコストを列挙するための推奨される方法は次のとおりです。 dwIndex を 0 に設定して開始し、呼び出しのたびに 1 ずつインクリメントします。 MsiEnumComponentCosts
MsiEnumComponentCosts は、カスタム アクションから呼び出される場合があります。
インストールの最終的なディスク コストの合計は、すべてのコンポーネントのコストと Windows インストーラーのコストの合計です (szComponent = null)。
手記
msiquery.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして MsiEnumComponentCosts を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows Server 2003 または Windows XP の Windows インストーラー |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | msiquery.h |
ライブラリ | Msi.lib |
DLL | Msi.dll |