Подскажите, пожалуйста, начинающему CОМ-щику, каковы объективные причины введения фабрик объектов в модель СОМ?
Т.е., почему бы не воспользоваться экспортной функцией, что-то типа
DllCreateInstance(CLSID /*какой кокласс*/, IID /*какой интерфейс*/, void** /*адрес указателя на интерфейс*/),
которая будет вызываться функцией CoCreateInstance, как вызывается DllGetClassObject функцией CoGetClassObject?
Разве не достаточно инкапсуляции в разделении интерфейсов и реализаций?