Rozumiem, że CoCreateInstance znajduje serwer COM dla danego ID klasy, tworzy instancję obiektu dla tego identyfikatora i pobiera interfejs z tej instancji obiektu. CoGetClassObject() znajduje serwer COM dla identyfikatora klasy, tworzy instancję fabryki klas dla tego id klasy i pobiera ten fabryczny interfejs klasy, który może być następnie użyty do tworzenia rzeczywistych obiektów.Jaka jest różnica między CoCreateInstance() i CoGetClassObject() podczas tworzenia obiektów na tym samym komputerze?
Jak inaczej te funkcje różnią się, gdy są używane do tworzenia obiektów na tym samym komputerze? Czy działają one w ten sam sposób, ale powodują, że inny kod jest wywoływany na dokładnie tym samym serwerze COM?
Przeczytałem, że, ale nie widzę żadnych korzyści poza tym, że CoGetClassObject() jest potencjalnie szybszy, a obiekt fabryki klasy może utrzymywać stan pomiędzy wywołaniami CreateInstance(). – sharptooth
@ Sharppt, to prawie jist tego. Niezbyt wiele korzyści, dlatego rzadko go używasz. – JaredPar
Czy jest szansa, że istnieją inne subtelne różnice, takie jak kolejność wyszukiwania zależności? Czy te funkcje działają tak samo, ale po prostu wywołuj inny kod na tym samym serwerze COM? – sharptooth