Función MsiGetFeatureCostA (msiquery.h)
La función MsiGetFeatureCost devuelve el espacio en disco requerido por una característica y sus elementos secundarios y principales seleccionados.
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, MsiOpenPackageExo 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 siguientes valores.
[in] iState
Especifica el estado de instalación. Este parámetro puede ser uno de los siguientes valores.
[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:
Observaciones
Consulte llamar a funciones de base de datos desde programas.
Con la función msiGetFeatureCost de
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 asignados a todos los componentes vinculados a la característica.
El valor de MSICOSTTREE_PARENTS indica la cantidad total de espacio en disco (en unidades de 512 bytes) requerida por la característica especificada y sus características primarias (hasta la raíz de la tabla de características de ). Para cada característica, el costo total se compone de los costos de disco asignados a todos los componentes vinculados 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 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 |
Consulte también
funciones de selección del instalador de