所以我最终通过使用@SLaks 的一部分答案和我自己的答案来解决这个问题。基本上,我使用了我的父界面并从中生成了一个具有我想要的 GUID 的子界面。
AssemblyName aName = new AssemblyName("MulticasterAssembly");
AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly(aName, AssemblyBuilderAccess.Run);
ModuleBuilder mb = ab.DefineDynamicModule("MulticasterModule");
TypeBuilder tb = mb.DefineType("MainOCXMultiCaster", TypeAttributes.Public);
tb.SetParent(typeof(AxUICtrlEventMulticaster));
ConstructorInfo cInfo = typeof(GuidAttribute).GetConstructor(new Type[] {typeof(string)});
CustomAttributeBuilder cab = new CustomAttributeBuilder(cInfo, new object[] { mOCXType.GUID.ToString() });
tb.SetCustomAttribute(cab);
ConstructorBuilder cb = tb.DefineDefaultConstructor(MethodAttributes.Public);
Type childEventMulticaster = tb.CreateType();
object o = Activator.CreateInstance(childEventMulticaster);
childEventMulticaster.InvokeMember("host", BindingFlags.SetProperty, null, o, new object[] { this });