Condividi tramite


Classe COleObjectFactory

Implementa la class factory OLE che crea oggetti OLE come server, oggetti di automazione e documenti.

Sintassi

class COleObjectFactory : public CCmdTarget

Membri

Costruttori pubblici

Nome Descrizione
COleObjectFactory::COleObjectFactory Costruisce un oggetto COleObjectFactory.

Metodi pubblici

Nome Descrizione
COleObjectFactory::GetClassID Restituisce l'ID classe OLE degli oggetti creati da questa factory.
COleObjectFactory::IsLicenseValid Determina se la licenza del controllo è valida.
COleObjectFactory::IsRegistered Indica se la factory di oggetti è registrata con le DLL di sistema OLE.
COleObjectFactory::Register Registra questa factory di oggetti con le DLL di sistema OLE.
COleObjectFactory::RegisterAll Registra tutte le object factory dell'applicazione con DLL di sistema OLE.
COleObjectFactory::Revoke Revoca la registrazione di questa object factory con le DLL di sistema OLE.
COleObjectFactory::RevokeAll Revoca le registrazioni delle object factory di un'applicazione con le DLL di sistema OLE.
COleObjectFactory::UnregisterAll Annulla la registrazione di tutte le object factory di un'applicazione.
COleObjectFactory::UpdateRegistry Registra questa factory di oggetti con il Registro di sistema OLE.
COleObjectFactory::UpdateRegistryAll Registra tutte le object factory dell'applicazione con il Registro di sistema OLE.

Metodi protetti

Nome Descrizione
COleObjectFactory::GetLicenseKey Richiede una chiave univoca dalla DLL del controllo.
COleObjectFactory::OnCreateObject Chiamato dal framework per creare un nuovo oggetto del tipo di questa factory.
COleObjectFactory::VerifyLicenseKey Verifica che la chiave incorporata nel controllo corrisponda alla chiave incorporata nel contenitore.
COleObjectFactory::VerifyUserLicense Verifica che il controllo sia concesso in licenza per l'uso in fase di progettazione.

Osservazioni:

La COleObjectFactory classe dispone di funzioni membro per l'esecuzione delle funzioni seguenti:

  • Gestione della registrazione degli oggetti.

  • Aggiornamento del registro di sistema OLE, nonché la registrazione in fase di esecuzione che informa OLE che gli oggetti sono in esecuzione e pronti per ricevere messaggi.

  • Applicazione delle licenze limitando l'uso del controllo agli sviluppatori con licenza in fase di progettazione e alle applicazioni concesse in licenza in fase di esecuzione.

  • Registrazione delle factory degli oggetti di controllo con il Registro di sistema OLE.

Per altre informazioni sulla creazione di oggetti, vedere gli articoli Oggetti dati e origini dati (OLE) e Oggetti dati e Origini dati: creazione e distruzione. Per altre informazioni sulla registrazione, vedere l'articolo Registrazione.

Gerarchia di ereditarietà

CObject

CCmdTarget

COleObjectFactory

Requisiti

Intestazione: afxdisp.h

COleObjectFactory::COleObjectFactory

Costruisce un COleObjectFactory oggetto, lo inizializza come factory di oggetti non registrati e lo aggiunge all'elenco di factory.

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    LPCTSTR lpszProgID);

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    int nFlags,
    LPCTSTR lpszProgID);

Parametri

clsid
Riferimento all'ID classe OLE rappresentato da questa factory di oggetti.

pRuntimeClass
Puntatore alla classe di runtime degli oggetti C++ che questa factory può creare.

bMultiInstance
Indica se una singola istanza dell'applicazione può supportare più istanze. Se TRUE, vengono avviate più istanze dell'applicazione per ogni richiesta per creare un oggetto.

nFlags
Contiene uno o più flag seguenti:

  • afxRegDefault Imposta il modello di threading su ThreadingModel=Apartment.

  • afxRegInsertable Consente di visualizzare il controllo nella finestra di dialogo Inserisci oggetto per gli oggetti OLE.

  • afxRegApartmentThreading Imposta il modello di threading nel Registro di sistema su ThreadingModel=Apartment.

  • afxRegFreeThreading Imposta il modello di threading nel Registro di sistema su ThreadingModel=Free.

    È possibile combinare i due flag afxRegApartmentThreading e afxRegFreeThreading impostare ThreadingModel=Both. Per altre informazioni sulla registrazione del modello di threading, vedere InprocServer32 in Windows SDK.

lpszProgID
Puntatore a una stringa contenente un identificatore di programma verbale, ad esempio "Microsoft Excel".

Osservazioni:

Per usare l'oggetto, tuttavia, è necessario registrarlo.

Per altre informazioni, vedere Chiave CLSID in Windows SDK.

COleObjectFactory::GetClassID

Restituisce un riferimento all'ID classe OLE rappresentato da questa factory.

REFCLSID GetClassID() const;

Valore restituito

Riferimento all'ID classe OLE rappresentato da questa factory.

Osservazioni:

Per altre informazioni, vedere Chiave CLSID in Windows SDK.

COleObjectFactory::GetLicenseKey

Richiede una chiave di licenza univoca dalla DLL del controllo e la archivia nel BSTR a cui fa riferimento pbstrKey.

virtual BOOL GetLicenseKey(
    DWORD dwReserved,
    BSTR* pbstrKey);

Parametri

dwReserved
Riservato a un uso futuro.

pbstrKey
Puntatore a un BSTR che archivierà il codice di licenza.

Valore restituito

Diverso da zero se la stringa license-key non è NULL; in caso contrario, 0.

Osservazioni:

L'implementazione predefinita di questa funzione restituisce 0 e non archivia nulla in BSTR. Se si usa MFC ActiveX ControlWizard per creare il progetto, ControlWizard fornisce un override che recupera il codice di licenza del controllo.

COleObjectFactory::IsLicenseValid

Determina se la licenza del controllo è valida.

BOOL IsLicenseValid();

Valore restituito

TRUE se ha esito positivo; in caso contrario false.

COleObjectFactory::IsRegistered

Restituisce un valore diverso da zero se la factory è registrata con le DLL di sistema OLE.

virtual BOOL IsRegistered() const;

Valore restituito

Diverso da zero se la fabbrica è registrata; in caso contrario, 0.

COleObjectFactory::OnCreateObject

Chiamato dal framework per creare un nuovo oggetto.

virtual CCmdTarget* OnCreateObject();

Valore restituito

Puntatore all'oggetto creato. Può generare un'eccezione di memoria in caso di errore.

Osservazioni:

Eseguire l'override di questa funzione per creare l'oggetto da un oggetto diverso da CRuntimeClass passato al costruttore.

COleObjectFactory::Register

Registra questa factory di oggetti con le DLL di sistema OLE.

virtual BOOL Register();

Valore restituito

Diverso da zero se la factory viene registrata correttamente; in caso contrario, 0.

Osservazioni:

Questa funzione viene in genere chiamata da CWinApp::InitInstance all'avvio dell'applicazione.

COleObjectFactory::RegisterAll

Registra tutte le object factory dell'applicazione con le DLL di sistema OLE.

static BOOL PASCAL RegisterAll();

Valore restituito

Diverso da zero se le fabbriche vengono registrate correttamente; in caso contrario, 0.

Osservazioni:

Questa funzione viene in genere chiamata da CWinApp::InitInstance all'avvio dell'applicazione.

COleObjectFactory::Revoke

Revoca la registrazione di questa object factory con le DLL di sistema OLE.

void Revoke();

Osservazioni:

Il framework chiama automaticamente questa funzione prima che l'applicazione termini. Se necessario, chiamarlo da un override di CWinApp::ExitInstance.

COleObjectFactory::RevokeAll

Revoca tutte le registrazioni delle object factory dell'applicazione con le DLL di sistema OLE.

static void PASCAL RevokeAll();

Osservazioni:

Il framework chiama automaticamente questa funzione prima che l'applicazione termini. Se necessario, chiamarlo da un override di CWinApp::ExitInstance.

COleObjectFactory::UnregisterAll

Annulla la registrazione di tutte le object factory di un'applicazione.

static BOOL PASCAL UnregisterAll();

Valore restituito

TRUE se l'operazione riesce; in caso contrario, FALSE.

COleObjectFactory::UpdateRegistry

Registra tutte le object factory dell'applicazione con il Registro di sistema OLE.

void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);

Parametri

lpszProgID
Puntatore a una stringa contenente l'identificatore del programma leggibile, ad esempio "Excel.Document.5".

bRegister
Determina se la factory di oggetti della classe di controllo deve essere registrata.

Osservazioni:

Di seguito vengono descritte brevemente le due forme per questa funzione:

  • UpdateRegistry( lpszProgID ) Registra questa factory di oggetti con il Registro di sistema OLE. Questa funzione viene in genere chiamata da CWinApp::InitInstance all'avvio dell'applicazione.

  • UpdateRegistry( bRegister ) Questa forma della funzione è sottoponibile a override. Se bRegister è TRUE, questa funzione registra la classe di controllo con il Registro di sistema. In caso contrario, annulla la registrazione della classe .

    Se si usa MFC ActiveX ControlWizard per creare il progetto, ControlWizard fornisce un override a questa funzione virtuale pura.

COleObjectFactory::UpdateRegistryAll

Registra tutte le object factory dell'applicazione con il Registro di sistema OLE.

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

Parametri

bRegister
Determina se la factory di oggetti della classe di controllo deve essere registrata.

Valore restituito

Diverso da zero se le fabbriche vengono aggiornate correttamente; in caso contrario, 0.

Osservazioni:

Questa funzione viene in genere chiamata da CWinApp::InitInstance all'avvio dell'applicazione.

COleObjectFactory::VerifyLicenseKey

Verifica che il contenitore sia concesso in licenza per l'uso del controllo OLE.

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

Parametri

bstrKey
Stringa BSTR che archivia la versione del contenitore della stringa di licenza.

Valore restituito

Diverso da zero se la licenza di runtime è valida; in caso contrario, 0.

Osservazioni:

La versione predefinita chiama GetLicenseKey per ottenere una copia della stringa di licenza del controllo e la confronta con la stringa in bstrKey. Se le due stringhe corrispondono, la funzione restituisce un valore diverso da zero; in caso contrario restituisce 0.

È possibile eseguire l'override di questa funzione per fornire la verifica personalizzata della licenza.

La funzione VerifyUserLicense verifica la licenza in fase di progettazione.

COleObjectFactory::VerifyUserLicense

Verifica la licenza in fase di progettazione per il controllo OLE.

virtual BOOL VerifyUserLicense();

Valore restituito

Diverso da zero se la licenza in fase di progettazione è valida; in caso contrario, 0.

Vedi anche

Classe CCmdTarget
Grafico della gerarchia
Classe COleTemplateServer