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


Példánylétrehozás segédfüggvényei

A COM korábbi kiadásaiban az objektumpéldány létrehozásához használt elsődleges mechanizmus a CoCreateInstance függvény volt. Ez a függvény egy osztályobjektum létrehozásának folyamatát foglalja magában, ezzel létrehoz egy új példányt, és felszabadítja az osztályobjektumot. Egy másik ilyen típusú függvény az OleCreatepontosabb, az OLE összetett dokumentum segédje, amely létrehoz egy osztályobjektumot, és lekéri a kívánt objektumra mutató mutatót.

A példányok elosztott rendszereken történő létrehozásának zökkenőmentessége érdekében a COM négy fontos új példány-létrehozási mechanizmust vezetett be:

Az osztály-moniker lehetővé teszi egy objektum osztályának azonosítását, és általában egy másik monikerrel, például egy fájl monikerrel használják az objektum helyének jelzésére. Ez lehetővé teszi, hogy egy objektumhoz kapcsolódjon, és megadhatja az adott objektumhoz elindítandó kiszolgálót. Az osztály monikerei az IClassActivator interfészhez való kötést támogató monikerek jobb oldalán is állhatnak. További információ: Monikers osztály.

CoCreateInstanceEx kibővíti CoCreateInstance, hogy egy adott távoli gépen egyetlen, az adott CLSID-hez társított nem inicializált objektumot hozzon létre. Ezenkívül ahelyett, hogy egyetlen interfészt kérnél, és egyetlen mutatót szereznél be erre a felületre, CoCreateInstanceEx lehetővé teszi több interfész lekérdezését, és (ha elérhető) egyetlen oda-vissza út során fogadhatja a mutatókat, így kevesebb ciklikus utazást tesz lehetővé a gépek között. Ez sokkal hatékonyabbá teheti a távoli objektumok közötti interakciót. Ehhez a függvény MULTI_QI struktúrák tömbét használja.

Az objektum CoCreateInstanceEx használatával történő létrehozásához továbbra is inicializálni kell az objektumot az inicializálási felületek egyikének hívásával (például IPersistStorage::Load). A segédfüggvények CoGetInstanceFromFile és CoGetInstanceFromIStorageCoCreateInstanceEx példánylétrehozási erejét és az inicializálást, az előbbit egy fájlból, az utóbbit pedig egy tárolóból.

Objektum létrehozása osztályobjektum-