Funzione MsiEnumComponentCostsA (msiquery.h)
La funzione MsiEnumComponentCosts enumera lo spazio su disco per ogni unità necessaria per installare un componente. Queste informazioni sono necessarie per visualizzare il costo dello spazio su disco necessario per tutte le unità nell'interfaccia utente. I costi di spazio su disco restituiti sono espressi in multipli di 512 byte.
msiEnumComponentCosts devono essere eseguiti solo dopo il completamento del costo del file del programma di installazione e dopo l'azione CostFinalize. Per altre informazioni, vedere File Costing.
Sintassi
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
);
Parametri
[in] hInstall
Gestire l'installazione fornita a un'azione personalizzata DLL o ottenuta tramite MsiOpenPackage, MsiOpenPackageExo MsiOpenProduct.
[in] szComponent
Stringa con terminazione Null che specifica il nome del componente come elencato nella colonna Componente della tabella componente . Questo parametro può essere Null. Se szComponent è null o una stringa vuota, MsiEnumComponentCosts enumera lo spazio totale su disco per ogni unità usata durante l'installazione. In questo caso, iState viene ignorato. I costi del programma di installazione includono i costi per la memorizzazione nella cache del database nella cartella sicura, nonché il costo per creare lo script di installazione. Si noti che lo spazio totale su disco usato durante l'installazione può essere maggiore dello spazio usato dopo l'installazione del componente.
[in] dwIndex
Indice in base 0 per le unità. Questo parametro deve essere zero per la prima chiamata al MsiEnumComponentCosts funzione e quindi incrementato per le chiamate successive.
[in] iState
Stato del componente richiesto da enumerare. Se szComponent viene passato come Null o una stringa vuota, il programma di installazione ignora il parametro iState.
[out] szDriveBuf
Buffer che contiene il nome dell'unità, incluso il carattere di terminazione Null. Si tratta di una stringa vuota in caso di errore.
[in, out] pcchDriveBuf
Puntatore a una variabile che specifica le dimensioni, in TCHAR, del buffer a cui punta il parametro lpDriveBuf
[out] piCost
Costo del componente per unità espresso in multipli di 512 byte. Questo valore è 0 se si è verificato un errore. Il valore restituito in piCost è lo spazio su disco finale usato dal componente dopo l'installazione. Se szComponent viene passato come Null o una stringa vuota, il programma di installazione imposta il valore in piCost su 0.
[out] piTempCost
Costo del componente per unità per la durata dell'installazione o 0 se si è verificato un errore. Il valore in *piTempCost rappresenta i requisiti di spazio temporanei per la durata dell'installazione. Questo requisito di spazio temporaneo è necessario solo per la durata dell'installazione. Ciò non influisce sul requisito finale dello spazio su disco.
Valore restituito
Valore restituito | Significato |
---|---|
|
I dati di configurazione sono danneggiati. |
|
Alla funzione è stato passato un parametro non valido. |
|
Non ci sono più unità da restituire. |
|
È stato enumerato un valore. |
|
Componente mancante. |
|
Il costo non è completo. |
|
Buffer non abbastanza grande per il nome dell'unità. |
|
L'handle fornito non è valido o inattivo. |
Osservazioni
Il metodo consigliato per enumerare i costi di spazio su disco per unità è il seguente. Iniziare con dwIndex impostato su 0 e incrementarlo di uno dopo ogni chiamata. Continuare l'enumerazione finché MsiEnumComponentCosts restituisce ERROR_SUCCESS.
msiEnumComponentCosts possono essere chiamati da azioni personalizzate.
Il costo totale del disco finale per l'installazione è la somma dei costi di tutti i componenti oltre al costo di Windows Installer (szComponent = null).
Nota
L'intestazione msiquery.h definisce MsiEnumComponentCosts come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Installer 5.0 in Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 in Windows Server 2008 o Windows Vista. Windows Installer in Windows Server 2003 o Windows XP |
piattaforma di destinazione | Finestre |
intestazione |
msiquery.h |
libreria |
Msi.lib |
dll | Msi.dll |