Функция MsiSourceListEnumSourcesA (msi.h)
Функция MsiSourceListEnumSources перечисляет источники в списке источников указанного исправления или продукта.
Синтаксис
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
);
Параметры
[in] szProductCodeOrPatchCode
Идентификатор GUID productcode или patch продукта или исправления. Используйте строку, завершаемую null. Если строка длиннее 39 символов, функция завершается ошибкой и возвращает ERROR_INVALID_PARAMETER. Этот параметр не может иметь значение NULL.
[in, optional] szUserSid
Строковый идентификатор безопасности, указывающий учетную запись пользователя, содержащую продукт или исправление. Идентификатор безопасности не проверяется и не разрешается. Неправильный идентификатор безопасности может возвращать ERROR_UNKNOWN_PRODUCT или ERROR_UNKNOWN_PATCH. При ссылке на контекст компьютера szUserSID должен иметь значение NULL , а dwContext — MSIINSTALLCONTEXT_MACHINE.
[in] dwContext
Контекст продукта или экземпляра исправления. Этот параметр может содержать одно из следующих значений.
[in] dwOptions
Значение dwOptions определяет интерпретацию значения szProductCodeOrPatchCode и тип источников для очистки. Этот параметр должен быть сочетанием одной из следующих констант MSISOURCETYPE_* и одной из следующих констант MSICODE_*.
[in] dwIndex
Индекс извлекаемого источника. Этот параметр должен иметь значение 0 (ноль) для первого вызова функции MsiSourceListEnumSources , а затем увеличиваться для последующих вызовов, пока функция не вернет ERROR_NO_MORE_ITEMS. Индекс следует увеличивать, только если предыдущий вызов вернул ERROR_SUCCESS.
[in, optional] szSource
Указатель на буфер, получающий путь к перечисляемом источнику. Этот буфер должен быть достаточно большим, чтобы содержать полученное значение. Если буфер слишком мал, функция возвращает ERROR_MORE_DATA и задает *pcchSource число TCHAR в значении, не включая завершающий символ NULL.
Если для szSource задано значение NULL , а pcchSource — допустимый указатель, функция возвращает ERROR_SUCCESS и присваивает *pcchSource числу TCHAR в значении, не включая завершающий символ NULL. Затем функцию можно вызвать еще раз, чтобы получить значение, с буфером szSource , достаточно большим, чтобы содержать *pcchSource + 1 символ.
Если для szSource и pcchSource задано значение NULL, функция возвращает ERROR_SUCCESS, если значение существует, без извлечения значения.
[in, out, optional] pcchSource
Указатель на переменную, указывающую количество TCHAR в буфере szSource . При возврате функции для этого параметра устанавливается размер запрошенного значения независимо от того, копирует ли функция значение в указанный буфер. Размер возвращается как число TCHAR в запрошенном значении, не включая завершающий символ NULL.
Этот параметр может иметь значение NULL , только если szSource также имеет значение NULL, в противном случае функция возвращает ERROR_INVALID_PARAMETER.
Возвращаемое значение
Функция MsiSourceListEnumSources возвращает следующие значения.
Значение | Значение |
---|---|
|
Пользователь не может читать указанный исходный список. Это не указывает, найден ли продукт или исправление. |
|
Данные конфигурации повреждены. |
|
В функцию передается недопустимый параметр. |
|
Предоставленного буфера недостаточно для хранения запрошенных данных. |
|
В указанном списке больше нет источников для перечисления. |
|
Перечисление источника выполнено успешно. |
|
Указанное исправление не устанавливается на компьютере в указанных контекстах. |
|
Указанный продукт не установлен на компьютере в указанных контекстах. |
|
Непредвиденный внутренний сбой. |
Комментарии
При выполнении нескольких вызовов MsiSourceListEnumSources для перечисления всех источников для одного экземпляра продукта каждый вызов должен выполняться из одного потока.
Администратор может перечислить для каждого пользователя неуправляемые и управляемые установки для себя, установки на компьютере и управляемые установки для каждого пользователя. Администратор не может перечислить неуправляемые установки для отдельных пользователей для других пользователей. Пользователи, не являющиеся администраторами, могут перечислять только собственные неуправляемые и управляемые установки для каждого пользователя и установки на компьютере.
Примечание
Заголовок msi.h определяет MsiSourceListEnumSources в качестве псевдонима, который автоматически выбирает версию 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 3.0 или более поздней версии в Windows Server 2003 или Windows XP. Сведения о минимальном пакете обновления Windows, необходимом для версии установщика Windows, см. в статье Требования к установщику Windows Run-Time. |
Целевая платформа | Windows |
Header | msi.h |
Библиотека | Msi.lib |
DLL | Msi.dll |
См. также раздел
Не поддерживается в установщике Windows 2.0 и более ранних версий