Método IClassFactory2::CreateInstanceLic (ocidl.h)
Cria uma instância do objeto licenciado para a chave de licença especificada. Esse método é o único meio possível para criar um objeto em um computador sem licença.
Sintaxe
HRESULT CreateInstanceLic(
[in] IUnknown *pUnkOuter,
[in] IUnknown *pUnkReserved,
[in] REFIID riid,
[in] BSTR bstrKey,
[out] PVOID *ppvObj
);
Parâmetros
[in] pUnkOuter
Um ponteiro para a interface IUnknown de controle no desconhecido externo se esse objeto estiver sendo criado como parte de uma agregação. Se o objeto não fizer parte de uma agregação, esse parâmetro deverá ser NULL.
[in] pUnkReserved
Esse parâmetro não é utilizado e deve ser NULL.
[in] riid
Uma referência ao identificador da interface a ser usada para se comunicar com o objeto recém-criado.
[in] bstrKey
Chave de licença em tempo de execução obtida anteriormente de IClassFactory2::RequestLicKey que é necessária para criar um objeto.
[out] ppvObj
Endereço da variável de ponteiro que recebe o ponteiro de interface solicitado em riid. Após o retorno bem-sucedido, *ppvObj contém o ponteiro de interface solicitado. Se ocorrer um erro, a implementação deverá definir *ppvObj como NULL.
Retornar valor
Esse método pode retornar os valores de retorno padrão E_INVALIDARG, E_OUTOFMEMORY e E_UNEXPECTED, bem como os valores a seguir.
Código de retorno | Descrição |
---|---|
|
A licença foi criada com êxito. |
|
Esse método não é implementado porque os objetos só podem ser criados em computadores totalmente licenciados por meio de IClassFactory::CreateInstance. |
|
Um ponteiro passado em bstrKey ou ppvObj não é válido. Por exemplo, pode ser NULL. |
|
O objeto pode ser criado (e a chave de licença é válida), exceto que o objeto não dá suporte à interface especificada por riid. |
|
O parâmetro pUnkOuter não é NULL, mas essa classe de objeto não dá suporte à agregação. |
|
A chave fornecida em bstrKey não é uma chave de licença válida. |
Comentários
Anotações aos implementadores
Se a fábrica de classes não fornecer uma chave de licença (ou seja, IClassFactory2::RequestLicKey retornará E_NOTIMPL e o membro fRuntimeKeyAvail em LICINFO estiver definido como FALSE em IClassFactory2::GetLicInfo), esse método também poderá retornar E_NOTIMPL. Nesses casos, a fábrica de classes está implementando IClassFactory2 simplesmente para especificar se o computador está licenciado por meio do membro fLicVerified do LICINFO.Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | ocidl.h |