CComModule – třída
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
Důležité
Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.
Syntaxe
class CComModule : public _ATL_MODULE
Členové
Veřejné metody
Název | Popis |
---|---|
CComModule::GetClassObject | Vytvoří objekt zadaného CLSID. Pouze pro knihovny DLL. |
CComModule::GetModuleInstance | Vrací objekt m_hInst . |
CComModule::GetResourceInstance | Vrací objekt m_hInstResource . |
CComModule::GetTypeLibInstance | Vrací objekt m_hInstTypeLib . |
CComModule::Init | Inicializuje datové členy. |
CComModule::RegisterClassHelper | Zadá standardní registraci třídy objektu v systémovém registru. |
CComModule::RegisterClassObjects | Zaregistruje objekt třídy. Pouze pro EXE. |
CComModule::RegisterServer | Aktualizuje systémový registr pro každý objekt v mapě objektu. |
CComModule::RegisterTypeLib | Zaregistruje knihovnu typů. |
CComModule::RevokeClassObjects | Odvolá objekt třídy. Pouze pro EXE. |
CComModule::Term | Uvolní datové členy. |
CComModule::UnregisterClassHelper | Odebere ze systémového registru standardní třídu objektu. |
CComModule::UnregisterServer | Zruší registraci každého objektu v mapě objektu. |
CComModule::UpdateRegistryClass | Zaregistruje nebo zruší registraci standardní třídy objektu. |
CComModule::UpdateRegistryFromResourceD | Spustí skript obsažený v zadaném prostředku pro registraci nebo zrušení registrace objektu. |
CComModule::UpdateRegistryFromResourceS | Staticky odkazuje na komponentu registru ATL. Spustí skript obsažený v zadaném prostředku pro registraci nebo zrušení registrace objektu. |
Veřejné datové členy
Název | Popis |
---|---|
CComModule::m_csObjMap | Zajišťuje synchronizovaný přístup k informacím o mapě objektu. |
CComModule::m_csTypeInfoHolder | Zajišťuje synchronizovaný přístup k informacím o knihovně typů. |
CComModule::m_csWindowCreate | Zajišťuje synchronizovaný přístup k informacím o třídě okna a statickým datům používaným při vytváření okna. |
CComModule::m_hInst | Obsahuje popisovač instance modulu. |
CComModule::m_hInstResource | Ve výchozím nastavení obsahuje popisovač instance modulu. |
CComModule::m_hInstTypeLib | Ve výchozím nastavení obsahuje popisovač instance modulu. |
CComModule::m_pObjMap | Odkazuje na mapu objektu spravovanou instancí modulu. |
Poznámky
Poznámka:
Tato třída je zastaralá a průvodci generováním kódu ATL nyní používají odvozené třídy CAtlAutoThreadModule a CAtlModule . Další informace najdete v tématu Třídy modulů ATL. Následující informace slouží k použití s aplikacemi vytvořenými ve starších verzích ATL. CComModule
je stále součástí knihovny ATL pro zpětné funkce.
CComModule
implementuje modul serveru COM, který klientovi umožňuje přístup ke komponentám modulu. CComModule
podporuje jak moduly DLL (v procesu), tak exe (místní).
CComModule
Instance používá k údržbě sady definic objektů třídy mapování objektů. Tato mapa objektu je implementována jako pole _ATL_OBJMAP_ENTRY
struktur a obsahuje informace pro:
Zadávání a odebírání popisů objektů v systémovém registru
Vytváření instancí objektů prostřednictvím objektu pro vytváření tříd
Navázání komunikace mezi klientem a kořenovým objektem v komponentě.
Provádění správy životnosti objektů třídy.
Když spustíte ATL COM AppWizard, průvodce automaticky vygeneruje _Module
globální instanci CComModule
nebo třídu odvozenou z ní. Další informace o Průvodci projektem ATL naleznete v článku Vytvoření projektu ATL.
Kromě CComModule
, ATL poskytuje CComAutoThreadModule, který implementuje modul modelu bytu pro EXEs a služby Systému Windows. Odvozujte modul od CComAutoThreadModule
doby, kdy chcete vytvořit objekty ve více apartmánech.
Hierarchie dědičnosti
CComModule
Požadavky
Hlavička: atlbase.h
CComModule::GetClassObject
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HRESULT GetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv) throw();
Parametry
rclsid
[v] CLSID objektu, který se má vytvořit.
riid
[v] IID požadovaného rozhraní.
ppv
[ven] Ukazatel na ukazatel rozhraní identifikovaný riidem. Pokud objekt nepodporuje toto rozhraní, ppv je nastaven na hodnotu NULL.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Vytvoří objekt zadaného CLSID a načte ukazatel rozhraní na tento objekt.
GetClassObject
je k dispozici pouze pro knihovny DLL.
CComModule::GetModuleInstance
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HINSTANCE GetModuleInstance() throw();
Návratová hodnota
HINSTANCE identifikující tento modul.
Poznámky
CComModule::GetResourceInstance
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HINSTANCE GetResourceInstance() throw();
Návratová hodnota
An HINSTANCE.
Poznámky
Vrátí datový člen m_hInstResource.
CComModule::GetTypeLibInstance
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HINSTANCE GetTypeLibInstance() const throw();
Návratová hodnota
An HINSTANCE.
Poznámky
Vrátí datový člen m_hInstTypeLib.
CComModule::Init
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HRESULT Init(
_ATL_OBJMAP_ENTRY* p,
HINSTANCE h,
const GUID* plibid = NULL) throw();
Parametry
p
[v] Ukazatel na pole položek mapování objektů.
h
[v] HINSTANCE předaný DLLMain
nebo WinMain
.
plibid
[v] Ukazatel na LIBID knihovny typů přidružené k projektu.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Inicializuje všechny datové členy.
CComModule::m_csObjMap
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
CRITICAL_SECTION m_csObjMap;
Poznámky
Zajišťuje synchronizovaný přístup k mapě objektu.
CComModule::m_csTypeInfoHolder
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
CRITICAL_SECTION m_csTypeInfoHolder;
Poznámky
Zajišťuje synchronizovaný přístup ke knihovně typů.
CComModule::m_csWindowCreate
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
CRITICAL_SECTION m_csWindowCreate;
Poznámky
Zajišťuje synchronizovaný přístup k informacím třídy okna a statickým datům používaným při vytváření okna.
CComModule::m_hInst
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HINSTANCE m_hInst;
Poznámky
Obsahuje popisovač instance modulu.
Init metoda nastaví m_hInst
na popisovač předaný DLLMain
nebo WinMain
.
CComModule::m_hInstResource
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HINSTANCE m_hInstResource;
Poznámky
Ve výchozím nastavení obsahuje popisovač instance modulu.
Init metoda nastaví m_hInstResource
na popisovač předaný DLLMain
nebo WinMain
. U prostředku můžete explicitně nastavit m_hInstResource
popisovač.
Metoda GetResourceInstance vrátí popisovač uložený v m_hInstResource
.
CComModule::m_hInstTypeLib
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HINSTANCE m_hInstTypeLib;
Poznámky
Ve výchozím nastavení obsahuje popisovač instance modulu.
Init metoda nastaví m_hInstTypeLib
na popisovač předaný DLLMain
nebo WinMain
. Pro knihovnu typů můžete explicitně nastavit m_hInstTypeLib
popisovač.
Metoda GetTypeLibInstance vrátí popisovač uložený v m_hInstTypeLib
.
CComModule::m_pObjMap
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
_ATL_OBJMAP_ENTRY* m_pObjMap;
Poznámky
Odkazuje na mapu objektu spravovanou instancí modulu.
CComModule::RegisterClassHelper
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
ATL_DEPRECATED HRESULT RegisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags);
Parametry
clsid
[v] CLSID objektu, který se má zaregistrovat.
lpszProgID
[v] Identifikátor ProgID přidružený k objektu.
lpszVerIndProgID
[v] Identifikátor ProgID nezávislý na verzi přidružený k objektu.
nDescID
[v] Identifikátor prostředku řetězce pro popis objektu.
dwFlags
[v] Určuje model threadingu, který se má zadat do registru. Možné hodnoty jsou THREADFLAGS_APARTMENT, THREADFLAGS_BOTH nebo AUTPRXFLAG.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Zadá standardní registraci třídy objektu v systémovém registru.
Metoda UpdateRegistryClass volá RegisterClassHelper
.
CComModule::RegisterClassObjects
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parametry
dwClsContext
[v] Určuje kontext, ve kterém má být objekt třídy spuštěn. Možné hodnoty jsou CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER nebo CLSCTX_LOCAL_SERVER. Popis těchto hodnot najdete v tématu CLSCTX v sadě Windows SDK.
dwFlags
[v] Určuje typy připojení k objektu třídy. Možné hodnoty jsou REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE nebo REGCLS_MULTI_SEPARATE. Popis těchto hodnot najdete v tématu REGCLS v sadě Windows SDK.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Zaregistruje objekt třídy EXE v OLE, aby se k němu mohly připojit jiné aplikace. Tato metoda je k dispozici pouze pro exes.
CComModule::RegisterServer
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HRESULT RegisterServer(
BOOL bRegTypeLib = FALSE,
const CLSID* pCLSID = NULL) throw();
Parametry
bRegTypeLib
[v] Určuje, zda bude knihovna typů zaregistrována. Výchozí hodnota je FALSE.
pCLSID
[v] Odkazuje na CLSID objektu, který se má zaregistrovat. Pokud hodnota NULL (výchozí hodnota), budou všechny objekty v mapě objektu registrovány.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
V závislosti na parametru pCLSID aktualizuje systémový registr pro jeden objekt třídy nebo pro všechny objekty v mapě objektu.
Pokud je hodnota bRegTypeLib true, aktualizují se také informace o knihovně typů.
Informace o tom, jak přidat položku do mapy objektu, najdete v OBJECT_ENTRY_AUTO .
RegisterServer
bude volána automaticky DLLRegisterServer
pro knihovnu DLL nebo WinMain
pro exe spuštění s možností příkazového /RegServer
řádku.
CComModule::RegisterTypeLib
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();
Parametry
lpszIndex
[v] Řetězec ve formátu "\\N"
, kde N
je celočíselná index prostředku TYPELIB.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Přidá informace o knihovně typů do systémového registru.
Pokud instance modulu obsahuje více knihoven typů, použijte druhou verzi této metody k určení knihovny typů, která se má použít.
CComModule::RevokeClassObjects
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HRESULT RevokeClassObjects() throw();
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Odebere objekt třídy. Tato metoda je k dispozici pouze pro exes.
CComModule::Term
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
void Term() throw();
Poznámky
Uvolní všechny datové členy.
CComModule::UnregisterClassHelper
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
ATL_DEPRECATED HRESULT UnregisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID);
Parametry
clsid
[v] CLSID objektu, který se má zrušit registrace.
lpszProgID
[v] Identifikátor ProgID přidružený k objektu.
lpszVerIndProgID
[v] Identifikátor ProgID nezávislý na verzi přidružený k objektu.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Odebere ze systémového registru standardní třídu objektu.
Metoda UpdateRegistryClass volá UnregisterClassHelper
.
CComModule::UnregisterServer
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();
Parametry
bUnRegTypeLib
Pokud je pravda, knihovna typů je také zrušena registrace.
pCLSID
Odkazuje na CLSID objektu, který se má zrušit registrace. Pokud hodnota NULL (výchozí hodnota), zruší se registrace všech objektů v mapě objektu.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
V závislosti na parametru pCLSID zruší registraci objektu jedné třídy nebo všech objektů v mapě objektu.
UnregisterServer
bude volána automaticky DLLUnregisterServer
pro knihovnu DLL nebo WinMain
pro exe spuštění s možností příkazového /UnregServer
řádku.
Informace o tom, jak přidat položku do mapy objektu, najdete v OBJECT_ENTRY_AUTO .
CComModule::UpdateRegistryClass
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
ATL_DEPRECATED HRESULT UpdateRegistryClass(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags,
BOOL bRegister);
ATL_DEPRECATED HRESULT UpdateRegistryClass(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
LPCTSTR szDesc,
DWORD dwFlags,
BOOL bRegister);
Parametry
clsid
CLSID objektu, který se má zaregistrovat nebo zrušit jeho registrace.
lpszProgID
Identifikátor ProgID přidružený k objektu.
lpszVerIndProgID
Identifikátor ProgID nezávislý na verzi přidružený k objektu.
nDescID
Identifikátor prostředku řetězce pro popis objektu.
szDesc
Řetězec obsahující popis objektu.
dwFlags
Určuje model threadingu, který se má zadat do registru. Možné hodnoty jsou THREADFLAGS_APARTMENT, THREADFLAGS_BOTH nebo AUTPRXFLAG.
bRegister
Určuje, zda má být objekt registrován.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Pokud bRegister je TRUE, tato metoda zadá standardní třídu objektu registrace v systémovém registru.
Pokud je bRegister FALSE, odebere registraci objektu.
V závislosti na hodnotě bRegister volá UpdateRegistryClass
buď RegisterClassHelper nebo UnregisterClassHelper.
Zadáním DECLARE_REGISTRY makra UpdateRegistryClass
se při zpracování mapy objektu automaticky vyvolá.
CComModule::UpdateRegistryFromResourceD
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
virtual HRESULT UpdateRegistryFromResourceD(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
virtual HRESULT UpdateRegistryFromResourceD(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw ();
Parametry
lpszRes
[v] Název prostředku.
nResID
[v] ID prostředku.
bRegister
[v] Určuje, zda má být objekt registrován.
pMapEntries
[v] Ukazatel na náhradní mapování ukládá hodnoty přidružené k nahraditelným parametrům skriptu. ATL automaticky používá %MODULE%
. Pokud chcete použít další nahraditelné parametry, podrobnosti najdete v poznámkách. V opačném případě použijte výchozí hodnotu NULL.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Spustí skript obsažený v prostředku určeném lpszRes nebo nResID.
Pokud bRegister je TRUE, tato metoda registruje objekt v systémovém registru; jinak zruší registraci objektu.
Zadáním DECLARE_REGISTRY_RESOURCE nebo DECLARE_REGISTRY_RESOURCEID makra UpdateRegistryFromResourceD
se při zpracování mapy objektu automaticky vyvolá.
Poznámka:
Pokud chcete nahradit náhradní hodnoty za běhu, nezadávejte DECLARE_REGISTRY_RESOURCE ani DECLARE_REGISTRY_RESOURCEID makro. Místo toho vytvořte pole _ATL_REGMAP_ENTRIES
struktur, kde každá položka obsahuje zástupný symbol proměnné spárovaný s hodnotou, která nahradí zástupný symbol za běhu. Potom zavolejte UpdateRegistryFromResourceD
a předejte pole pro parametr pMapEntries . Tím se do mapy pro nahrazení registrátora přidají všechny náhradní hodnoty ve _ATL_REGMAP_ENTRIES
strukturách.
Poznámka:
Pokud chcete staticky propojit komponentu REGISTRU ATL (registrátora), přečtěte si téma UpdateRegistryFromResourceS.
Další informace o nahraditelných parametrech a skriptování najdete v článku Komponenta registru ATL (registrátor).
CComModule::UpdateRegistryFromResourceS
Od verze ATL 7.0 CComModule
je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.
virtual HRESULT UpdateRegistryFromResourceS(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
virtual HRESULT UpdateRegistryFromResourceS(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
Parametry
lpszRes
[v] Název prostředku.
nResID
[v] ID prostředku.
bRegister
[v] Určuje, zda má být skript prostředku registrován.
pMapEntries
[v] Ukazatel na náhradní mapování ukládá hodnoty přidružené k nahraditelným parametrům skriptu. ATL automaticky používá %MODULE%
. Pokud chcete použít další nahraditelné parametry, podrobnosti najdete v poznámkách. V opačném případě použijte výchozí hodnotu NULL.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Podobně jako UpdateRegistryFromResourceD s výjimkou UpdateRegistryFromResourceS
vytvoření statického odkazu na komponentu REGISTRU ATL (registrátor).
UpdateRegistryFromResourceS
bude vyvolána automaticky při zpracování mapy objektu za předpokladu, že přidáte #define _ATL_STATIC_REGISTRY
do souboru pch.h (stdafx.h v sadě Visual Studio 2017 a starší).
Poznámka:
Pokud chcete nahradit náhradní hodnoty za běhu, nezadávejte DECLARE_REGISTRY_RESOURCE ani DECLARE_REGISTRY_RESOURCEID makro. Místo toho vytvořte pole _ATL_REGMAP_ENTRIES
struktur, kde každá položka obsahuje zástupný symbol proměnné spárovaný s hodnotou, která nahradí zástupný symbol za běhu. Potom zavolejte UpdateRegistryFromResourceS
a předejte pole pro parametr pMapEntries . Tím se do mapy pro nahrazení registrátora přidají všechny náhradní hodnoty ve _ATL_REGMAP_ENTRIES
strukturách.
Další informace o nahraditelných parametrech a skriptování najdete v článku Komponenta registru ATL (registrátor).