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
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
eafxRegFreeThreading
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