Функция MsiRecordGetStringA (msiquery.h)
Функция MsiRecordGetString возвращает строковое значение поля записи.
Синтаксис
UINT MsiRecordGetStringA(
[in] MSIHANDLE hRecord,
[in] UINT iField,
[out] LPSTR szValueBuf,
[in, out] LPDWORD pcchValueBuf
);
Параметры
[in] hRecord
Дескриптор записи.
[in] iField
Указывает запрошенное поле.
[out] szValueBuf
Указатель на буфер, который получает строку, завершающуюся null, содержащую значение поля записи. Не пытайтесь определить размер буфера, передав значение NULL (value=0) для szValueBuf. Размер буфера можно получить, передав пустую строку (например, ""). Затем функция возвращает ERROR_MORE_DATA , а pcchValueBuf содержит требуемый размер буфера в TCHAR, не включая завершающий символ NULL. При возврате ERROR_SUCCESSpcchValueBuf содержит число TCHAR , записанных в буфер, не включая завершающий символ NULL.
[in, out] pcchValueBuf
Указатель на переменную, указывающую размер буфера в TCHAR, на который указывает переменная szValueBuf. Когда функция возвращает ERROR_SUCCESS, эта переменная содержит размер данных, скопированных в szValueBuf, не включая завершающий символ NULL. Если szValueBuf недостаточно велик, функция возвращает ERROR_MORE_DATA и сохраняет требуемый размер, не включая завершающий символ NULL, в переменной, на которую указывает pcchValueBuf.
Возвращаемое значение
Функция MsiRecordGetString возвращает одно из следующих значений:
Комментарии
Если возвращается ERROR_MORE_DATA , параметр, являющийся указателем, задает размер буфера, необходимый для хранения строки. Если возвращается ERROR_SUCCESS , он указывает количество символов, записанных в буфер строк. Чтобы получить размер буфера, передайте адрес буфера размером 1 символа как szValueBuf и укажите размер буфера, указав pcchValueBuf как 0. Это гарантирует, что строковое значение, возвращаемое функцией, не помещается в буфер. Не пытайтесь определить размер буфера путем передачи значения Null (value=0).
Примечание
Заголовок msiquery.h определяет MsiRecordGetString как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или Установщик Windows 4.5 в Windows Server 2008 или Windows Vista. |
Целевая платформа | Windows |
Header | msiquery.h |
Библиотека | Msi.lib |
DLL | Msi.dll |
См. также раздел
Передача null в качестве аргумента функций установщика Windows