Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
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:
afxRegDefaultDefine o modelo de threading para ThreadingModel=Apartamento.afxRegInsertablePermite que o controlo apareça na caixa de diálogo Inserir Objeto para objetos OLE.afxRegApartmentThreadingDefine o modelo de threading no registo para ThreadingModel=Apartment.afxRegFreeThreadingDefine o modelo de threading no registo para ThreadingModel=Free.Podes combinar as duas flags
afxRegApartmentThreadingeafxRegFreeThreadingdefinir 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