Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Nas versões anteriores do COM, o mecanismo primário usado para criar uma instância de objeto era a função CoCreateInstance. Essa função encapsula o processo de criação de um objeto de classe, usando-o para criar uma nova instância e liberar o objeto de classe. Outra função desse tipo é a OleCreatemais específica, o auxiliar de documento composto OLE que cria um objeto de classe e recupera um ponteiro para um objeto solicitado.
Para suavizar o processo de criação de instância em sistemas distribuídos, o COM introduziu quatro mecanismos importantes de criação de nova instância:
- Monikers de classe e IClassActivator
- CoCreateInstanceEx
- CoGetInstanceFromFile
- coGetInstanceFromIStorage
Um moniker de classe permite identificar a classe de um objeto e normalmente é usado com outro moniker, como um moniker de arquivo, para indicar o local do objeto. Isso permite que você se associe a um objeto e especifique o servidor que será iniciado para esse objeto. Os monikers de classe também podem ser compostos à direita de monikers que dão suporte à associação à interface dedo IClassActivator. Para obter mais informações, consulte de Monikers de Classe.
CoCreateInstanceEx estende CoCreateInstance para possibilitar a criação de um único objeto não inicializado associado ao CLSID fornecido em um computador remoto especificado. Além disso, em vez de solicitar uma única interface e obter um único ponteiro para essa interface, CoCreateInstanceEx possibilita consultar várias interfaces e (se disponível) receber ponteiros para elas em uma única viagem de ida e volta, permitindo assim menos viagens de ida e volta entre computadores. Isso pode tornar a interação de objeto remoto muito mais eficiente. Para fazer isso, a função usa uma matriz de estruturas MULTI_QI.
A criação de um objeto por meio de CoCreateInstanceEx ainda requer que o objeto seja inicializado por meio de uma chamada para uma das interfaces de inicialização (como IPersistStorage::Load). As funções auxiliares CoGetInstanceFromFile e CoGetInstanceFromIStorage encapsulam o poder de criação da instância de coCreateInstanceEx e a inicialização, a primeira de um arquivo e a última de um armazenamento.
Tópicos relacionados