Función MsiGetFeatureCostA (msiquery.h)
La función MsiGetFeatureCost devuelve el espacio en disco requerido por una característica y sus características secundarias y primarias seleccionadas.
Sintaxis
UINT MsiGetFeatureCostA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[in] MSICOSTTREE iCostTree,
[in] INSTALLSTATE iState,
[out] LPINT piCost
);
Parámetros
[in] hInstall
Controle la instalación proporcionada a una acción personalizada de DLL o obtenida a través de MsiOpenPackage, MsiOpenPackageEx o MsiOpenProduct.
[in] szFeature
Especifica el nombre de la característica.
[in] iCostTree
Especifica el valor que usa la función para determinar los requisitos de espacio en disco. Este parámetro puede ser uno de los valores siguientes.
[in] iState
Especifica el estado de instalación. Este parámetro puede ser uno de los valores siguientes.
[out] piCost
Recibe los requisitos de espacio en disco en unidades de 512 bytes. Este parámetro no debe ser null.
Valor devuelto
La función MsiGetFeatureCost devuelve los siguientes valores:
Comentarios
Consulte Llamar a funciones de base de datos desde programas.
Con la función MsiGetFeatureCost , el valor de MSICOSTTREE_SELFONLY indica la cantidad total de espacio en disco (en unidades de 512 bytes) requerida solo por la característica especificada. Este valor devuelto no incluye los elementos secundarios ni las características primarias de la característica especificada. Este costo total se compone de los costos de disco atribuidos a todos los componentes vinculados a la característica.
El valor de MSICOSTTREE_CHILDREN indica la cantidad total de espacio en disco (en unidades de 512 bytes) requerida por la característica especificada y sus elementos secundarios. Para cada característica, el costo total se compone de los costos de disco atribuidos a cada componente vinculado a la característica.
El valor de MSICOSTTREE_PARENTS indica la cantidad total de espacio en disco (en unidades de 512 bytes) que requiere la característica especificada y sus características primarias (hasta la raíz de la tabla de características). Para cada característica, el costo total se compone de los costos de disco atribuidos a cada componente vinculado a la característica.
MsiGetFeatureCost depende de otras funciones para que se realicen correctamente. En el ejemplo siguiente se muestra el orden en el que se debe llamar a estas funciones:
MSIHANDLE hInstall; //product handle, must be closed
int iCost; //cost returned by MsiGetFeatureCost
MsiOpenPackage("Path to package....",&hInstall); //"Path to package...." should be replaced with the full path to the package to be opened
MsiDoAction(hInstall,"CostInitialize"); //
MsiDoAction(hInstall,"FileCost");
MsiDoAction(hInstall,"CostFinalize");
MsiDoAction(hInstall,"InstallValidate");
MsiGetFeatureCost(hInstall,"FeatureName",MSICOSTTREE_SELFONLY,INSTALLSTATE_ABSENT,&iCost);
MsiCloseHandle(hInstall); //close the open product handle
El proceso para consultar el costo de las características programadas para quitarse es ligeramente diferente:
MSIHANDLE hInstall; //product handle, must be closed
int iCost; //cost returned by MsiGetFeatureCost
MsiOpenPackage("Path to package....",&hInstall); //"Path to package...." should be replaced with the full path to the package to be opened
MsiDoAction(hInstall,"CostInitialize"); //
MsiDoAction(hInstall,"FileCost");
MsiDoAction(hInstall,"CostFinalize");
MsiSetFeatureState(hInstall,"FeatureName",INSTALLSTATE_ABSENT); //set the feature's state to "not installed"
MsiDoAction(hInstall,"InstallValidate");
MsiGetFeatureCost(hInstall,"FeatureName",MSICOSTTREE_SELFONLY,INSTALLSTATE_ABSENT,&iCost);
MsiCloseHandle(hInstall); //close the open product handle
Si se produce un error en la función, puede obtener información de error extendida mediante MsiGetLastErrorRecord.
Nota:
El encabezado msiquery.h define MsiGetFeatureCost 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Cliente mínimo compatible | 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 |
Plataforma de destino | Windows |
Encabezado | msiquery.h |
Library | Msi.lib |
Archivo DLL | Msi.dll |
Consulte también
Funciones de selección del instalador
Pasar Null como argumento de las funciones de Windows Installer