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.
Para criar uma instância do seu controlo OLE, uma aplicação de contentor chama uma função membro da fábrica de classes do controlo. Como o teu controlo é um objeto OLE real, a fábrica de classes é responsável por criar instâncias do teu controlo. Cada classe de controlo OLE deve ter uma fábrica de classes.
Outra característica importante dos controlos OLE é a sua capacidade de fazer cumprir uma licença. O ControlWizard permite-lhe incorporar licenciamento durante a criação do seu projeto de controlo. Para mais informações sobre licenciamento de controlo, consulte o artigo Controlos ActiveX: Licenciamento de um Controlo ActiveX.
A tabela seguinte lista várias macros e funções usadas para declarar e implementar a fábrica de classes do seu controlo e para licenciar o seu controlo.
Fábricas de Classe e Licenciamento
| Macro ou função | Description |
|---|---|
DECLARE_OLECREATE_EX |
Declara a fábrica de classes para uma página de controlo ou propriedade do OLE. |
IMPLEMENT_OLECREATE_EX |
Implementa a função do GetClassID controlo e declara uma instância da fábrica de classes. |
BEGIN_OLEFACTORY |
Inicia-se a declaração de quaisquer funções de licenciamento. |
END_OLEFACTORY |
Termina a declaração de quaisquer funções de licenciamento. |
AfxVerifyLicFile |
Verifica se um controlo está licenciado para uso num determinado computador. |
DECLARE_OLECREATE_EX
Declara uma fábrica de classes e a GetClassID função membro da sua classe de controlo.
DECLARE_OLECREATE_EX(class_name)
Parâmetros
class_name
O nome da classe de controlo.
Observações
Use esta macro no ficheiro de cabeçalho da classe de controlo para um controlo que não suporta licenciamento.
Note que esta macro serve o mesmo propósito que o seguinte exemplo de código:
BEGIN_OLEFACTORY(CMyAxCtrl)
END_OLEFACTORY(CMyAxCtrl)
Requerimentos
Cabeçalho afxctl.h
IMPLEMENT_OLECREATE_EX
Implementa a fábrica de classes do teu controlo e a GetClassID função membro da tua classe de controlo.
IMPLEMENT_OLECREATE_EX(
class_name,
external_name,
l,
w1,
w2,
b1,
b2,
b3,
b4,
b5,
b6,
b7,
b8)
Parâmetros
class_name
O nome da classe da página de propriedade de controlo.
external_name
O nome do objeto exposto a aplicações.
l, w1, b1w2, , b2, , b4b5b6b7b3b8
Componentes da classe CLSID. Para mais informações sobre estes parâmetros, consulte as Observações para IMPLEMENT_OLECREATE.
Observações
Esta macro deve aparecer no ficheiro de implementação de qualquer classe de controlo que utilize a DECLARE_OLECREATE_EX macro ou as BEGIN_OLEFACTORY macros e.END_OLEFACTORY O nome externo é o identificador do controlo OLE que está exposto a outras aplicações. Os contentores usam este nome para solicitar um objeto desta classe de controlo.
Requerimentos
Cabeçalho afxctl.h
BEGIN_OLEFACTORY
Inicia a declaração da sua fábrica de classes no ficheiro de cabeçalho da sua classe de controlo.
BEGIN_OLEFACTORY(class_name)
Parâmetros
class_name
Especifica o nome da classe de controlo cuja classe de fábrica pertence.
Observações
As declarações das funções de licenciamento de fábricas de classe devem começar imediatamente após BEGIN_OLEFACTORY.
Requerimentos
Cabeçalho afxctl.h
END_OLEFACTORY
Termina a declaração da fábrica de classes do teu controlo.
END_OLEFACTORY(class_name)
Parâmetros
class_name
O nome da classe de controlo de que esta fábrica pertence.
Requerimentos
Cabeçalho afxctl.h
AfxVerifyLicFile
Chame esta função para verificar se o ficheiro de licença nomeado por pszLicFileName é válido para o controlo OLE.
BOOL AFXAPI AfxVerifyLicFile(
HINSTANCE hInstance,
LPCTSTR pszLicFileName,
LPOLESTR pszLicFileContents,
UINT cch = -1);
Parâmetros
hInstance
O handle de instância da DLL associado ao controlo licenciado.
pszLicFileName
Aponta para uma cadeia de caracteres terminada por null contendo o nome do ficheiro da licença.
pszLicFileContents
Aponta para uma sequência de bytes que deve corresponder à sequência encontrada no início do ficheiro de licença.
cch
Número de caracteres em pszLicFileContents.
Valor de retorno
Diferente de zero se o ficheiro de licença existir e começar com a sequência de caracteres em pszLicFileContents; caso contrário, 0.
Observações
Se cch for -1, esta função utiliza:
_tcslen(pszLicFileContents);
Requerimentos
Cabeçalho afxctl.h