Class factory e licenze

Per creare un'istanza del controllo OLE, un'applicazione contenitore chiama una funzione membro della class factory del controllo. Poiché il controllo è un oggetto OLE effettivo, la class factory è responsabile della creazione di istanze del controllo. Ogni classe di controllo OLE deve avere una class factory.

Un'altra importante funzionalità dei controlli OLE è la possibilità di applicare una licenza. ControlWizard consente di incorporare le licenze durante la creazione del progetto di controllo. Per altre informazioni sulle licenze di controllo, vedere l'articolo Controlli ActiveX: Gestione delle licenze di un controllo ActiveX.

Nella tabella seguente sono elencate diverse macro e funzioni usate per dichiarare e implementare la class factory del controllo e per la licenza del controllo.

Class factory e licenze

Macro o funzione Descrizione
DECLARE_OLECREATE_EX Dichiara la class factory per un controllo OLE o una pagina delle proprietà.
IMPLEMENT_OLECREATE_EX Implementa la funzione del GetClassID controllo e dichiara un'istanza della class factory.
BEGIN_OLEFACTORY Inizia la dichiarazione di tutte le funzioni di licenza.
END_OLEFACTORY Termina la dichiarazione di tutte le funzioni di licenza.
AfxVerifyLicFile Verifica se un controllo è concesso in licenza per l'uso in un computer specifico.

DECLARE_OLECREATE_EX

Dichiara una class factory e la GetClassID funzione membro della classe del controllo.

DECLARE_OLECREATE_EX(class_name)

Parametri

class_name
Nome della classe del controllo.

Osservazioni:

Utilizzare questa macro nel file di intestazione della classe di controllo per un controllo che non supporta le licenze.

Si noti che questa macro ha lo stesso scopo dell'esempio di codice seguente:

BEGIN_OLEFACTORY(CMyAxCtrl)
END_OLEFACTORY(CMyAxCtrl)

Requisiti

Intestazione afxctl.h

IMPLEMENT_OLECREATE_EX

Implementa la class factory del controllo e la GetClassID funzione membro della classe di controllo.

IMPLEMENT_OLECREATE_EX(
   class_name,
    external_name,
    l,
    w1,
    w2,
    b1,
    b2,
    b3,
    b4,
    b5,
    b6,
    b7,
    b8)

Parametri

class_name
Nome della classe della pagina delle proprietà del controllo.

external_name
Nome dell'oggetto esposto alle applicazioni.

l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8
Componenti della classe CLSID. Per altre informazioni su questi parametri, vedere la sezione Osservazioni per IMPLEMENT_OLECREATE.

Osservazioni:

Questa macro deve essere visualizzata nel file di implementazione per qualsiasi classe di controllo che utilizza la DECLARE_OLECREATE_EX macro o le BEGIN_OLEFACTORY macro e END_OLEFACTORY . Il nome esterno è l'identificatore del controllo OLE esposto ad altre applicazioni. I contenitori usano questo nome per richiedere un oggetto di questa classe di controllo.

Requisiti

Intestazione afxctl.h

BEGIN_OLEFACTORY

Inizia la dichiarazione della class factory nel file di intestazione della classe di controllo.

BEGIN_OLEFACTORY(class_name)

Parametri

class_name
Specifica il nome della classe del controllo di cui si tratta la class factory.

Osservazioni:

Le dichiarazioni delle funzioni di licenza di Class Factory devono iniziare immediatamente dopo BEGIN_OLEFACTORY.

Requisiti

Intestazione afxctl.h

END_OLEFACTORY

Termina la dichiarazione della class factory del controllo.

END_OLEFACTORY(class_name)

Parametri

class_name
Nome della classe del controllo di cui si tratta la class factory.

Requisiti

Intestazione afxctl.h

AfxVerifyLicFile

Chiamare questa funzione per verificare che il file di licenza denominato da pszLicFileName sia valido per il controllo OLE.

BOOL AFXAPI AfxVerifyLicFile(
    HINSTANCE  hInstance,
    LPCTSTR  pszLicFileName,
    LPOLESTR  pszLicFileContents,
    UINT cch = -1);

Parametri

hInstance
Handle dell'istanza della DLL associata al controllo concesso in licenza.

pszLicFileName
Punta a una stringa di caratteri con terminazione Null contenente il nome file della licenza.

pszLicFileContents
Punta a una sequenza di byte che deve corrispondere alla sequenza trovata all'inizio del file di licenza.

cch
Numero di caratteri in pszLicFileContents.

Valore restituito

Diverso da zero se il file di licenza esiste e inizia con la sequenza di caratteri in pszLicFileContents; in caso contrario, 0.

Osservazioni:

Se cch è -1, questa funzione usa:

_tcslen(pszLicFileContents);

Requisiti

Intestazione afxctl.h

Vedi anche

Macro e globali