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
Elementy członkowskie
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 | Aktualizuje rejestr systemowy 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 _Module
wystąpienie CComModule
globalne lub klasę pochodną. Aby uzyskać więcej informacji na temat Kreatora projektu ATL, zobacz artykuł Tworzenie projektu ATL.
Oprócz CComModule
usł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
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_hInstTypeLib
pliku .
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).