Partilhar via


Fábricas de Classe e Licenciamento

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

Consulte também

Macros e globais