Compartilhar via


Classe COleObjectFactory

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 Descrição
COleObjectFactory::COleObjectFactory Constrói um objeto COleObjectFactory.

Métodos públicos

Nome Descrição
COleObjectFactory::GetClassID Retorna a ID da classe OLE dos objetos que esta fábrica cria.
COleObjectFactory::IsLicenseValid Determina se a licença do controle é válida.
COleObjectFactory::IsRegistered Indica se a fábrica de objetos está registrada com as DLLs do sistema OLE.
COleObjectFactory::Register Registra essa fábrica de objetos com as DLLs do sistema OLE.
COleObjectFactory::RegisterAll Registra todas as fábricas de objetos do aplicativo com DLLs do sistema OLE.
COleObjectFactory::Revoke Revoga o registro desse fábrica de objetos com as DLLs do sistema OLE.
COleObjectFactory::RevokeAll Revoga os registros de alocador de objetos de um aplicativo com as DLLs do sistema OLE.
COleObjectFactory::UnregisterAll Cancela o registro de todas as alocadores de objetos de um aplicativo.
COleObjectFactory::UpdateRegistry Registra essa fábrica de objetos no registro do sistema OLE.
COleObjectFactory::UpdateRegistryAll Registra todas as fábricas de objetos com o registro do sistema OLE.

Métodos protegidos

Nome Descrição
COleObjectFactory::GetLicenseKey Solicita uma chave exclusiva da DLL do controle.
COleObjectFactory::OnCreateObject Chamado pela estrutura para criar um novo objeto do tipo desta fábrica.
COleObjectFactory::VerifyLicenseKey Verifica se a chave inserida no controle corresponde à chave inserida no contêiner.
COleObjectFactory::VerifyUserLicense Verifica se o controle está licenciado para uso em tempo de design.

Comentários

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

  • Gerenciar o registro de objetos.

  • Atualizando o registro do sistema OLE, bem como o registro em tempo de execução que informa ao OLE que os objetos estão em execução e prontos para receber mensagens.

  • Impor o licenciamento limitando o uso do controle para desenvolvedores licenciados em tempo de design e para aplicativos licenciados em tempo de execução.

  • Registrar fábricas de objetos de controle com o registro do sistema OLE.

Para obter mais informações sobre a 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 obter mais informações sobre o registro, consulte o artigo Registro.

Hierarquia de herança

CObject

CCmdTarget

COleObjectFactory

Requisitos

Cabeçalho afxdisp.h

COleObjectFactory::COleObjectFactory

Constrói um COleObjectFactory objeto, inicializa-o como uma fábrica de objetos não registrados 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 à ID da classe OLE que essa fábrica de objetos representa.

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

bMultiInstance
Indica se uma só instância do aplicativo pode dar suporte a várias instanciações. Se TRUE, várias instâncias do aplicativo serão iniciadas para cada solicitação para criar um objeto.

nFlags
Contém um ou mais dos seguintes sinalizadores:

  • afxRegDefault Define o modelo de threading como ThreadingModel=Apartment.

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

  • afxRegApartmentThreading Define o modelo de threading no Registro como ThreadingModel=Apartment.

  • afxRegFreeThreading Define o modelo de threading no Registro como ThreadingModel=Free.

    Você pode combinar os dois sinalizadores afxRegApartmentThreading e afxRegFreeThreading para definir ThreadingModel=Both. Confira InprocServer32 no SDK do Windows para mais informações sobre o registro de modelo de threading.

lpszProgID
Ponteiro para uma cadeia de caracteres que contém um identificador de programa verbal, como o "Microsoft Excel".

Comentários

No entanto, para usar o objeto, você deve registrá-lo.

Para mais informações, confira Chave CLSID no SDK do Windows.

COleObjectFactory::GetClassID

Retorna uma referência à ID da classe OLE que essa fábrica representa.

REFCLSID GetClassID() const;

Valor de retorno

Referência à ID da classe OLE que essa fábrica representa.

Comentários

Para mais informações, confira Chave CLSID no SDK do Windows.

COleObjectFactory::GetLicenseKey

Solicita uma chave de licença exclusiva da DLL do controle e a armazena no BSTR apontado por pbstrKey.

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

Parâmetros

dwReserved
Reservado para uso futuro.

pbstrKey
Ponteiro para um BSTR que armazenará a chave de licença.

Valor de retorno

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

Comentários

A implementação padrão dessa função retorna 0 e não armazena nada no BSTR. Se você usar o ControlWizard ActiveX do MFC para criar seu projeto, o ControlWizard fornecerá uma substituição que recupera a chave de licença do controle.

COleObjectFactory::IsLicenseValid

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

BOOL IsLicenseValid();

Valor de retorno

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

COleObjectFactory::IsRegistered

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

virtual BOOL IsRegistered() const;

Valor de retorno

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

COleObjectFactory::OnCreateObject

Chamado pela estrutura para criar um novo objeto.

virtual CCmdTarget* OnCreateObject();

Valor de retorno

Um ponteiro para o objeto criado. Ele pode gerar uma exceção de memória se falhar.

Comentários

Substitua essa função para criar o objeto de algo diferente do CRuntimeClass passado para o construtor.

COleObjectFactory::Register

Registra essa fábrica de objetos com as DLLs do sistema OLE.

virtual BOOL Register();

Valor de retorno

Diferente de zero se a fábrica for registrada com êxito, caso contrário, 0.

Comentários

Essa função geralmente é chamada por CWinApp::InitInstance quando o aplicativo é iniciado.

COleObjectFactory::RegisterAll

Registra todas as fábricas de objetos com as DLLs do sistema OLE.

static BOOL PASCAL RegisterAll();

Valor de retorno

Diferente de zero se as fábricas forem registradas com êxito, caso contrário, 0.

Comentários

Essa função geralmente é chamada por CWinApp::InitInstance quando o aplicativo é iniciado.

COleObjectFactory::Revoke

Revoga o registro desse fábrica de objetos com as DLLs do sistema OLE.

void Revoke();

Comentários

A estrutura chama essa função automaticamente antes que o aplicativo seja encerrado. Se necessário, chame-o de uma substituição de CWinApp::ExitInstance.

COleObjectFactory::RevokeAll

Revoga todos os registros de fábricas de objetos de um aplicativo com as DLLs do sistema OLE.

static void PASCAL RevokeAll();

Comentários

A estrutura chama essa função automaticamente antes que o aplicativo seja encerrado. Se necessário, chame-o de uma substituição de CWinApp::ExitInstance.

COleObjectFactory::UnregisterAll

Cancela o registro de todas as alocadores de objetos de um aplicativo.

static BOOL PASCAL UnregisterAll();

Valor de retorno

TRUE se tiver êxito; caso contrário, FALSE.

COleObjectFactory::UpdateRegistry

Registra todas as fábricas de objetos com o registro do sistema OLE.

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

Parâmetros

lpszProgID
Ponteiro para uma cadeia de caracteres que contém o identificador de programa legível por humanos, como "Excel.Document.5".

bRegister
Determina se a fábrica de objetos da classe de controle deve ser registrada.

Comentários

A seguir, breves discussões sobre os dois formulários para esta função:

  • UpdateRegistry( lpszProgID ) Registra essa fábrica de objetos no registro do sistema OLE. Essa função geralmente é chamada por CWinApp::InitInstance quando o aplicativo é iniciado.

  • UpdateRegistry( bRegister ) Essa forma da função é substituível. Se bRegister for TRUE, essa função registrará a classe de controle com o registro do sistema. Caso contrário, o registro da classe será cancelado.

    Se você usar o ControlWizard ActiveX do MFC para criar seu projeto, o ControlWizard fornecerá uma substituição para essa função virtual pura.

COleObjectFactory::UpdateRegistryAll

Registra todas as fábricas de objetos com o registro do sistema OLE.

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

Parâmetros

bRegister
Determina se a fábrica de objetos da classe de controle deve ser registrada.

Valor de retorno

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

Comentários

Essa função geralmente é chamada por CWinApp::InitInstance quando o aplicativo é iniciado.

COleObjectFactory::VerifyLicenseKey

Verifica se o contêiner está licenciado para usar o controle OLE.

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

Parâmetros

bstrKey
Um BSTR que armazena a versão do contêiner da cadeia de caracteres 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.

Comentários

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

Você pode substituir essa função para fornecer 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 controle 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.

Confira também

Classe CCmdTarget
Gráfico da hierarquia
Classe COleTemplateServer