Compartilhar via


CoCreateInstance

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Thisfunction cria o local sistema não inicializado um único objeto da classe associado com um identificador classe especificada.

Syntax

STDAPI CoCreateInstance(
  REFCLSID rclsid, 
  LPUNKNOWN pUnkOuter, 
  DWORD dwClsContext, 
  REFIID riid, 
  LPVOID* ppv
); 

Parameters

  • rclsid
    [no] Identificador de classe associado com os dados e codificar que são usados para criar o objeto.
  • pUnkOuter
    [no] Se NULL, indica que o objeto não está sendo criado como parte de um agregado. Se não-NULL, ponteiro para o agregado do objeto IUnknown interface (o controle IUnknown).
  • dwClsContext
    [no] Especifica o contexto no qual a codificar que gerencia o objeto recém-criado será executar. O válido somente valor para este parâmetro é CLSCTX_INPROC_SERVER. Isso é a partir de enumeração CLSCTX. Qualquer outro valor resulta em um valor de retorno de E_NOTIMPL.
  • riid
    [no] Referência ao identificador da interface a ser usado para se comunicar com o objeto.
  • PPV
    [out] Endereço do ponteiro variável que recebe o ponteiro interface solicitado no riid. Após bem-sucedido retornar, PPV Contém o ponteiro interface solicitada.

Return Value

Um dos valores descritos a seguinte tabela é retornada.

Valor Descrição

S_OK

Uma instância da classe de objeto especificado foi criada com êxito.

REGDB_E_CLASSNOTREG

Uma classe especificada não está registrado no banco de dados registro. Também pode indicar que o tipo de servidor solicitado in a CLSCTX enumeração não está registrada ou os valores para tipos de servidor no Registro são danificar.

CLASS_E_NOAGGREGATION

Esta classe não pode ser criado como parte de um agregado.

Remarks

O CoCreateInstance função auxiliar fornece um atalho conveniente por conexão com o objeto classe associado com o identificador classe especificada, criando um não inicializado instância e liberar o objeto classe. Como tal, ele encapsula a seguinte funcionalidade.

CoGetClassObject(rclsid, dwClsContext, NULL, IID_IClassFactory, &pCF); 
hresult = pCF->CreateInstance(pUnkOuter, riid, ppvObj) 
pCF->Release(); 

É conveniente usar CoCreateInstance Quando você precisa criar apenas uma única instância de um objeto sobre o local máquina. Quando você estiver criando múltiplo instâncias, é mais eficiente para obter um ponteiro para da o objeto classe IClassFactory interface e usar seus métodos quando necessário. Em maiúsculas e minúsculas a último, você deve usar o CoGetClassObject função.

In a CLSCTX enumeração, você pode especificar o tipo de servidor usado para gerenciar o objeto. As constantes podem ser CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER ou qualquer combinação desses valores. A constante CLSCTX_ALL é definido como a combinação de todos os três. Para obter mais informações sobre o uso de um ou uma combinação de constantes, referir a CLSCTX.

Passando para esta função qualquer inválido e, em algumas circunstâncias, NULL ponteiros resultam em terminação inesperada do aplicativo.

Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.

Requirements

Header objbase.h
Library ole32.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

CoGetClassObject
IClassFactory
IUnknown