Megosztás a következőn keresztül:


COM-objektumok létrehozása Registration-Free

Az aktiválási környezetek lehetővé teszik a COM-objektumok használatát anélkül, hogy regisztrálniuk kellene őket. Ez lehetővé teszi az alkalmazás számára, hogy a beállításjegyzék adatai helyett több különböző funkcióval rendelkező összetevőt használjon a verziójuk alapján. Több összetevő is elérhetővé teheti ugyanazt a COM-objektumot ugyanazzal a GUID-azonosítóval, de a verziótól függően eltérő funkciókkal rendelkezik.

Amikor egy alkalmazás GUID-ot kér CLSIDFromProgID, a COM először az aktív aktiválási környezetben keresi meg a leképezést a progid és a CLSID között. Ha egy alkalmazás CoCreateInstance használ egy példány felületi mutatójának beszerzéséhez, a COM az aktív aktiválási környezetben keres, hogy megtudja, melyik DLL fogja üzemeltetni a CLSID-t. Ha az aktiválási környezet nem tartalmazza a szükséges információkat, a COM a szokásos módszerrel megkeresi az adatokat a beállításjegyzékben.

Vegye figyelembe, hogy mivel az aktiválási környezetek a szálankénti elrendezést követik, a COM továbbítja a létrehozási szál aktiválási környezetét a gazdagépszálra, és aktiválja azt, mielőtt meghívná a LoadLibrary vagy a DllGetClassObject a gazdagépszálon. Ez a funkció már megtalálható a Windowsban, az ügyfélkód nem szükséges a implementáláshoz.

A COM-osztályokat a üzemeltetett összetevők exportálhatják anélkül, hogy átmennek a beállításjegyzéken. Több összetevő is elérhetővé teheti ugyanazt a ProgID-t a különböző COM-objektumokhoz, és az üzemeltetési alkalmazásnak csak a megfelelő aktiválási környezetet kell megtalálnia, majd CLSIDFromProgID és CoCreateInstance használatával lekérheti az üzemeltetett objektum felületének mutatóit.