Funzione MsiRecordGetStringA (msiquery.h)
La funzione MsiRecordGetString restituisce il valore stringa di un campo record.
Sintassi
UINT MsiRecordGetStringA(
[in] MSIHANDLE hRecord,
[in] UINT iField,
[out] LPSTR szValueBuf,
[in, out] LPDWORD pcchValueBuf
);
Parametri
[in] hRecord
Handle per il record.
[in] iField
Specifica il campo richiesto.
[out] szValueBuf
Puntatore al buffer che riceve la stringa con terminazione Null contenente il valore del campo del record. Non tentare di determinare le dimensioni del buffer passando un valore Null (value=0) per szValueBuf. È possibile ottenere le dimensioni del buffer passando una stringa vuota ,ad esempio "". La funzione restituisce quindi ERROR_MORE_DATA e pcchValueBuf contiene le dimensioni del buffer necessarie in TCHAR, senza includere il carattere null di terminazione. In caso di restituzione di ERROR_SUCCESS, pcchValueBuf contiene il numero di TCHAR scritti nel buffer, senza includere il carattere Null di terminazione.
[in, out] pcchValueBuf
Puntatore alla variabile che specifica le dimensioni, in TCHARs, del buffer a cui punta la variabile szValueBuf. Quando la funzione restituisce ERROR_SUCCESS, questa variabile contiene le dimensioni dei dati copiati in szValueBuf, senza includere il carattere Null di terminazione. Se szValueBuf non è sufficientemente grande, la funzione restituisce ERROR_MORE_DATA e archivia le dimensioni necessarie, senza includere il carattere Null di terminazione, nella variabile a cui punta pcchValueBuf.
Valore restituito
La funzione msiRecordGetString
Osservazioni
Se viene restituito ERROR_MORE_DATA, il parametro che è un puntatore restituisce le dimensioni del buffer necessario per contenere la stringa. Se viene restituito ERROR_SUCCESS, restituisce il numero di caratteri scritti nel buffer di stringa. Per ottenere le dimensioni del buffer, passare l'indirizzo di un buffer di 1 carattere come szValueBuf e specificare le dimensioni del buffer con pcchValueBuf come 0. In questo modo non viene restituito alcun valore stringa dalla funzione nel buffer. Non tentare di determinare le dimensioni del buffer passando un valore Null (value=0).
Nota
L'intestazione msiquery.h definisce MsiRecordGetString 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. |
piattaforma di destinazione | Finestre |
intestazione |
msiquery.h |
libreria |
Msi.lib |
dll | Msi.dll |
Vedere anche
passaggio di Null come argomento delle funzioni di Windows Installer