public void UnregisterInProcServer(Type t, RegistryView registryView = RegistryView.Default) { var reg = ComClrInfoFactory.CreateClass(t); #if NET35 throw new NotImplementedException("Need to backport 4.0 methods"); #else var root = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, registryView); var classes = root.CreateSubKey(CLASSES); unregisterInProcServer(classes, reg); #endif }
public void UnregisterTypeLib(System.Reflection.Assembly typeLib, RegistryView registryView = RegistryView.Default) { var reg = ComClrInfoFactory.CreateTypeLib(typeLib); #if NET35 throw new NotImplementedException("Need to backport 4.0 methods"); #else var root = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, registryView); var classes = root.CreateSubKey(CLASSES); unregisterTypeLib(classes, reg); #endif }
public void RegisterInterface(Type type, RegistryView registryView) { var reg = ComClrInfoFactory.CreateInterface(type); #if NET35 throw new NotImplementedException("Need to backport 4.0 methods"); #else var root = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, registryView); var classes = root.CreateSubKey(CLASSES); registerInterface(classes, reg); #endif }
public void RegisterInterfaces(IEnumerable <Type> types, RegistryView registryView) { var regs = new List <ComInterfaceInfo>(); foreach (var type in types) { regs.Add(ComClrInfoFactory.CreateInterface(type)); } #if NET35 throw new NotImplementedException("Need to backport 4.0 methods"); #else var root = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, registryView); var classes = root.CreateSubKey(CLASSES); registerInterfaces(classes, regs); #endif }
public TypeLib(System.Reflection.Assembly asm) { // Only 2 numbers sypported by COM instead of 4 in CLR var ver = asm.GetName().Version; Version = new Version(ver.Major, ver.Minor); var attrs = CustomAttributeData.GetCustomAttributes(asm); var attr = ComClrInfoFactory.getCustomAttribute(attrs, typeof(GuidAttribute)); if (attr == null) { throw new ArgumentException("Assembly must have GuidAttribute defined", "asm"); } var guidValue = attr.ConstructorArguments.First().ToString();//raw, as is directly in code Guid = new Guid(guidValue.Remove(guidValue.Length - 1, 1).Remove(0, 1)); }