Поделиться через


Функция 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 содержит требуемый размер буфера в TCHARs, не включая завершающий символ NULL. При возвращении ERROR_SUCCESSpcchValueBuf содержит количество TCHARs, записанных в буфер, не включая завершающийся символ NULL.

[in, out] pcchValueBuf

Указатель на переменную, указывающую размер в TCHARs, буфера, на который указывает переменная szValueBuf. Когда функция возвращает ERROR_SUCCESS, эта переменная содержит размер данных, скопированных в szValueBuf, не включая завершающийся символ NULL. Если szValueBuf недостаточно большой, функция возвращает ERROR_MORE_DATA и сохраняет требуемый размер, не включая завершающийся символ NULL, в переменной, на которую указывает pcchValueBuf.

Возвращаемое значение

Функция msiRecordGetString возвращает одно из следующих значений:

Замечания

Если возвращается ERROR_MORE_DATA, параметр, являющийся указателем, дает размер буфера, необходимого для хранения строки. Если возвращается ERROR_SUCCESS, оно дает количество символов, записанных в буфер строки. Чтобы получить размер буфера, передайте адрес 1-символьного буфера как szValueBuf и укажите размер буфера с pcchValueBuf как 0. Это гарантирует, что строковое значение, возвращаемое функцией, не помещается в буфер. Не пытайтесь определить размер буфера, передав значение NULL (значение=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.
целевая платформа Виндоус
заголовка msiquery.h
библиотеки Msi.lib
DLL Msi.dll

См. также

передачи null в качестве аргумента функций установщика Windows

функции обработки записей