Rémi Bernon (@rbernon) commented about dlls/wintypes/main.c:
HRESULT WINAPI DllGetActivationFactory(HSTRING classid, IActivationFactory **factory) {
- const WCHAR *name;
- TRACE("classid %s, factory %p.\n", debugstr_hstring(classid), factory);
- name = WindowsGetStringRawBuffer(classid, NULL);
- if (!wcscmp(name, RuntimeClass_Windows_Foundation_Collections_PropertySet))
*factory = &wintypes.IPropertySet_IActivationFactory_iface;
- else *factory = &wintypes.IActivationFactory_iface;
Fwiw I don't think we should mix factories like that, unless proved otherwise each class has its own static factory. It would be better to keep them separate, using separate sources as in most of the other places we have WinRT classes implemented now. Keeping consistent patterns will make future refactor/code factorization much easier.