Função MsiGetProductInfoExA (msi.h)

A função MsiGetProductInfoEx retorna informações do produto para produtos anunciados e instalados. Essa função pode recuperar informações

sobre uma instância de um produto instalado em uma conta de usuário diferente do usuário atual.

O processo de chamada deve ter privilégios administrativos para um usuário diferente do usuário atual. A função MsiGetProductInfoEx não pode consultar uma instância de um produto que é anunciada em um contexto por usuário não gerenciado para uma conta de usuário diferente do usuário atual.

Essa função é uma extensão da função MsiGetProductInfo .

Sintaxe

UINT MsiGetProductInfoExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                LPCSTR            szProperty,
  [out, optional]     LPSTR             szValue,
  [in, out, optional] LPDWORD           pcchValue
);

Parâmetros

[in] szProductCode

O GUID do ProductCode da instância do produto que está sendo consultada.

[in] szUserSid

O SID (identificador de segurança) da conta na qual a instância do produto que está sendo consultado existe. Um NULL especifica o SID do usuário atual.

SID Significado
NULO
O usuário conectado no momento.
SID de usuário
A enumeração para um usuário específico no sistema. Um exemplo de SID do usuário é "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Nota A cadeia de caracteres sid especial "S-1-5-18" (sistema) não pode ser usada para enumerar produtos instalados como por computador. Se dwContext for "MSIINSTALLCONTEXT_MACHINE", szUserSid deverá ser NULL.
 

[in] dwContext

O contexto de instalação da instância do produto que está sendo consultada.

Nome Significado
MSIINSTALLCONTEXT_USERMANAGED
Recupera a propriedade do produto para a instância gerenciada por usuário do produto.
MSIINSTALLCONTEXT_USERUNMANAGED
Recupera a propriedade do produto para a instância não gerenciada por usuário do produto.
MSIINSTALLCONTEXT_MACHINE
Recupera a propriedade do produto para a instância por computador do produto.

[in] szProperty

Propriedade que está sendo consultada.

A propriedade a ser recuperada. As propriedades na tabela a seguir só podem ser recuperadas de aplicativos que já estão instalados. Todas as propriedades necessárias têm a garantia de estar disponíveis, mas outras propriedades só estarão disponíveis se a propriedade estiver definida. Para obter mais informações, consulte
Propriedades e propriedades necessárias.

Propriedade Significado
INSTALLPROPERTY_PRODUCTSTATE
O estado do produto retornado na forma de cadeia de caracteres como "1" para anunciado e "5" para instalado.
INSTALLPROPERTY_HELPLINK
O link de suporte. Para obter mais informações, consulte a propriedade ARPHELPLINK.
INSTALLPROPERTY_HELPTELEPHONE
O telefone de suporte. Para obter mais informações, consulte a propriedade ARPHELPTELEPHONE.
INSTALLPROPERTY_INSTALLDATE
A última vez que este produto recebeu o serviço. O valor dessa propriedade é substituído sempre que um patch é aplicado ou removido do produto ou a Opção de Linha de Comando /v é usada para reparar o produto. Se o produto não tiver recebido reparos ou patches, essa propriedade conterá a hora em que ele foi instalado neste computador.
INSTALLPROPERTY_INSTALLEDLANGUAGE
Idioma instalado.

Windows Installer 4.5 e anteriores: Sem suporte.

INSTALLPROPERTY_INSTALLEDPRODUCTNAME
O nome do produto instalado. Para obter mais informações, consulte a propriedade ProductName.
INSTALLPROPERTY_INSTALLLOCATION
O local de instalação. Para obter mais informações, consulte a propriedade ARPINSTALLLOCATION.
INSTALLPROPERTY_INSTALLSOURCE
A origem da instalação. Para obter mais informações, consulte a propriedade SourceDir.
INSTALLPROPERTY_LOCALPACKAGE
O pacote armazenado em cache local.
INSTALLPROPERTY_PUBLISHER
O publicador. Para obter mais informações, consulte a propriedade Manufacturer.
INSTALLPROPERTY_URLINFOABOUT
Informações da URL. Para obter mais informações, consulte a propriedade ARPURLINFOABOUT.
INSTALLPROPERTY_URLUPDATEINFO
As informações de atualização de URL. Para obter mais informações, consulte a propriedade ARPURLUPDATEINFO.
INSTALLPROPERTY_VERSIONMINOR
A versão secundária do produto derivada da propriedade ProductVersion .
INSTALLPROPERTY_VERSIONMAJOR
A versão principal do produto derivada da propriedade ProductVersion .
INSTALLPROPERTY_VERSIONSTRING
A versão do produto. Para obter mais informações, consulte a propriedade ProductVersion.
 

Para recuperar a ID do produto, o proprietário registrado ou a empresa registrada de aplicativos instalados, defina szProperty como um dos valores de cadeia de caracteres de texto a seguir.

Valor Descrição
ProductID O identificador do produto. Para obter mais informações, consulte a propriedade ProductID.
RegCompany A empresa que está registrada para usar o produto.
RegOwner O proprietário que está registrado para usar o produto.
 

Para recuperar o tipo de instância do produto, defina szProperty como o valor a seguir. Essa propriedade está disponível para produtos anunciados ou instalados.

Valor Descrição
InstanceType Um valor ausente ou um valor de 0 (zero) indica uma instalação normal do produto. Um valor de um (1) indica um produto instalado usando uma transformação de várias instâncias e a propriedade MSINEWINSTANCE . Para obter mais informações, consulte Instalando várias instâncias de produtos e patches.
 

As propriedades na tabela a seguir podem ser recuperadas de aplicativos anunciados ou instalados. Essas propriedades não podem ser recuperadas para instâncias de produto instaladas em um contexto por usuário não gerenciado de contas de usuário diferentes da conta de usuário atual.

Propriedade Descrição
INSTALLPROPERTY_TRANSFORMS Transformações.
INSTALLPROPERTY_LANGUAGE Idioma do produto.
INSTALLPROPERTY_PRODUCTNAME Nome do produto legível humano. Para obter mais informações, consulte a propriedade ProductName.
INSTALLPROPERTY_ASSIGNMENTTYPE Será igual a 0 (zero) se o produto for anunciado ou instalado por usuário.

É igual a um (1) se o produto for anunciado ou instalado por computador para todos os usuários.

INSTALLPROPERTY_PACKAGECODE Identificador do pacote do qual um produto está instalado. Para obter mais informações, consulte a propriedade Códigos de Pacote .
INSTALLPROPERTY_VERSION Versão do produto derivada da propriedade ProductVersion.
INSTALLPROPERTY_PRODUCTICON Ícone principal do pacote. Para obter mais informações, consulte a propriedade ARPPRODUCTICON.
INSTALLPROPERTY_PACKAGENAME Nome do pacote de instalação original.
INSTALLPROPERTY_AUTHORIZED_LUA_APP Um valor de um (1) indica um produto que pode ser atendido por não administradores usando a Aplicação de Patch de UAC (Controle de Conta de Usuário). Um valor ausente ou um valor de 0 (zero) indica que a aplicação de patch com privilégios mínimos não está habilitada. Disponível no Windows Installer 3.0 ou posterior.

[out, optional] szValue

Um ponteiro para um buffer que recebe o valor da propriedade. Esse buffer deve ser grande o suficiente para conter as informações. Se o buffer for muito pequeno, a função retornará ERROR_MORE_DATA e definirá *pcchValue como o número de TCHAR no valor, não incluindo o caractere NULL de terminação.

Se lpValue for definido como NULL e pcchValue for definido como um ponteiro válido, a função retornará ERROR_SUCCESS e definirá *pcchValue como o número de TCHAR no valor, não incluindo o caractere NULL de terminação. Em seguida, a função pode ser chamada novamente para recuperar o valor, com buffer lpValue grande o suficiente para conter *pcchValue + 1 caracteres.

Se lpValue e pcchValue forem definidos como NULL, a função retornará ERROR_SUCCESS se o valor existir, sem recuperar o valor.

[in, out, optional] pcchValue

Um ponteiro para uma variável que especifica o número de TCHAR no buffer lpValue . Quando a função retorna, esse parâmetro é definido como o tamanho do valor solicitado, quer a função copie ou não o valor para o buffer especificado. O tamanho é retornado como o número de TCHAR no valor solicitado, não incluindo o caractere nulo de terminação.

Esse parâmetro só poderá ser definido como NULL se lpValue também for NULL. Caso contrário, a função retornará ERROR_INVALID_PARAMETER.

Retornar valor

A função MsiGetProductInfoEx retorna os valores a seguir.

Código de retorno Descrição
ERROR_ACCESS_DENIED
O processo de chamada deve ter privilégios administrativos para obter informações de um produto instalado para um usuário diferente do usuário atual.
ERROR_BAD_CONFIGURATION
Os dados de configuração estão corrompidos.
ERROR_INVALID_PARAMETER
Um parâmetro inválido é passado para a função .
ERROR_MORE_DATA
Um buffer é muito pequeno para conter os dados solicitados.
ERROR_SUCCESS
A função foi concluída com êxito.
ERROR_UNKNOWN_PRODUCT
O produto não é convertido ou desinstalado.
ERROR_UNKNOWN_PROPERTY
A propriedade não é reconhecida.
Nota A função MsiGetProductInfo retornará ERROR_UNKNOWN_PROPERTY se o aplicativo que está sendo consultado for anunciado e não estiver instalado.
 
ERROR_FUNCTION_FAILED
Uma falha interna inesperada.

Comentários

Quando a função MsiGetProductInfoEx retorna, o parâmetro pcchValue contém o comprimento da cadeia de caracteres armazenada no buffer. A contagem retornada não inclui o caractere nulo de terminação. Se o buffer não for grande o suficiente, MsiGetProductInfoEx retornará ERROR_MORE_DATA e o parâmetro pcchValue conterá o tamanho da cadeia de caracteres, em TCHAR, sem contar o caractere nulo.

A função MsiGetProductInfoEx (INSTALLPROPERTY_LOCALPACKAGE) retorna um caminho para o pacote armazenado em cache. O pacote armazenado em cache é somente para uso interno. As instalações do modo de manutenção devem ser invocadas por meio das funções MsiConfigureFeature, MsiConfigureProduct ou MsiConfigureProductEx .

A função MsiGetProductInfo retornará ERROR_UNKNOWN_PROPERTY se o aplicativo que está sendo consultado for anunciado e não estiver instalado. Por exemplo, se o aplicativo for anunciado e não estiver instalado, uma consulta para INSTALLPROPERTY_INSTALLLOCATION retornará um erro de ERROR_UNKNOWN_PROPERTY.

Observação

O cabeçalho msi.h define MsiGetProductInfoEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Installer 5.0 no Windows Server 2012, no Windows 8, no Windows Server 2008 R2 ou no Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou no Windows Vista. Confira os Requisitos de tempo de execução do Windows Installer para obter informações sobre o Windows service pack mínimo exigido por uma versão do Windows Installer.
Plataforma de Destino Windows
Cabeçalho msi.h
Biblioteca Msi.lib
DLL Msi.dll

Confira também

ARPHELPLINK

ARPHELPTELEPHONE

ARPINSTALLLOCATION

ARPPRODUCTICON

ARPURLINFOABOUT

ARPURLUPDATEINFO

Fabricante

MsiConfigureFeature

MsiConfigureProduct

MsiConfigureProductEx

Sem suporte no Windows Installer 2.0 e nas versões anteriores

Códigos de pacote

ProductCode

ProductID

ProductName

ProductVersion

Propriedades

Propriedades obrigatórias

SourceDir

Funções de status do sistema