Método ILocalRegistry.CreateInstance (Guid, Object, Guid, UInt32, IntPtr)
Publicado: abril de 2016
Cria uma instância de uma classe listada no Registro local.
Namespace: Microsoft.VisualStudio.Shell.Interop
Assembly: Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)
Sintaxe
int CreateInstance(
Guid clsid,
object punkOuter,
[InAttribute] ref Guid riid,
uint dwFlags,
out IntPtr ppvObj
)
int CreateInstance(
Guid clsid,
Object^ punkOuter,
[InAttribute] Guid% riid,
unsigned int dwFlags,
[OutAttribute] IntPtr% ppvObj
)
abstract CreateInstance :
clsid:Guid *
punkOuter:Object *
riid:Guid byref *
dwFlags:uint32 *
ppvObj:nativeint byref -> int
Function CreateInstance (
clsid As Guid,
punkOuter As Object,
<InAttribute> ByRef riid As Guid,
dwFlags As UInteger,
<OutAttribute> ByRef ppvObj As IntPtr
) As Integer
Parâmetros
- clsid
[in] Classe (CLSID) de identificador do objeto solicitado.Este é o CLSID associado a dados e o código que é usado para criar o objeto.
- punkOuter
[in] Ponteiro para a instância de controle de IUnknown do agregado que usa o objeto recém-criado.Um valor null indica que o objeto não está sendo criado como parte de um agregado.Se não-nulos, isso é um ponteiro para o objeto agregado IUnknown interface (o controle de IUnknown).
- riid
[in] Interface a ser usado para se comunicar com o objeto.Por exemplo, IID_IClassFactory.
- dwFlags
[in] Sinalizadores para controlar a criação de instância a partir do CLSCTX enumeração.Especifica um valor de CLSCTX_INPROC_SERVER.
- ppvObj
[out] Endereço da variável de ponteiro que recebe o ponteiro de interface solicitado na riid.No retorno bem-sucedido, ppvObj contém o ponteiro de interface solicitada.Em caso de falha, ppvObj contém null.
Valor de retorno
Type: System.Int32
Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.
Comentários
COM assinatura
De objext.idl:
HRESULT ILocalRegistry::CreateInstance(
[in] CLSID clsid,
[in] IUnknown* punkOuter,
[in] REFIID riid,
[in] DWORD dwFlags,
[out] void** ppvObj
);
Esse método é equivalente do COM CoCreateInstance função.Cria um único objeto não inicializado do tipo associado com o CLSID especificado e retorna qualquer ponteiros de interface solicitada.
CreateInstanceprocura o objeto de classe no Registro local de objetos registrados, conecta-se ao objeto de classe associado com o CLSID especificado, cria uma instância inicializada do objeto e libera o objeto de classe.Esse método encapsula chamadas para a função COM CoGetClassObject para obter um ponteiro para a fábrica de classe do objeto, como CreateInstance para criar uma instância do objeto e para liberar a referência a fábrica de classes do objeto.
Chame CreateInstance quando você deseja criar uma única instância de um objeto com base em um CLSID e não precisará manter o objeto de fábrica de classe para criar outras instâncias do objeto.Para criar vários objetos de um objeto de classe única, use o GetClassObjectOfClsid método.
Este método registra um objeto no hive do Registro local (por exemplo, [HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\CLSID]).Nesta seção do registro, InProcServer32 é usado como um valor em vez de uma subchave.Somente é aceito instanciando objetos no thread da interface do usuário principal.
Especifique um valor de CLSCTX_INPROC_SERVER para o dwFlags parâmetro para instanciar o objeto localmente.Se você não especifica esse valor, o objeto será instanciado globalmente usando COM CoCreateInstance função.
Consulte também
Interface ILocalRegistry
Namespace Microsoft.VisualStudio.Shell.Interop
Retornar ao topo