Función MsiEnumComponentCostsA (msiquery.h)
La función MsiEnumComponentCosts enumera el espacio en disco por unidad necesaria para instalar un componente. Esta información es necesaria para mostrar el costo de espacio en disco necesario para todas las unidades de la interfaz de usuario. Los costos de espacio en disco devueltos se expresan en múltiplo de 512 bytes.
MsiEnumComponentCosts solo se debe ejecutar después de que el instalador haya completado el costo del archivo y después de la acción CostFinalize. Para obtener más información, consulte de costos de archivos .
Sintaxis
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
);
Parámetros
[in] hInstall
Controle la instalación proporcionada a una acción personalizada de DLL o obtenida a través de MsiOpenPackage, MsiOpenPackageExo MsiOpenProduct.
[in] szComponent
Cadena terminada en null que especifica el nombre del componente tal y como se muestra en la columna Componente de la tabla componente de componente. Este parámetro puede ser NULL. Si szComponent es null o una cadena vacía, MsiEnumComponentCosts enumera el espacio total en disco por unidad que se usa durante la instalación. En este caso, se omite
[in] dwIndex
Índice basado en 0 para unidades. Este parámetro debe ser cero para la primera llamada a la función MsiEnumComponentCosts y, a continuación, se incrementa para las llamadas posteriores.
[in] iState
Estado de componente solicitado que se va a enumerar. Si
[out] szDriveBuf
Búfer que contiene el nombre de la unidad, incluido el terminador NULL. Se trata de una cadena vacía en caso de error.
[in, out] pcchDriveBuf
Puntero a una variable que especifica el tamaño, en TCHAR, del búfer al que apunta el parámetro lpDriveBuf. Este tamaño debe incluir el carácter nulo de terminación. Si el búfer proporcionado es demasiado pequeño, la variable a la que apunta pcchDriveBuf contiene el recuento de caracteres que no incluyen el terminador nulo.
[out] piCost
Costo del componente por unidad expresado en múltiplo de 512 bytes. Este valor es 0 si se ha producido un error. El valor devuelto en piCost es el espacio en disco final que usa el componente después de la instalación. Si szComponent se pasa como Null o una cadena vacía, el instalador establece el valor en piCost en 0.
[out] piTempCost
Costo del componente por unidad durante la instalación o 0 si se produjo un error. El valor de *piTempCost representa los requisitos de espacio temporal durante la instalación. Este requisito de espacio temporal es espacio necesario solo durante la instalación. Esto no afecta al requisito final de espacio en disco.
Valor devuelto
Valor devuelto | Significado |
---|---|
|
Los datos de configuración están dañados. |
|
Se pasó un parámetro no válido a la función . |
|
No hay más unidades que devolver. |
|
Se ha enumerado un valor. |
|
Falta el componente. |
|
El costo no está completo. |
|
El búfer no es lo suficientemente grande como para el nombre de la unidad. |
|
El identificador proporcionado no es válido o está inactivo. |
Observaciones
El método recomendado para enumerar los costos de espacio en disco por unidad es el siguiente. Comience con dwIndex establecido en 0 e inícielo en uno después de cada llamada. Continúe con la enumeración siempre que msiEnumComponentCosts devuelva ERROR_SUCCESS.
msiEnumComponentCosts se puede llamar desde acciones personalizadas.
El costo total del disco final para la instalación es la suma de los costos de todos los componentes más el costo de Windows Installer (szComponent = null).
Nota
El encabezado msiquery.h define MsiEnumComponentCosts como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer en Windows Server 2003 o Windows XP |
de la plataforma de destino de |
Windows |
encabezado de |
msiquery.h |
biblioteca de |
Msi.lib |
DLL de |
Msi.dll |