Sdílet prostřednictvím


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

Jméno 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 Aktualizace systémového registru 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

Jméno 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 _Moduleglobá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

_ATL_MODULE

CAtlModule

CAtlModuleT

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.

Vrácená 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();

Vrácená hodnota

HINSTANCE identifikující tento modul.

Poznámky

Vrátí datový člen m_hInst.

CComModule::GetResourceInstance

Od verze ATL 7.0 CComModule je zastaralé: další podrobnosti najdete v tématu Třídy modulů ATL.

HINSTANCE GetResourceInstance() throw();

Vrácená 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();

Vrácená 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.

Vrácená 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

Identifikátor 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.

Vrácená 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.

Vrácená 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.

Vrácená 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.

Vrácená 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();

Vrácená 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

Identifikátor 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.

Vrácená 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.

Vrácená 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

Identifikátor 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.

Vrácená 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á UpdateRegistryClassbuď 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.

Vrácená 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 UpdateRegistryFromResourceDa 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.

Vrácená 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 UpdateRegistryFromResourceSa 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).

Viz také

Přehled třídy