https://bugs.winehq.org/show_bug.cgi?id=51459
--- Comment #7 from Esme Povirk madewokherd@gmail.com --- I imported CreateObject from .NET Core. That needed Type.GetTypeForProgID, so I implemented that based on CLSIDFromProgID. Now it loads the type, but it still fails:
[000008a8: 0.00000 0] ENTER:c Microsoft.VisualBasic.CompilerServices.LateBinding:LateGet (object,System.Type,string,object[],string[],bool[])([System.Runtime.Remoting.Proxies.TransparentProxy:016061d0], 00000000, [STRING:027b1d18:SetUserCtrl], [System.Object[]:[0]016061e8], 00000000, 00000000) [000008a8:] EXCEPTION handling: System.NotImplementedException: The method or operation is not implemented.
So, seemingly what we need is for System.Type.InvokeMember to work for a runtime-callable wrapper. That means translating the call to IDispatch::Invoke.