Share via


COleObjectFactory-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Implementeert de OLE-klassefactory, waarmee OLE-objecten worden gemaakt, zoals servers, automatiseringsobjecten en documenten.

Syntaxis

class COleObjectFactory : public CCmdTarget

Leden

Openbare constructors

Naam Description
COleObjectFactory::COleObjectFactory Maakt een COleObjectFactory object.

Openbare methoden

Naam Description
COleObjectFactory::GetClassID Retourneert de OLE-klasse-id van de objecten die door deze factory worden gemaakt.
COleObjectFactory::IsLicenseValid Bepaalt of de licentie van het besturingselement geldig is.
COleObjectFactory::IsRegistered Geeft aan of de objectfactory is geregistreerd bij de OLE-systeem-DLL's.
COleObjectFactory::Register Registreert deze objectfactory met de OLE-systeem-DLL's.
COleObjectFactory::RegisterAll Registreert alle objectfabrieken van de toepassing met OLE-systeem-DLL's.
COleObjectFactory::Revoke Hiermee wordt de registratie van deze objectfactory bij de OLE-systeem-DLL's ingetrokken.
COleObjectFactory::RevokeAll Hiermee worden de registraties van object factory's van een toepassing met de OLE-systeem-DLL's ingetrokken.
COleObjectFactory::UnregisterAll De registratie van alle objectfabrieken van een toepassing ongedaan maken.
COleObjectFactory::UpdateRegistry Registreert deze objectfactory bij het OLE-systeemregister.
COleObjectFactory::UpdateRegistryAll Registreert alle objectfabrieken van de toepassing met het OLE-systeemregister.

Beveiligde methoden

Naam Description
COleObjectFactory::GetLicenseKey Vraagt een unieke sleutel aan vanuit het DLL-bestand van het besturingselement.
COleObjectFactory::OnCreateObject Aangeroepen door het framework om een nieuw object van het type van deze fabriek te maken.
COleObjectFactory::VerifyLicenseKey Controleert of de sleutel die is ingesloten in het besturingselement overeenkomt met de sleutel die is ingesloten in de container.
COleObjectFactory::VerifyUserLicense Controleert of het besturingselement een licentie heeft voor ontwerptijdgebruik.

Opmerkingen

De COleObjectFactory klasse heeft lidfuncties voor het uitvoeren van de volgende functies:

  • De registratie van objecten beheren.

  • Het OLE-systeemregister bijwerken, evenals de runtimeregistratie waarmee OLE wordt geïnformeerd dat objecten worden uitgevoerd en gereed zijn voor het ontvangen van berichten.

  • Het afdwingen van licenties door het gebruik van het besturingselement te beperken tot gelicentieerde ontwikkelaars tijdens het ontwerp en aan gelicentieerde toepassingen tijdens runtime.

  • Controleobjectfabrieken registreren bij het OLE-systeemregister.

Zie de artikelen Gegevensobjecten en Gegevensbronnen (OLE) en Gegevensobjecten en Gegevensbronnen: Maken en Vernietigen voor meer informatie over het maken van objecten. Zie het artikel Registratie voor meer informatie over registratie.

Overnamehiërarchie

CObject

CCmdTarget

COleObjectFactory

Requirements

Koptekst: afxdisp.h

COleObjectFactory::COleObjectFactory

Hiermee wordt een COleObjectFactory object samengesteld, geïnitialiseerd als een niet-geregistreerde objectfactory en toegevoegd aan de lijst met factory's.

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

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

Parameterwaarden

clsid
Verwijzing naar de OLE-klasse-id die deze objectfactory vertegenwoordigt.

pRuntimeClass
Wijs de runtimeklasse van de C++-objecten aan die deze factory kan maken.

bMultiInstance
Hiermee wordt aangegeven of één exemplaar van de toepassing meerdere instanties kan ondersteunen. Als WAAR is, worden meerdere exemplaren van de toepassing gestart voor elke aanvraag om een object te maken.

nFlags
Bevat een of meer van de volgende vlaggen:

  • afxRegDefault Stelt het threadingmodel in op ThreadingModel=Apartment.

  • afxRegInsertable Hiermee kan het besturingselement worden weergegeven in het dialoogvenster Object invoegen voor OLE-objecten.

  • afxRegApartmentThreading Stelt het threadingmodel in het register in op ThreadingModel=Apartment.

  • afxRegFreeThreading Hiermee stelt u het threadingmodel in het register in op ThreadingModel=Free.

    U kunt de twee vlaggen afxRegApartmentThreading combineren en afxRegFreeThreading ThreadingModel=Beide instellen. Zie InprocServer32 in de Windows SDK voor meer informatie over de registratie van threading-modellen.

lpszProgID
Wijs een tekenreeks aan die een verbale programma-id bevat, zoals 'Microsoft Excel'.

Opmerkingen

Als u het object echter wilt gebruiken, moet u het registreren.

Zie CLSID-sleutel in de Windows SDK voor meer informatie.

COleObjectFactory::GetClassID

Retourneert een verwijzing naar de OLE-klasse-id die deze factory vertegenwoordigt.

REFCLSID GetClassID() const;

Retourwaarde

Verwijzing naar de OLE-klasse-id die deze factory vertegenwoordigt.

Opmerkingen

Zie CLSID-sleutel in de Windows SDK voor meer informatie.

COleObjectFactory::GetLicenseKey

Vraagt een unieke licentiesleutel aan vanuit het DLL-bestand van het besturingselement en slaat deze op in de BSTR waarnaar wordt verwezen door pbstrKey.

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

Parameterwaarden

dwReserved
Gereserveerd voor toekomstig gebruik.

pbstrKey
Wijs een BSTR aan waarmee de licentiesleutel wordt opgeslagen.

Retourwaarde

Niet-nul als de tekenreeks met de licentiesleutel niet NULL is; anders 0.

Opmerkingen

De standaard implementatie van deze functie retourneert 0 en slaat niets op in de BSTR. Als u MFC ActiveX ControlWizard gebruikt om uw project te maken, levert ControlWizard een onderdrukking waarmee de licentiesleutel van het besturingselement wordt opgehaald.

COleObjectFactory::IsLicenseValid

Bepaalt of de licentie van het besturingselement geldig is.

BOOL IsLicenseValid();

Retourwaarde

WAAR indien geslaagd; anders onwaar.

COleObjectFactory::IsRegistered

Retourneert een niet-nulwaarde als de factory is geregistreerd bij de OLE-systeem-DLL's.

virtual BOOL IsRegistered() const;

Retourwaarde

Niet-nul indien de fabriek is geregistreerd; anders 0.

COleObjectFactory::OnCreateObject

Aangeroepen door het framework om een nieuw object te maken.

virtual CCmdTarget* OnCreateObject();

Retourwaarde

Een aanwijzer naar het gemaakte object. Er kan een geheugen-uitzondering optreden als deze mislukt.

Opmerkingen

Overschrijf deze functie om het object te maken op basis van iets anders dan de CRuntimeClass die aan de constructor is doorgegeven.

COleObjectFactory::Register

Registreert deze objectfactory met de OLE-systeem-DLL's.

virtual BOOL Register();

Retourwaarde

Niet-nul als de fabriek is geregistreerd; anders 0.

Opmerkingen

Deze functie wordt meestal aangeroepen door CWinApp::InitInstance wanneer de toepassing wordt gestart.

COleObjectFactory::RegisterAll

Registreert alle objectfabrieken van de toepassing met de OLE-systeem-DLL's.

static BOOL PASCAL RegisterAll();

Retourwaarde

Niet-nul als de fabrieken zijn geregistreerd; anders 0.

Opmerkingen

Deze functie wordt meestal aangeroepen door CWinApp::InitInstance wanneer de toepassing wordt gestart.

COleObjectFactory::Revoke

Hiermee wordt de registratie van deze objectfactory bij de OLE-systeem-DLL's ingetrokken.

void Revoke();

Opmerkingen

Dit framework roept deze functie automatisch aan voordat de toepassing wordt beëindigd. Roep deze indien nodig aan via een onderdrukking van CWinApp::ExitInstance.

COleObjectFactory::RevokeAll

Hiermee worden alle registraties van object factory's van de toepassing met de OLE-systeem-DLL's ingetrokken.

static void PASCAL RevokeAll();

Opmerkingen

Dit framework roept deze functie automatisch aan voordat de toepassing wordt beëindigd. Roep deze indien nodig aan via een onderdrukking van CWinApp::ExitInstance.

COleObjectFactory::UnregisterAll

De registratie van alle objectfabrieken van een toepassing ongedaan maken.

static BOOL PASCAL UnregisterAll();

Retourwaarde

WAAR indien geslaagd; anders ONWAAR.

COleObjectFactory::UpdateRegistry

Registreert alle objectfabrieken van de toepassing met het OLE-systeemregister.

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

Parameterwaarden

lpszProgID
Wijs een tekenreeks aan met de door mensen leesbare programma-id, zoals 'Excel.Document.5'.

bRegister
Bepaalt of de objectfactory van de besturingsklasse moet worden geregistreerd.

Opmerkingen

Korte discussies over de twee formulieren voor deze functie volgen:

  • UpdateRegistry(lpszProgID) Registreert deze objectfactory bij het OLE-systeemregister. Deze functie wordt meestal aangeroepen door CWinApp::InitInstance wanneer de toepassing wordt gestart.

  • UpdateRegistry(bRegister) Deze vorm van de functie kan worden overschreven. Als bRegister TRUE is, registreert deze functie de besturingsklasse bij het systeemregister. Anders wordt de registratie van de klasse ongedaan maken.

    Als u MFC ActiveX ControlWizard gebruikt om uw project te maken, biedt ControlWizard een onderdrukking aan deze pure virtuele functie.

COleObjectFactory::UpdateRegistryAll

Registreert alle objectfabrieken van de toepassing met het OLE-systeemregister.

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

Parameterwaarden

bRegister
Bepaalt of de objectfactory van de besturingsklasse moet worden geregistreerd.

Retourwaarde

Niet-nul als de factory's zijn bijgewerkt; anders 0.

Opmerkingen

Deze functie wordt meestal aangeroepen door CWinApp::InitInstance wanneer de toepassing wordt gestart.

COleObjectFactory::VerifyLicenseKey

Controleert of de container een licentie heeft voor het gebruik van het OLE-besturingselement.

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

Parameterwaarden

bstrKey
Een BSTR die de versie van de container van de licentiereeks opslaat.

Retourwaarde

Niet-nul als de runtimelicentie geldig is; anders 0.

Opmerkingen

De standaardversie roept GetLicenseKey aan om een kopie van de licentiereeks van het besturingselement op te halen en vergelijkt deze met de tekenreeks in bstrKey. Als de twee tekenreeksen overeenkomen, retourneert de functie een niet-nulwaarde; anders wordt 0 geretourneerd.

U kunt deze functie overschrijven om aangepaste verificatie van de licentie te bieden.

De functie VerifyUserLicense controleert de ontwerptijdlicentie.

COleObjectFactory::VerifyUserLicense

Controleert de ontwerptijdlicentie voor het OLE-besturingselement.

virtual BOOL VerifyUserLicense();

Retourwaarde

Niet-nul als de licentie voor ontwerptijd geldig is; anders 0.

Zie ook

CCmdTarget-klasse
Hiërarchiegrafiek
COleTemplateServer-klasse