Udostępnij za pośrednictwem


Klasa CAtlDllModuleT

Ta klasa reprezentuje moduł biblioteki DLL.

Składnia

template <class T>
class ATL_NO_VTABLE CAtlDllModuleT : public CAtlModuleT<T>

Parametry

T
Klasa pochodzi z klasy CAtlDllModuleT.

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CAtlDllModuleT::CAtlDllModuleT Konstruktor.
CAtlDllModuleT::~CAtlDllModuleT Destruktora.

Metody publiczne

Nazwa/nazwisko opis
CAtlDllModuleT::D llCanUnloadNow Sprawdza, czy biblioteka DLL może zostać zwolniona.
CAtlDllModuleT::D llGetClassObject Zwraca fabrykę klas.
CAtlDllModuleT::D llMain Opcjonalny punkt wejścia do biblioteki linków dynamicznych (DLL).
CAtlDllModuleT::D llRegisterServer Dodaje wpisy do rejestru systemowego dla obiektów w dll.
CAtlDllModuleT::D llUnregisterServer Usuwa wpisy w rejestrze systemowym dla obiektów w dll.
CAtlDllModuleT::GetClassObject Zwraca fabrykę klas. Wywoływane przez dllGetClassObject.

Uwagi

CAtlDllModuleT reprezentuje moduł biblioteki dll (dynamic-link library) i udostępnia funkcje używane przez wszystkie projekty DLL. Ta specjalizacja klasy CAtlModuleT obejmuje obsługę rejestracji.

Aby uzyskać więcej informacji na temat modułów w atl, zobacz ATL Module Classes (Klasy modułów ATL).

Hierarchia dziedziczenia

_ATL_MODULE

CAtlModule

CAtlModuleT

CAtlDllModuleT

Wymagania

Nagłówek: atlbase.h

CAtlDllModuleT::CAtlDllModuleT

Konstruktor.

CAtlDllModuleT() throw();

CAtlDllModuleT::~CAtlDllModuleT

Destruktora.

~CAtlDllModuleT() throw();

CAtlDllModuleT::D llCanUnloadNow

Sprawdza, czy biblioteka DLL może zostać zwolniona.

HRESULT DllCanUnloadNow() throw();

Wartość zwracana

Zwraca S_OK, jeśli biblioteka DLL może zostać zwolniona lub S_FALSE, jeśli nie może.

CAtlDllModuleT::D llGetClassObject

Zwraca fabrykę klas.

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

Parametry

rclsid
Identyfikator CLSID obiektu do utworzenia.

riid
Identyfikator IID żądanego interfejsu.

ppv
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

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

CAtlDllModuleT::D llMain

Opcjonalny punkt wejścia do biblioteki linków dynamicznych (DLL).

BOOL WINAPI DllMain(DWORD dwReason, LPVOID /* lpReserved*/) throw();

Parametry

dwReason
Jeśli ustawiono wartość DLL_PROCESS_ATTACH, wywołania powiadomień DLL_THREAD_ATTACH i DLL_THREAD_DETACH są wyłączone.

lpReserved
Zarezerwowany.

Wartość zwracana

Zawsze zwraca wartość TRUE.

Uwagi

Wyłączenie DLL_THREAD_ATTACH i wywołań powiadomień DLL_THREAD_DETACH może być przydatną optymalizacją dla aplikacji wielowątków, które mają wiele bibliotek DLL, które często tworzą i usuwają wątki, i których biblioteki DLL nie wymagają tych powiadomień na poziomie wątku o załączniku/odłączeniu.

CAtlDllModuleT::D llRegisterServer

Dodaje wpisy do rejestru systemowego dla obiektów w dll.

HRESULT DllRegisterServer(BOOL bRegTypeLib = TRUE) throw();

Parametry

bRegTypeLib
Wartość TRUE, jeśli biblioteka typów ma zostać zarejestrowana. Wartość domyślna to TRUE.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

CAtlDllModuleT::D llUnregisterServer

Usuwa wpisy w rejestrze systemowym dla obiektów w dll.

HRESULT DllUnregisterServer(BOOL bUnRegTypeLib = TRUE) throw();

Parametry

bUnRegTypeLib
Wartość TRUE, jeśli biblioteka typów ma zostać usunięta z rejestru. Wartość domyślna to TRUE.

Wartość zwracana

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

CAtlDllModuleT::GetClassObject

Tworzy obiekt określonego identyfikatora CLSID.

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

Parametry

rclsid
Identyfikator CLSID obiektu do utworzenia.

riid
Identyfikator IID żądanego interfejsu.

ppv
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

Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.

Uwagi

Ta metoda jest wywoływana przez klasę CAtlDllModuleT::D llGetClassObject i jest uwzględniona w celu zapewnienia zgodności z poprzednimi wersjami.

Zobacz też

Klasa CAtlModuleT
Klasa CAtlExeModuleT
Omówienie klasy
Klasy modułów