Função CoCreateInstanceFromApp (combaseapi.h)

Cria uma instância de uma classe específica em um computador específico de dentro de um contêiner de aplicativo.

Sintaxe

HRESULT CoCreateInstanceFromApp(
  [in]           REFCLSID Clsid,
  [in, optional] IUnknown *punkOuter,
  [in]           DWORD    dwClsCtx,
  [in, optional] PVOID    reserved,
  [in]           DWORD    dwCount,
  [in, out]      MULTI_QI *pResults
);

Parâmetros

[in] Clsid

O CLSID do objeto a ser criado.

[in, optional] punkOuter

Se esse parâmetro não for NULL, indicará que a instância está sendo criada como parte de uma agregação e punkOuter será usado como O IUnknown controlador da nova instância. Atualmente, não há suporte para agregação entre processos ou entre computadores. Ao instanciar um objeto fora do processo, CLASS_E_NOAGGREGATION será retornado se punkOuter não for NULL.

[in] dwClsCtx

Um valor da enumeração CLSCTX .

[in, optional] reserved

Reservado para uso futuro.

[in] dwCount

O número de estruturas em pResults. Esse valor deve ser maior que 0.

[in, out] pResults

Uma matriz de estruturas MULTI_QI . Cada estrutura tem três membros: o identificador de uma interface solicitada (pIID), o local para retornar o ponteiro da interface (pItf) e o valor retornado da chamada para QueryInterface (hr).

Retornar valor

Essa função pode retornar o valor retornado padrão E_INVALIDARG, bem como os valores a seguir.

Código de retorno Descrição
S_OK
Indica êxito.
REGDB_E_CLASSNOTREG
Uma classe especificada não está registrada no banco de dados de registro ou a classe não tem suporte no contêiner do aplicativo. Também pode indicar que o tipo de servidor solicitado na enumeração CLSCTX não está registrado ou que os valores dos tipos de servidor no registro estão corrompidos.
CLASS_E_NOAGGREGATION
Essa classe não pode ser criada como parte de uma agregação.
CO_S_NOTALLINTERFACES
Pelo menos uma, mas nem todas as interfaces solicitadas na matriz pResults foram recuperadas com êxito. O membro hr de cada uma das estruturas de MULTI_QI em pResults indica com S_OK ou E_NOINTERFACE se a interface específica foi retornada.
E_NOINTERFACE
Nenhuma das interfaces solicitadas na matriz pResults foi recuperada com êxito.

Comentários

A função CoCreateInstanceFromApp é igual à função CoCreateInstanceEx , com as seguintes diferenças.

  • A função CoCreateInstanceFromApp lê registros de classe somente de contextos de aplicativo e do hive do registro HKLM\SOFTWARE\Classes\CLSID.
  • Somente classes internas com suporte no contêiner do aplicativo são fornecidas. Tentativas de ativar classes sem suporte, incluindo todas as classes instaladas por código de terceiros, bem como muitas classes do Windows, resultam em código de erro REGDB_E_CLASSNOTREG.
  • A função CoCreateInstanceFromApp está disponível para aplicativos da Windows Store. Os aplicativos da área de trabalho podem chamar essa função, mas têm as mesmas restrições que os aplicativos da Windows Store.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho combaseapi.h
Biblioteca Combase.lib
DLL Combase.dll

Confira também

Cocreateinstanceex

Fusion (Referência de API não gerenciada)