Partilhar via


Classe COleObjectFactory

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Implementa a fábrica de classes OLE, que cria objetos OLE como servidores, objetos de automação e documentos.

Sintaxe

class COleObjectFactory : public CCmdTarget

Membros

Construtores Públicos

Nome Description
COleObjectFactory::COleObjectFactory Constrói um COleObjectFactory objeto.

Métodos Públicos

Nome Description
COleObjectFactory::GetClassID Devolve o ID da classe OLE dos objetos criados por esta fábrica.
COleObjectFactory::IsLicenseValid Determina se a licença do controlo é válida.
COleObjectFactory::IsRegistered Indica se a fábrica de objetos está registada nas DLLs do sistema OLE.
COleObjectFactory::Registar Regista esta fábrica de objetos com as DLLs do sistema OLE.
COleObjectFactory::Registar Tudo Regista todas as fábricas de objetos da aplicação com DLLs do sistema OLE.
COleObjectFactory::Revogar Revoga o registo desta fábrica de objetos com as DLLs do sistema OLE.
COleObjectFactory::RevokeAll Revoga os registos das fábricas de objetos de uma aplicação com as DLLs do sistema OLE.
COleObjectFactory::UnregisterAll Desregista todas as fábricas de objetos de uma aplicação.
COleObjectFactory::UpdateRegistry Regista esta fábrica de objetos no registo do sistema OLE.
COleObjectFactory::UpdateRegistryAll Regista todas as fábricas de objetos da aplicação no registo do sistema OLE.

Métodos Protegidos

Nome Description
COleObjectFactory::GetLicenseKey Pede uma chave única da DLL do controlo.
COleObjectFactory::OnCreateObject Chamado pela estrutura para criar um novo objeto do tipo desta fábrica.
COleObjectFactory::VerifyLicenseKey Verifica se a chave embutida no controlo corresponde à chave embutida no contentor.
COleObjectFactory::VerifyUserLicense Verifica que o controlo está licenciado para uso em tempo de projeto.

Observações

A COleObjectFactory classe tem funções de membro para desempenhar as seguintes funções:

  • Gerir o registo de objetos.

  • Atualização do registo do sistema OLE, bem como do registo em tempo de execução que informa o OLE de que os objetos estão a correr e prontos para receber mensagens.

  • Fazer cumprir a licença limitando o uso do controlo a programadores licenciados no momento do design e a aplicações licenciadas em tempo de execução.

  • Registo de fábricas de objetos de controlo no registo do sistema OLE.

Para mais informações sobre criação de objetos, consulte os artigos Objetos de Dados e Fontes de Dados (OLE) e Objetos de Dados e Fontes de Dados: Criação e Destruição. Para mais informações sobre registo, consulte o artigo Registo.

Hierarquia de herança

CObject

CCmdTarget

COleObjectFactory

Requerimentos

Cabeçalho: afxdisp.h

COleObjectFactory::COleObjectFactory

Constrói um COleObjectFactory objeto, inicializa-o como uma fábrica de objetos não registada e adiciona-o à lista de fábricas.

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    LPCTSTR lpszProgID);

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    int nFlags,
    LPCTSTR lpszProgID);

Parâmetros

CLSID
Referência ao ID da classe OLE que esta fábrica de objetos representa.

pRuntimeClass
Apontar para a classe de tempo de execução dos objetos C++ que esta fábrica pode criar.

bMultiInstância
Indica se uma única instância da aplicação pode suportar múltiplas instâncias. Se for TRUE, múltiplas instâncias da aplicação são lançadas para cada pedido de criação de um objeto.

nFlags
Contém uma ou mais das seguintes bandeiras:

  • afxRegDefault Define o modelo de threading para ThreadingModel=Apartamento.

  • afxRegInsertable Permite que o controlo apareça na caixa de diálogo Inserir Objeto para objetos OLE.

  • afxRegApartmentThreading Define o modelo de threading no registo para ThreadingModel=Apartment.

  • afxRegFreeThreading Define o modelo de threading no registo para ThreadingModel=Free.

    Podes combinar as duas flags afxRegApartmentThreading e afxRegFreeThreading definir ThreadingModel=Ambos. Consulte InprocServer32 no SDK do Windows para mais informações sobre o registo de modelos de threading.

lpszProgID
Apontador para uma cadeia contendo um identificador verbal de programa, como "Microsoft Excel."

Observações

Para usar o objeto, no entanto, tem de o registar.

Para mais informações, consulte CLSID Key no Windows SDK.

COleObjectFactory::GetClassID

Devolve uma referência ao ID da classe OLE que esta fábrica representa.

REFCLSID GetClassID() const;

Valor de retorno

Referência ao ID da classe OLE que esta fábrica representa.

Observações

Para mais informações, consulte CLSID Key no Windows SDK.

COleObjectFactory::GetLicenseKey

Pede uma chave de licença única à DLL do controlo e armazena-a no BSTR apontado pelo pbstrKey.

virtual BOOL GetLicenseKey(
    DWORD dwReserved,
    BSTR* pbstrKey);

Parâmetros

dwReservado
Reservado para uso futuro.

pbstrKey
Aponta para um BSTR que armazena a chave de licença.

Valor de retorno

Diferente de zero se a cadeia de chave de licença não for NULL; caso contrário, 0.

Observações

A implementação padrão desta função devolve 0 e não armazena nada no BSTR. Se usar o MFC ActiveX ControlWizard para criar o seu projeto, o ControlWizard fornece um override que recupera a chave de licença do controlo.

COleObjectFactory::IsLicenseValid

Determina se a licença do controlo é válida.

BOOL IsLicenseValid();

Valor de retorno

VERDADEIRO se for bem-sucedido; caso contrário, falso.

COleObjectFactory::IsRegistered

Devolve um valor diferente de zero se a fábrica estiver registada com as DLLs do sistema OLE.

virtual BOOL IsRegistered() const;

Valor de retorno

Diferente de zero se a fábrica estiver registada; caso contrário, 0.

COleObjectFactory::OnCreateObject

Chamado pelo framework para criar um novo objeto.

virtual CCmdTarget* OnCreateObject();

Valor de retorno

Um apontador para o objeto criado. Pode lançar uma exceção de memória se falhar.

Observações

Sobrescreva esta função para criar o objeto a partir de algo diferente da CRuntimeClass passada ao construtor.

COleObjectFactory::Registar

Regista esta fábrica de objetos com as DLLs do sistema OLE.

virtual BOOL Register();

Valor de retorno

Diferente de zero se a fábrica for registada com sucesso; caso contrário, 0.

Observações

Esta função é normalmente chamada por CWinApp::InitInstance quando a aplicação é lançada.

COleObjectFactory::Registar Tudo

Regista todas as fábricas de objetos da aplicação com as DLLs do sistema OLE.

static BOOL PASCAL RegisterAll();

Valor de retorno

Diferente de zero se as fábricas estiverem registadas com sucesso; caso contrário, 0.

Observações

Esta função é normalmente chamada por CWinApp::InitInstance quando a aplicação é lançada.

COleObjectFactory::Revogar

Revoga o registo desta fábrica de objetos com as DLLs do sistema OLE.

void Revoke();

Observações

O framework chama esta função automaticamente antes de a aplicação terminar. Se necessário, chame-o a partir de um override de CWinApp::ExitInstance.

COleObjectFactory::RevokeAll

Revoga todos os registos das fábricas de objetos da aplicação junto das DLLs do sistema OLE.

static void PASCAL RevokeAll();

Observações

O framework chama esta função automaticamente antes de a aplicação terminar. Se necessário, chame-o a partir de um override de CWinApp::ExitInstance.

COleObjectFactory::UnregisterAll

Desregista todas as fábricas de objetos de uma aplicação.

static BOOL PASCAL UnregisterAll();

Valor de retorno

VERDADEIRO se for bem-sucedido; caso contrário, FALSO.

COleObjectFactory::UpdateRegistry

Regista todas as fábricas de objetos da aplicação no registo do sistema OLE.

void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);

Parâmetros

lpszProgID
Apontar para uma cadeia contendo o identificador de programa legível por humanos, como "Excel.Document.5."

bRegister
Determina se a fábrica de objetos da classe de controlo deve ser registada.

Observações

Seguem-se breves discussões sobre as duas formas desta função:

  • UpdateRegistry(lpszProgID) Regista esta fábrica de objetos com o registo do sistema OLE. Esta função é normalmente chamada por CWinApp::InitInstance quando a aplicação é lançada.

  • UpdateRegistry(bRegister) Esta forma da função é sobrescrita. Se o bRegister for TRUE, esta função regista a classe de controlo junto do registo do sistema. Caso contrário, desregista a classe.

    Se usar o MFC ActiveX ControlWizard para criar o seu projeto, o ControlWizard fornece uma sobreposição para esta função puramente virtual.

COleObjectFactory::UpdateRegistryAll

Regista todas as fábricas de objetos da aplicação no registo do sistema OLE.

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

Parâmetros

bRegister
Determina se a fábrica de objetos da classe de controlo deve ser registada.

Valor de retorno

Diferente de zero se as fábricas forem atualizadas com sucesso; caso contrário, 0.

Observações

Esta função é normalmente chamada por CWinApp::InitInstance quando a aplicação é lançada.

COleObjectFactory::VerifyLicenseKey

Verifica se o contentor está licenciado para usar o controlo OLE.

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

Parâmetros

bstrKey
Um BSTR que armazena a versão do contentor da cadeia de licença.

Valor de retorno

Diferente de zero se a licença em tempo de execução for válida; caso contrário, 0.

Observações

A versão padrão chama o GetLicenseKey para obter uma cópia da string de licença do controlo e compara-a com a string em bstrKey. Se as duas cadeias coincidirem, a função devolve um valor diferente de zero; caso contrário, devolve 0.

Pode sobrescrever esta função para fornecer uma verificação personalizada da licença.

A função VerifyUserLicense verifica a licença de tempo de design.

COleObjectFactory::VerifyUserLicense

Verifica a licença de tempo de design para o controlo OLE.

virtual BOOL VerifyUserLicense();

Valor de retorno

Diferente de zero se a licença de tempo de design for válida; caso contrário, 0.

Consulte também

Classe CCmdTarget
Gráfico de Hierarquia
Classe COleTemplateServer