public void DLLRegisterServer(int regMode)
{
//register dll
//same as:
//post build event: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm.exe $(TargetPath) /codebase
RegistrationServices regAsm = new RegistrationServices();
bool bResult = regAsm.RegisterAssembly(
ComponentConfig.typeToRegister.Assembly,
AssemblyRegistrationFlags.SetCodeBase);
GME.Util.MgaRegistrar reg = new GME.Util.MgaRegistrar();
if ((int)GME.MGA.Core.GMEInterfaceVersion_enum.GMEInterfaceVersion_Current != (int)((GME.MGA.Core.IGMEVersionInfo)reg).version)
{
throw new Exception("MgaInterfaceVersion mismatch: this assembly is using " +
(int)GME.MGA.Core.GMEInterfaceVersion_enum.GMEInterfaceVersion_Current +
" but the GME interface version is " + (int)((GME.MGA.Core.IGMEVersionInfo)reg).version +
"\n\nPlease install a compatible GME version or update the interop dlls.");
}
reg.RegisterComponent(
regAsm.GetProgIdForType(ComponentConfig.typeToRegister),
GME.MGA.componenttype_enum.COMPONENTTYPE_INTERPRETER,
ComponentConfig.componentName,
regacc_translate(regMode));
reg.set_ComponentExtraInfo(regacc_translate(regMode), regAsm.GetProgIdForType(ComponentConfig.typeToRegister), "Icon", ComponentConfig.iconId);
if (!ComponentConfig.paradigmName.Equals("*"))
{
reg.Associate(regAsm.GetProgIdForType(ComponentConfig.typeToRegister), ComponentConfig.paradigmName, (GME.Util.regaccessmode_enum)regMode);
}
}