When using the Merak Converter Utiltiy, I cannot get past the page that asks for the location of tool.exe. In my case, the OS is Windows Server 2003 x64, so the location is C:\Program Files (x86)\Merak\tool.exe. When selecting this location and hiting continue, the following exception occurs:
System.Runtime.InteropServices.COMException was unhandled
Message="Retrieving the COM class factory for component with CLSID {DA5FB50D-5C7B-44C8-869F-1418BF7FACFF} failed due to the following error: 80040154."
Source="mscorlib"
ErrorCode=-2147221164
StackTrace:
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at MerakConverter.ToolInterface.InitMerak(String path) in C:\Documents and Settings\Administrator\Desktop\MerakConverter\MerakConverter\ToolInterface.cs:line 43
at MerakConverter.WizardPages.wizImport.DoValidate() in C:\Documents and Settings\Administrator\Desktop\MerakConverter\MerakConverter\WizardPages\wizImport.cs:line 86
at MerakConverter.frmMain.MoveNext(Boolean validate, Boolean finish) in C:\Documents and Settings\Administrator\Desktop\MerakConverter\MerakConverter\frmMain.cs:line 147
at MerakConverter.frmMain.NextButton_Click(Object sender, EventArgs e) in C:\Documents and Settings\Administrator\Desktop\MerakConverter\MerakConverter\frmMain.cs:line 184
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at MerakConverter.Program.Main() in C:\Documents and Settings\Administrator\Desktop\MerakConverter\MerakConverter\Program.cs:line 41
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[ args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
I even installed Visual C# express on the server, and stepped through the source code. The error happens within this method within ToolInterface.cs:
ublic static bool InitMerak(string path)
{
MerakType = Type.GetTypeFromProgID("MerakCOM.APIObject");
Merak = Activator.CreateInstance(MerakType);
if (Merak == null)
throw new Exception("Unable to Activate MerakCOM.APIObject!");
object retVal = MerakType.InvokeMember("Init", System.Reflection.BindingFlags.InvokeMethod, null, Merak, new object[ { path });
return (bool)retVal;
}
I used regedit to try and find the CLSID with a value of {DA5FB50D-5C7B-44C8-869F-1418BF7FACFF} , but it didnt exist anywhere in HKCR. I checked for rogue copies of API.DLL in system 32, and found none. I also successfully re-registered api.dll from the merak directory, but that didnt do anything.
I even tried installing 3 different versions of Merak (8.9, 9.1, 9.2) but nothing has helped. What could be the problem here?