Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Az aktív sablontár (ATL) továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Ezek a makrók objektumtérképeket és bejegyzéseket határoznak meg.
| Név | Description |
|---|---|
| DECLARE_OBJECT_DESCRIPTION | Lehetővé teszi egy osztályobjektum szöveges leírásának megadását, amelyet a rendszer beír az objektumtérképbe. |
| OBJECT_ENTRY_AUTO | Beír egy ATL-objektumot az objektumtérképbe, frissíti a beállításjegyzéket, és létrehozza az objektum egy példányát. |
| OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO | Lehetővé teszi annak megadását, hogy az objektum regisztrálva és inicializálva legyen, de külsőleg ne legyen hamvazható.CoCreateInstance |
Requirements
Fejléc: atlcom.h
DECLARE_OBJECT_DESCRIPTION
Lehetővé teszi az osztályobjektum szöveges leírásának megadását.
DECLARE_OBJECT_DESCRIPTION( x )
Paraméterek
x
[in] Az osztályobjektum leírása.
Megjegyzések
Az ATL ezt a leírást a OBJECT_ENTRY_AUTO makrón keresztül írja be az objektumtérképbe.
DECLARE_OBJECT_DESCRIPTION implementál egy GetObjectDescription függvényt, amellyel felülbírálhatja a CComCoClass::GetObjectDescription metódust .
A GetObjectDescription függvényt a következő hívja meg IComponentRegistrar::GetComponents: .
IComponentRegistrar Egy Automation-felület, amellyel regisztrálhatja és megszüntetheti az egyes összetevők regisztrálását egy DLL-ben. Amikor létrehoz egy összetevőregisztráló objektumot az ATL-projektvarázslóval, a varázsló automatikusan implementálja a IComponentRegistrar felületet.
IComponentRegistrar jellemzően a Microsoft Transaction Server használja.
Az ATL-projektvarázslóról további információt az ATL-projekt létrehozása című cikkben talál.
Example
class ATL_NO_VTABLE CMyDescribedClass :
public CComObjectRoot,
public CComCoClass<CMyDescribedClass, &CLSID_MyDescribedClass>
{
public:
CMyDescribedClass()
{
}
// Override CComCoClass::GetObjectDescription
DECLARE_OBJECT_DESCRIPTION("My Described Object 1.0")
};
OBJECT_ENTRY_AUTO
Beír egy ATL-objektumot az objektumtérképbe, frissíti a beállításjegyzéket, és létrehozza az objektum egy példányát.
OBJECT_ENTRY_AUTO( clsid, class )
Paraméterek
clsid
[in] A C++ osztály által implementált COM-osztály CLSID azonosítója.
osztály
[in] A clsid által képviselt COM-osztályt implementáló C++ osztály neve.
Megjegyzések
Az objektumbejegyzési makrók globális hatókörbe kerülnek a projektben, hogy támogatást nyújtsanak egy osztály regisztrálásához, inicializálásához és létrehozásához.
OBJECT_ENTRY_AUTO az objektum létrehozó osztályának és osztály-gyári létrehozó osztályfüggvényeinek CreateInstance függvénymutatóit adja meg az automatikusan létrehozott ATL-objektumtérképen. A CAtlComModule::RegisterServer meghívásakor frissíti a rendszerregisztrációs adatbázist az objektumtérkép minden objektumához.
Az alábbi táblázat azt ismerteti, hogy az objektumtérképhez hozzáadott információk hogyan származnak a makró második paramétereként megadott osztályból.
| Információk a következőhöz: | Forrás: |
|---|---|
| COM-regisztráció | Beállításjegyzék-makrók |
| Osztálygyár létrehozása | Class Factory-makrók |
| Példány létrehozása | Összesítő makrók |
| Összetevőkategória-regisztráció | Kategóriamakrók |
| Osztályszintű inicializálás és törlés | ObjectMain |
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO
Lehetővé teszi annak megadását, hogy az objektum regisztrálva és inicializálva legyen, de külsőleg ne legyen hamvazható.CoCreateInstance
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )
Paraméterek
clsid
[in] A C++ osztály által implementált COM-osztály CLSID azonosítója.
osztály
[in] A clsid által képviselt COM-osztályt implementáló C++ osztály neve.
Megjegyzések
Az objektumbejegyzési makrók globális hatókörbe kerülnek a projektben, hogy támogatást nyújtsanak egy osztály regisztrálásához, inicializálásához és létrehozásához.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO megadhatja, hogy egy objektum regisztrálva és inicializálva legyen (további információért tekintse meg a OBJECT_ENTRY_AUTO ), de nem lehet creatable keresztül CoCreateInstance.