Sdílet prostřednictvím


COleObjectFactory – třída

Implementuje objekt pro vytváření tříd OLE, který vytváří objekty OLE, jako jsou servery, objekty automatizace a dokumenty.

Syntaxe

class COleObjectFactory : public CCmdTarget

Členové

Veřejné konstruktory

Název Popis
COleObjectFactory::COleObjectFactory COleObjectFactory Vytvoří objekt.

Veřejné metody

Název Popis
COleObjectFactory::GetClassID Vrátí ID třídy OLE objektů, které tato továrna vytvoří.
COleObjectFactory::IsLicenseValid Určuje, jestli je licence ovládacího prvku platná.
COleObjectFactory::IsRegistered Určuje, zda objektová továrna je registrována pomocí knihoven DLL systému OLE.
COleObjectFactory::Register Zaregistruje tuto objektovou továrnu pomocí knihoven DLL systému OLE.
COleObjectFactory::RegisterAll Zaregistruje všechny objektové továrny aplikace pomocí knihoven DLL systému OLE.
COleObjectFactory::Revoke Odvolá registraci objektové továrny pomocí systémových knihoven DLL OLE.
COleObjectFactory::RevokeAll Odvolá registraci objektů objektových továren aplikace pomocí systémových knihoven DLL OLE.
COleObjectFactory::UnregisterAll Zruší registraci všech objektů objektových továren aplikace.
COleObjectFactory::UpdateRegistry Zaregistruje tuto objektovou továrnu v systémovém registru OLE.
COleObjectFactory::UpdateRegistryAll Zaregistruje všechny objektové továrny aplikace v systémovém registru OLE.

Chráněné metody

Název Popis
COleObjectFactory::GetLicenseKey Vyžádá si jedinečný klíč z knihovny DLL ovládacího prvku.
COleObjectFactory::OnCreateObject Volá se rozhraním pro vytvoření nového objektu typu této továrny.
COleObjectFactory::VerifyLicenseKey Ověří, že klíč vložený do ovládacího prvku odpovídá klíči vloženém v kontejneru.
COleObjectFactory::VerifyUserLicense Ověřuje, že je ovládací prvek licencovaný pro použití v době návrhu.

Poznámky

Třída COleObjectFactory má členské funkce pro provádění následujících funkcí:

  • Správa registrace objektů

  • Aktualizace registru systému OLE a také registrace za běhu, která informuje OLE, že objekty jsou spuštěny a připravené přijímat zprávy.

  • Vynucování licencování omezením používání ovládacího prvku na licencované vývojáře v době návrhu a na licencované aplikace za běhu.

  • Registrace továren řídicích objektů v systémovém registru OLE.

Další informace o vytváření objektů naleznete v článcích Datové objekty a zdroje dat (OLE) a datové objekty a zdroje dat: Vytváření a zničení. Další informace o registraci najdete v článku Registrace.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

COleObjectFactory

Požadavky

Hlavička: afxdisp.h

COleObjectFactory::COleObjectFactory

COleObjectFactory Vytvoří objekt, inicializuje ho jako neregistrovanou objektovou továrnu a přidá ho do seznamu továren.

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

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

Parametry

clsid
Odkaz na ID třídy OLE tato objektová továrna představuje.

pRuntimeClass
Ukazatel na třídu runtime objektů C++, které může tato továrna vytvořit.

bMultiInstance
Určuje, jestli může jedna instance aplikace podporovat více instancí. Pokud je hodnota TRUE, pro každý požadavek se spustí více instancí aplikace, aby se vytvořil objekt.

nFlags
Obsahuje jeden nebo více následujících příznaků:

  • afxRegDefault Nastaví model threadingu na ThreadingModel=Apartment.

  • afxRegInsertable Umožňuje, aby se ovládací prvek zobrazil v dialogovém okně Vložit objekt pro objekty OLE.

  • afxRegApartmentThreading Nastaví model threadingu v registru na ThreadingModel=Apartment.

  • afxRegFreeThreading Nastaví model threadingu v registru na ThreadingModel=Free.

    Tyto dva příznaky afxRegApartmentThreading můžete zkombinovat a afxRegFreeThreading nastavit ThreadingModel=Both. Další informace o registraci modelu vláken najdete v tématu InprocServer32 v sadě Windows SDK.

lpszProgID
Ukazatel na řetězec obsahující identifikátor slovního programu, například "Microsoft Excel".

Poznámky

Pokud však chcete objekt použít, musíte ho zaregistrovat.

Další informace najdete v tématu KLÍČ CLSID v sadě Windows SDK.

COleObjectFactory::GetClassID

Vrátí odkaz na ID třídy OLE, který tato továrna představuje.

REFCLSID GetClassID() const;

Návratová hodnota

Odkaz na ID třídy OLE tato továrna představuje.

Poznámky

Další informace najdete v tématu KLÍČ CLSID v sadě Windows SDK.

COleObjectFactory::GetLicenseKey

Vyžádá si jedinečný licenční klíč z knihovny DLL ovládacího prvku a uloží ho do BSTR, na který odkazuje pbstrKey.

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

Parametry

dwReserved
Vyhrazeno pro budoucí použití.

pbstrKey
Ukazatel na BSTR, do kterého se uloží licenční klíč.

Návratová hodnota

Nenulové, pokud řetězec licenčního klíče není NULL; jinak 0.

Poznámky

Výchozí implementace této funkce vrátí hodnotu 0 a v BSTR se nic neschová. Pokud k vytvoření projektu použijete mfc ActiveX ControlWizard, controlWizard poskytuje přepsání, které načte licenční klíč ovládacího prvku.

COleObjectFactory::IsLicenseValid

Určuje, jestli je licence ovládacího prvku platná.

BOOL IsLicenseValid();

Návratová hodnota

TRUE v případě úspěchu; jinak nepravda.

COleObjectFactory::IsRegistered

Vrátí nenulovou hodnotu, pokud je továrna registrována pomocí systémových knihoven DLL OLE.

virtual BOOL IsRegistered() const;

Návratová hodnota

Nenulové, pokud je továrna registrována; jinak 0.

COleObjectFactory::OnCreateObject

Volá se rozhraním pro vytvoření nového objektu.

virtual CCmdTarget* OnCreateObject();

Návratová hodnota

Ukazatel na vytvořený objekt. Pokud selže, může vyvolat výjimku paměti.

Poznámky

Přepsat tuto funkci vytvořit objekt z něčeho jiného než CRuntimeClass předán konstruktoru.

COleObjectFactory::Register

Zaregistruje tuto objektovou továrnu pomocí knihoven DLL systému OLE.

virtual BOOL Register();

Návratová hodnota

Nenulové, pokud je továrna úspěšně zaregistrována; jinak 0.

Poznámky

Tuto funkci obvykle volá CWinApp::InitInstance při spuštění aplikace.

COleObjectFactory::RegisterAll

Zaregistruje všechny objektové továrny aplikace pomocí systémových knihoven DLL OLE.

static BOOL PASCAL RegisterAll();

Návratová hodnota

Nenulové, pokud jsou továrny úspěšně zaregistrovány; jinak 0.

Poznámky

Tuto funkci obvykle volá CWinApp::InitInstance při spuštění aplikace.

COleObjectFactory::Revoke

Odvolá registraci objektové továrny pomocí systémových knihoven DLL OLE.

void Revoke();

Poznámky

Architektura tuto funkci volá automaticky před ukončením aplikace. V případě potřeby ji zavolejte z přepsání CWinApp::ExitInstance.

COleObjectFactory::RevokeAll

Odvolá všechny registrace objektů objektových továren aplikace pomocí knihoven DLL systému OLE.

static void PASCAL RevokeAll();

Poznámky

Architektura tuto funkci volá automaticky před ukončením aplikace. V případě potřeby ji zavolejte z přepsání CWinApp::ExitInstance.

COleObjectFactory::UnregisterAll

Zruší registraci všech objektů objektových továren aplikace.

static BOOL PASCAL UnregisterAll();

Návratová hodnota

TRUE v případě úspěchu; jinak NEPRAVDA.

COleObjectFactory::UpdateRegistry

Zaregistruje všechny objektové továrny aplikace v systémovém registru OLE.

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

Parametry

lpszProgID
Ukazatel na řetězec obsahující identifikátor programu čitelný člověkem, například "Excel.Document.5".

bRegister
Určuje, zda má být objektová továrna třídy ovládacího prvku registrována.

Poznámky

Stručné diskuze o dvou formách této funkce následují:

  • UpdateRegistry( lpszProgID ) Zaregistruje tuto objektovou továrnu v systémovém registru OLE. Tuto funkci obvykle volá CWinApp::InitInstance při spuštění aplikace.

  • UpdateRegistry( bRegister ) Tato forma funkce je přepsána. Pokud bRegister je TRUE, tato funkce zaregistruje třídu ovládacího prvku v systémovém registru. V opačném případě zruší registraci třídy.

    Pokud k vytvoření projektu použijete mfc ActiveX ControlWizard, controlWizard poskytuje přepsání této čistě virtuální funkce.

COleObjectFactory::UpdateRegistryAll

Zaregistruje všechny objektové továrny aplikace v systémovém registru OLE.

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

Parametry

bRegister
Určuje, zda má být objektová továrna třídy ovládacího prvku registrována.

Návratová hodnota

Nenulové, pokud se továrny úspěšně aktualizují; jinak 0.

Poznámky

Tuto funkci obvykle volá CWinApp::InitInstance při spuštění aplikace.

COleObjectFactory::VerifyLicenseKey

Ověřuje, že kontejner má licenci k použití ovládacího prvku OLE.

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

Parametry

bstrKey
BSTR ukládá verzi licenčního řetězce kontejneru.

Návratová hodnota

Nenulová, pokud je licence za běhu platná; jinak 0.

Poznámky

Výchozí verze volá GetLicenseKey k získání kopie licenčního řetězce ovládacího prvku a porovná ji s řetězcem v bstrKey. Pokud se oba řetězce shodují, vrátí funkce nenulovou hodnotu; v opačném případě vrátí hodnotu 0.

Tuto funkci můžete přepsat tak, aby poskytovala přizpůsobené ověření licence.

Funkce VerifyUserLicense ověřuje licenci v době návrhu.

COleObjectFactory::VerifyUserLicense

Ověřuje licenci na dobu návrhu pro ovládací prvek OLE.

virtual BOOL VerifyUserLicense();

Návratová hodnota

Nenulové, pokud je licence na dobu návrhu platná; jinak 0.

Viz také

CCmdTarget – třída
Graf hierarchie
COleTemplateServer – třída