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
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 aafxRegFreeThreading
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