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à
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
eafxRegFreeThreading
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