Funzione MsiSourceListEnumSourcesA (msi.h)
La funzione MsiSourceListEnumSources enumera le origini nell'elenco di origine di una patch o di un prodotto specificato.
Sintassi
UINT MsiSourceListEnumSourcesA(
[in] LPCSTR szProductCodeOrPatchCode,
[in, optional] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] DWORD dwOptions,
[in] DWORD dwIndex,
[in, optional] LPSTR szSource,
[in, out, optional] LPDWORD pcchSource
);
Parametri
[in] szProductCodeOrPatchCode
ProductCode o GUID patch del prodotto o della patch. Usare una stringa con terminazione Null. Se la stringa è più lunga di 39 caratteri, la funzione ha esito negativo e restituisce ERROR_INVALID_PARAMETER. Questo parametro non può essere NULL.
[in, optional] szUserSid
SID stringa che specifica l'account utente che contiene il prodotto o la patch. Il SID non viene convalidato o risolto. Un SID non corretto può restituire ERROR_UNKNOWN_PRODUCT o ERROR_UNKNOWN_PATCH. Quando si fa riferimento a un contesto del computer, szUserSID deve essere NULL e dwContext deve essere MSIINSTALLCONTEXT_MACHINE.
[in] dwContext
Contesto dell'istanza del prodotto o della patch. Questo parametro può contenere uno dei valori seguenti.
[in] dwOptions
Il valore dwOptions determina l'interpretazione del valore szProductCodeOrPatchCode e del tipo di origini da cancellare. Questo parametro deve essere una combinazione di una delle costanti MSISOURCETYPE_* seguenti e una delle costanti MSICODE_* seguenti.
[in] dwIndex
Indice dell'origine da recuperare. Questo parametro deve essere 0 (zero) per la prima chiamata alla funzione MsiSourceListEnumSources e quindi incrementato per le chiamate successive fino a quando la funzione non restituisce ERROR_NO_MORE_ITEMS. L'indice deve essere incrementato solo se la chiamata precedente ha restituito ERROR_SUCCESS.
[in, optional] szSource
Puntatore a un buffer che riceve il percorso dell'origine da enumerare. Questo buffer deve essere sufficientemente grande da contenere il valore ricevuto. Se il buffer è troppo piccolo, la funzione restituisce ERROR_MORE_DATA e imposta *pcchSource sul numero di TCHAR nel valore, senza includere il carattere NULL di terminazione.
Se szSource è impostato su NULL e pcchSource è impostato su un puntatore valido, la funzione restituisce ERROR_SUCCESS e imposta *pcchSource sul numero di TCHAR nel valore, senza includere il carattere NULL di terminazione. La funzione può quindi essere chiamata di nuovo per recuperare il valore, con buffer szSource sufficientemente grande da contenere *pcchSource + 1 caratteri.
Se szSource e pcchSource sono entrambi impostati su NULL, la funzione restituisce ERROR_SUCCESS se il valore esiste, senza recuperare il valore.
[in, out, optional] pcchSource
Puntatore a una variabile che specifica il numero di TCHAR nel buffer szSource . Quando la funzione viene restituita, questo parametro viene impostato sulle dimensioni del valore richiesto indipendentemente dal fatto che la funzione copia il valore nel buffer specificato. La dimensione viene restituita come numero di TCHAR nel valore richiesto, senza includere il carattere Null di terminazione.
Questo parametro può essere impostato su NULL solo se szSource è null, altrimenti la funzione restituisce ERROR_INVALID_PARAMETER.
Valore restituito
La funzione MsiSourceListEnumSources restituisce i valori seguenti.
Valore | Significato |
---|---|
|
L'utente non ha la possibilità di leggere l'elenco di origine specificato. Questo non indica se viene trovato un prodotto o una patch. |
|
I dati di configurazione sono danneggiati. |
|
Alla funzione viene passato un parametro non valido. |
|
Il buffer fornito non è sufficiente per contenere i dati richiesti. |
|
Nell'elenco specificato non sono presenti altre origini da enumerare. |
|
Un'origine viene enumerata correttamente. |
|
La patch specificata non è installata nel computer nei contesti specificati. |
|
Il prodotto specificato non è installato nel computer nei contesti specificati. |
|
Errore interno imprevisto. |
Commenti
Quando si effettuano più chiamate a MsiSourceListEnumSources per enumerare tutte le origini per una singola istanza del prodotto, ogni chiamata deve essere eseguita dallo stesso thread.
Un amministratore può enumerare le installazioni non gestite e gestite per utente per se stessi, le installazioni per computer e le installazioni gestite per utente per qualsiasi utente. Un amministratore non può enumerare le installazioni non gestite per utente per altri utenti. Gli amministratori non possono enumerare solo le proprie installazioni non gestite e gestite per utente e le installazioni per computer.
Nota
L'intestazione msi.h definisce MsiSourceListEnumSources 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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
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 3.0 o versione successiva in Windows Server 2003 o Windows XP. Per informazioni sul Service Pack minimo di Windows Richiesto da una versione di Windows Installer, vedere i requisiti di Windows Installer Run-Time. |
Piattaforma di destinazione | Windows |
Intestazione | msi.h |
Libreria | Msi.lib |
DLL | Msi.dll |
Vedi anche
Non supportato in Windows Installer 2.0 e versioni precedenti