Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I tidigare versioner av COM var den primära mekanismen som användes för att skapa en objektinstans funktionen CoCreateInstance. Den här funktionen kapslar in processen för att skapa ett klassobjekt med hjälp av det för att skapa en ny instans och släppa klassobjektet. En annan funktion av den här typen är den mer specifika OleCreate, den OLE-sammansatta dokumenthjälpen som skapar ett klassobjekt och hämtar en pekare till ett begärt objekt.
För att underlätta skapandet av instanser i distribuerade system har COM infört fyra viktiga mekanismer för att skapa nya instanser:
- Klassmonikers och IClassActivator
 - CoCreateInstanceEx
 - CoGetInstanceFromFile
 - CoGetInstanceFromIStorage
 
Med en klassmoniker kan du identifiera klassen för ett objekt och används vanligtvis med en annan moniker, till exempel en filmoniker, för att ange objektets plats. Detta gör att du kan binda till ett objekt och ange den server som ska startas för objektet. Klassmonikers kan också bestå till höger om monikers som stöder bindning till IClassActivator-gränssnittet. Mer information finns i Monikers för klass.
CoCreateInstanceEx utökar CoCreateInstance för att göra det möjligt att skapa ett enda onitialiserat objekt som är associerat med det angivna CLSID:et på en angiven fjärrdator. I stället för att begära ett enda gränssnitt och hämta en enda pekare till gränssnittet CoCreateInstanceEx gör det dessutom möjligt att fråga efter flera gränssnitt och (om tillgängligt) ta emot pekare till dem i en enda tur och retur, vilket tillåter färre turer mellan datorer. Detta kan göra fjärrobjektinteraktion mycket effektivare. För att göra detta använder funktionen en matris med MULTI_QI strukturer.
Att skapa ett objekt via CoCreateInstanceEx kräver fortfarande att objektet initieras via ett anrop till något av initieringsgränssnitten (till exempel IPersistStorage::Load). Hjälpfunktionerna CoGetInstanceFromFile och CoGetInstanceFromIStorage kapsla in både instansgenereringskraften för CoCreateInstanceEx och initieringen, den förra från en fil och den senare från en lagring.
Relaterade ämnen