Klasa CComModule

Od wersji ATL 7.0 jest CComModule przestarzała: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

class CComModule : public _ATL_MODULE

Członkowie

Metody publiczne

Nazwa/nazwisko opis
CComModule::GetClassObject Tworzy obiekt określonego identyfikatora CLSID. Tylko w przypadku bibliotek DLL.
CComModule::GetModuleInstance Zwraca wartość m_hInst.
CComModule::GetResourceInstance Zwraca wartość m_hInstResource.
CComModule::GetTypeLibInstance Zwraca wartość m_hInstTypeLib.
CComModule::Init Inicjuje składowe danych.
CComModule::RegisterClassHelper Wprowadza standardową rejestrację klasy obiektu w rejestrze systemowym.
CComModule::RegisterClassObjects Rejestruje obiekt klasy. Tylko w przypadku exEs.
CComModule::RegisterServer Aktualizacje rejestru systemowego dla każdego obiektu na mapie obiektów.
CComModule::RegisterTypeLib Rejestruje bibliotekę typów.
CComModule::RevokeClassObjects Odwołuje obiekt klasy. Tylko w przypadku exEs.
CComModule::Term Zwalnia członków danych.
CComModule::UnregisterClassHelper Usuwa rejestrację klasy standardowej obiektu z rejestru systemowego.
CComModule::UnregisterServer Wyrejestrowuje każdy obiekt na mapie obiektów.
CComModule::UpdateRegistryClass Rejestruje lub wyrejestrowuje rejestrację klasy standardowej obiektu.
CComModule::UpdateRegistryFromResourceD Uruchamia skrypt zawarty w określonym zasobie, aby zarejestrować lub wyrejestrować obiekt.
CComModule::UpdateRegistryFromResourceS Statyczne linki do składnika rejestru ATL. Uruchamia skrypt zawarty w określonym zasobie, aby zarejestrować lub wyrejestrować obiekt.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CComModule::m_csObjMap Zapewnia zsynchronizowany dostęp do informacji mapy obiektu.
CComModule::m_csTypeInfoHolder Zapewnia zsynchronizowany dostęp do informacji o bibliotece typów.
CComModule::m_csWindowCreate Zapewnia zsynchronizowany dostęp do informacji o klasie okien i danych statycznych używanych podczas tworzenia okna.
CComModule::m_hInst Zawiera dojście do wystąpienia modułu.
CComModule::m_hInstResource Domyślnie zawiera dojście do wystąpienia modułu.
CComModule::m_hInstTypeLib Domyślnie zawiera dojście do wystąpienia modułu.
CComModule::m_pObjMap Wskazuje mapę obiektu utrzymywaną przez wystąpienie modułu.

Uwagi

Uwaga

Ta klasa jest przestarzała, a kreatory generowania kodu ATL używają teraz klas pochodnych CAtlAutoThreadModule i CAtlModule. Aby uzyskać więcej informacji, zobacz Klasy modułów ATL. Poniższe informacje są używane z aplikacjami utworzonymi ze starszymi wersjami atl. CComModule jest nadal częścią atl dla możliwości wstecznych.

CComModule implementuje moduł serwera COM, umożliwiając klientowi dostęp do składników modułu. CComModule obsługuje zarówno moduły DLL (w procesie) jak i EXE (lokalne).

Wystąpienie CComModule używa mapy obiektów do obsługi zestawu definicji obiektów klasy. Ta mapa obiektów jest implementowana jako tablica _ATL_OBJMAP_ENTRY struktur i zawiera informacje dotyczące:

  • Wprowadzanie i usuwanie opisów obiektów w rejestrze systemowym.

  • Tworzenie wystąpień obiektów za pośrednictwem fabryki klas.

  • Ustanawianie komunikacji między klientem a obiektem głównym w składniku.

  • Wykonywanie zarządzania okresem istnienia obiektów klas.

Po uruchomieniu aplikacji ATL COM AppWizard kreator automatycznie generuje _Modulewystąpienie CComModule globalne lub klasę pochodną. Aby uzyskać więcej informacji na temat Kreatora projektu ATL, zobacz artykuł Tworzenie projektu ATL.

Oprócz CComModuleusługi ATL udostępnia moduł CComAutoThreadModule, który implementuje moduł modelu apartamentów dla usług EXE i Windows. Utwórz moduł na podstawie CComAutoThreadModule tego, kiedy chcesz utworzyć obiekty w wielu mieszkaniach.

Hierarchia dziedziczenia

_ATL_MODULE

Catlmodule

CAtlModuleT

CComModule

Wymagania

Nagłówek: atlbase.h

CComModule::GetClassObject

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HRESULT GetClassObject(
    REFCLSID rclsid,
    REFIID riid,
    LPVOID* ppv) throw();

Parametry

rclsid
[in] Identyfikator CLSID obiektu do utworzenia.

Riid
[in] Identyfikator IID żądanego interfejsu.

Ppv
[out] Wskaźnik do wskaźnika interfejsu zidentyfikowany przez riid. Jeśli obiekt nie obsługuje tego interfejsu, wartość ppv jest ustawiona na wartość NULL.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Tworzy obiekt określonego identyfikatora CLSID i pobiera wskaźnik interfejsu do tego obiektu.

GetClassObject jest dostępna tylko dla bibliotek DLL.

CComModule::GetModuleInstance

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HINSTANCE GetModuleInstance() throw();

Wartość zwracana

HINSTANCE identyfikujący ten moduł.

Uwagi

Zwraca element członkowski danych m_hInst .

CComModule::GetResourceInstance

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HINSTANCE GetResourceInstance() throw();

Wartość zwracana

An HINSTANCE.

Uwagi

Zwraca element członkowski danych m_hInstResource .

CComModule::GetTypeLibInstance

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HINSTANCE GetTypeLibInstance() const throw();

Wartość zwracana

An HINSTANCE.

Uwagi

Zwraca element członkowski danych m_hInstTypeLib .

CComModule::Init

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HRESULT Init(
    _ATL_OBJMAP_ENTRY* p,
    HINSTANCE h,
    const GUID* plibid = NULL) throw();

Parametry

p
[in] Wskaźnik do tablicy wpisów mapy obiektów.

h
[in] Funkcja HINSTANCE przekazana do DLLMain lub WinMain.

plibid
[in] Wskaźnik do LIBID biblioteki typów skojarzonej z projektem.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Inicjuje wszystkie składowe danych.

CComModule::m_csObjMap

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

CRITICAL_SECTION m_csObjMap;

Uwagi

Zapewnia zsynchronizowany dostęp do mapy obiektów.

CComModule::m_csTypeInfoHolder

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

CRITICAL_SECTION m_csTypeInfoHolder;

Uwagi

Zapewnia zsynchronizowany dostęp do biblioteki typów.

CComModule::m_csWindowCreate

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

CRITICAL_SECTION m_csWindowCreate;

Uwagi

Zapewnia zsynchronizowany dostęp do informacji o klasie okien i danych statycznych używanych podczas tworzenia okna.

CComModule::m_hInst

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HINSTANCE m_hInst;

Uwagi

Zawiera dojście do wystąpienia modułu.

Metoda Init ustawia m_hInst do dojścia przekazanego do DLLMain metody lub WinMain.

CComModule::m_hInstResource

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HINSTANCE m_hInstResource;

Uwagi

Domyślnie zawiera dojście do wystąpienia modułu.

Metoda Init ustawia m_hInstResource do dojścia przekazanego do DLLMain metody lub WinMain. Można jawnie ustawić m_hInstResource uchwyt na zasób.

Metoda GetResourceInstance zwraca uchwyt przechowywany w pliku m_hInstResource.

CComModule::m_hInstTypeLib

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HINSTANCE m_hInstTypeLib;

Uwagi

Domyślnie zawiera dojście do wystąpienia modułu.

Metoda Init ustawia m_hInstTypeLib do dojścia przekazanego do DLLMain metody lub WinMain. Można jawnie ustawić m_hInstTypeLib uchwyt na bibliotekę typów.

Metoda GetTypeLibInstance zwraca uchwyt przechowywany w m_hInstTypeLibpliku .

CComModule::m_pObjMap

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

_ATL_OBJMAP_ENTRY* m_pObjMap;

Uwagi

Wskazuje mapę obiektu utrzymywaną przez wystąpienie modułu.

CComModule::RegisterClassHelper

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

ATL_DEPRECATED HRESULT RegisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    UINT nDescID,
    DWORD dwFlags);

Parametry

Clsid
[in] Identyfikator CLSID obiektu do zarejestrowania.

lpszProgID
[in] Identyfikator ProgID skojarzony z obiektem.

lpszVerIndProgID
[in] Identyfikator ProgID niezależny od wersji skojarzony z obiektem.

nDescID
[in] Identyfikator zasobu ciągu dla opisu obiektu.

Dwflags
[in] Określa model wątków, który ma być wprowadzony w rejestrze. Możliwe wartości to THREADFLAGS_APARTMENT, THREADFLAGS_BOTH lub AUTPRXFLAG.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Wprowadza standardową rejestrację klasy obiektu w rejestrze systemowym.

Metoda UpdateRegistryClass wywołuje metodę RegisterClassHelper.

CComModule::RegisterClassObjects

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();

Parametry

dwClsContext
[in] Określa kontekst, w którym ma zostać uruchomiony obiekt klasy. Możliwe wartości to CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER lub CLSCTX_LOCAL_SERVER. Aby uzyskać opis tych wartości, zobacz CLSCTX w zestawie Windows SDK.

Dwflags
[in] Określa typy połączeń z obiektem klasy. Możliwe wartości to REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE lub REGCLS_MULTI_SEPARATE. Aby uzyskać opis tych wartości, zobacz REGCLS w zestawie Windows SDK.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Rejestruje obiekt klasy EXE w obiekcie OLE, aby inne aplikacje mogły się z nim łączyć. Ta metoda jest dostępna tylko dla exEs.

CComModule::RegisterServer

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HRESULT RegisterServer(
    BOOL bRegTypeLib = FALSE,
    const CLSID* pCLSID = NULL) throw();

Parametry

bRegTypeLib
[in] Wskazuje, czy biblioteka typów zostanie zarejestrowana. Wartość domyślna to FALSE.

PCLSID
[in] Wskazuje identyfikator CLSID obiektu do zarejestrowania. Jeśli wartość NULL (wartość domyślna), wszystkie obiekty na mapie obiektów zostaną zarejestrowane.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

W zależności od parametru pCLSID aktualizuje rejestr systemowy dla pojedynczego obiektu klasy lub wszystkich obiektów na mapie obiektów.

Jeśli parametr bRegTypeLib ma wartość TRUE, informacje o bibliotece typów również zostaną zaktualizowane.

Zobacz OBJECT_ENTRY_AUTO , aby uzyskać informacje na temat dodawania wpisu do mapy obiektów.

RegisterServer zostanie wywołana automatycznie przez DLLRegisterServer bibliotekę DLL lub WinMain przez polecenie w celu uruchomienia pliku EXE z opcją /RegServer wiersza polecenia.

CComModule::RegisterTypeLib

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();

Parametry

lpszIndex
[in] Ciąg w formacie "\\N", gdzie N jest indeksem całkowitym zasobu TYPELIB.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Dodaje informacje o bibliotece typów do rejestru systemowego.

Jeśli wystąpienie modułu zawiera wiele bibliotek typów, użyj drugiej wersji tej metody, aby określić, która biblioteka typów ma być używana.

CComModule::RevokeClassObjects

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HRESULT RevokeClassObjects() throw();

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Usuwa obiekt klasy. Ta metoda jest dostępna tylko dla exEs.

CComModule::Term

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

void Term() throw();

Uwagi

Zwalnia wszystkie elementy członkowskie danych.

CComModule::UnregisterClassHelper

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

ATL_DEPRECATED HRESULT UnregisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID);

Parametry

Clsid
[in] Identyfikator CLSID obiektu do wyrejestrowania.

lpszProgID
[in] Identyfikator ProgID skojarzony z obiektem.

lpszVerIndProgID
[in] Identyfikator ProgID niezależny od wersji skojarzony z obiektem.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Usuwa rejestrację klasy standardowej obiektu z rejestru systemowego.

Metoda UpdateRegistryClass wywołuje metodę UnregisterClassHelper.

CComModule::UnregisterServer

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();

Parametry

bUnRegTypeLib
Jeśli wartość TRUE, biblioteka typów jest również wyrejestrowana.

PCLSID
Wskazuje identyfikator CLSID obiektu do wyrejestrowania. Jeśli wartość NULL (wartość domyślna), wszystkie obiekty na mapie obiektów zostaną wyrejestrowane.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

W zależności od parametru pCLSID wyrejestrowywanie pojedynczego obiektu klasy lub wszystkich obiektów na mapie obiektów.

UnregisterServer zostanie wywołana automatycznie przez DLLUnregisterServer bibliotekę DLL lub WinMain przez polecenie w celu uruchomienia pliku EXE z opcją /UnregServer wiersza polecenia.

Zobacz OBJECT_ENTRY_AUTO , aby uzyskać informacje na temat dodawania wpisu do mapy obiektów.

CComModule::UpdateRegistryClass

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

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
Identyfikator CLSID obiektu do zarejestrowania lub wyrejestrowania.

lpszProgID
Identyfikator ProgID skojarzony z obiektem.

lpszVerIndProgID
Identyfikator ProgID niezależny od wersji skojarzony z obiektem.

nDescID
Identyfikator zasobu ciągu dla opisu obiektu.

szDesc
Ciąg zawierający opis obiektu.

Dwflags
Określa model wątków, który ma być wprowadzony w rejestrze. Możliwe wartości to THREADFLAGS_APARTMENT, THREADFLAGS_BOTH lub AUTPRXFLAG.

Bregister
Wskazuje, czy obiekt ma być zarejestrowany.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Jeśli wartość bRegister ma wartość TRUE, ta metoda wprowadza standardową rejestrację klas obiektu w rejestrze systemowym.

Jeśli element bRegister ma wartość FALSE, usuwa rejestrację obiektu.

W zależności od wartości elementu bRegisterUpdateRegistryClass wywołuje metodę RegisterClassHelper lub UnregisterClassHelper.

Określając makro DECLARE_REGISTRY, UpdateRegistryClass zostanie wywołane automatycznie po przetworzeniu mapy obiektów.

CComModule::UpdateRegistryFromResourceD

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

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
[in] Nazwa zasobu.

nResID
[in] Identyfikator zasobu.

Bregister
[in] Wskazuje, czy obiekt ma być zarejestrowany.

pMapEntries
[in] Wskaźnik do mapy zastępczej przechowujące wartości skojarzone z parametrami, które można zastąpić skryptu. Usługa ATL automatycznie używa polecenia %MODULE%. Aby użyć dodatkowych parametrów możliwych do zastąpienia, zobacz uwagi, aby uzyskać szczegółowe informacje. W przeciwnym razie użyj wartości domyślnej NULL.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Uruchamia skrypt zawarty w zasobie określonym przez lpszRes lub nResID.

Jeśli wartość bRegister ma wartość TRUE, ta metoda rejestruje obiekt w rejestrze systemowym; w przeciwnym razie wyrejestruje obiekt.

Określając makro DECLARE_REGISTRY_RESOURCE lub DECLARE_REGISTRY_RESOURCEID, UpdateRegistryFromResourceD zostanie wywołane automatycznie po przetworzeniu mapy obiektów.

Uwaga

Aby zastąpić wartości zastępcze w czasie wykonywania, nie należy określać makra DECLARE_REGISTRY_RESOURCE ani DECLARE_REGISTRY_RESOURCEID. Zamiast tego utwórz tablicę _ATL_REGMAP_ENTRIES struktur, w której każdy wpis zawiera symbol zastępczy zmiennej sparowany z wartością w celu zastąpienia symbolu zastępczego w czasie wykonywania. Następnie wywołaj metodę UpdateRegistryFromResourceD, przekazując tablicę dla parametru pMapEntries . Spowoduje to dodanie wszystkich wartości zastępczych w _ATL_REGMAP_ENTRIES strukturach do mapy zastępczej Rejestratora.

Uwaga

Aby statycznie połączyć się ze składnikiem rejestru ATL (Rejestrator), zobacz UpdateRegistryFromResourceS.

Aby uzyskać więcej informacji na temat zastępowalnych parametrów i skryptów, zobacz artykuł Składnik rejestru ATL (Rejestrator).

CComModule::UpdateRegistryFromResourceS

Od wersji ATL 7.0 jest CComModule przestarzałe: zobacz Klasy modułów ATL, aby uzyskać więcej szczegółów.

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
[in] Nazwa zasobu.

nResID
[in] Identyfikator zasobu.

Bregister
[in] Wskazuje, czy skrypt zasobu powinien zostać zarejestrowany.

pMapEntries
[in] Wskaźnik do mapy zastępczej przechowujące wartości skojarzone z parametrami, które można zastąpić skryptu. Usługa ATL automatycznie używa polecenia %MODULE%. Aby użyć dodatkowych parametrów możliwych do zastąpienia, zobacz uwagi, aby uzyskać szczegółowe informacje. W przeciwnym razie użyj wartości domyślnej NULL.

Wartość zwracana

Standardowa wartość HRESULT.

Uwagi

Podobnie jak UpdateRegistryFromResourceD z wyjątkiem UpdateRegistryFromResourceS tworzy statyczny link do składnika rejestru ATL (Rejestrator).

UpdateRegistryFromResourceS zostanie wywołany automatycznie po przetworzeniu mapy obiektów, pod warunkiem dodania #define _ATL_STATIC_REGISTRY do pliku pch.h (stdafx.h w programie Visual Studio 2017 i starszych wersjach).

Uwaga

Aby zastąpić wartości zastępcze w czasie wykonywania, nie należy określać makra DECLARE_REGISTRY_RESOURCE ani DECLARE_REGISTRY_RESOURCEID . Zamiast tego utwórz tablicę _ATL_REGMAP_ENTRIES struktur, w której każdy wpis zawiera symbol zastępczy zmiennej sparowany z wartością w celu zastąpienia symbolu zastępczego w czasie wykonywania. Następnie wywołaj metodę UpdateRegistryFromResourceS, przekazując tablicę dla parametru pMapEntries . Spowoduje to dodanie wszystkich wartości zastępczych w _ATL_REGMAP_ENTRIES strukturach do mapy zastępczej Rejestratora.

Aby uzyskać więcej informacji na temat zastępowalnych parametrów i skryptów, zobacz artykuł Składnik rejestru ATL (Rejestrator).

Zobacz też

Omówienie klasy