I know the usual cause for this issue is related to the platform that a component is compiled to and I have had the problem in the past. However this is a report from a single user and occurs any time he tries to open either a dialog to select a file or directory. I am not using any fancy components here just the standard one. The relevant lines in one of the stack traces are:
Retrieving the COM class factory for component with CLSID
{DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7} failed due to the following
error: 80040154. at
System.Windows.Forms.OpenFileDialog.CreateVistaDialog() at
System.Windows.Forms.FileDialog.RunDialogVista(IntPtr hWndOwner) at
System.Windows.Forms.FileDialog.RunDialog(IntPtr hWndOwner) at
System.Windows.Forms.CommonDialog.ShowDialog(IWin32Window owner) at
System.Windows.Forms.CommonDialog.ShowDialog() at
ScruffyDuck.AirportDesignEditor.MainForm.getOpenFileInfo(String
initialDirectory, String filter)
I searched my registry for this CLSID and came up with
%SystemRoot%\System32\comdlg32.dll
Which is no a surprise I suppose. I assume, since there are many other users out there who do not have this problem that is must relate to the users setup. I would appreciate any ideas on how to advise him in this case.
Many thanks
I’m just guessing now, since this is no programming question, so don’t -1 me if I didn’t help, just giving some ideas… 😛
Problem here is that the system can’t make COM object out of the COM class specified by that CLSID. This can happen for many reasons:
comdlg32.dllis not registered, try to register it withregsvr32 comdlg32.dll{DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7}. You can check that by navigating (or searching registry) to that key, right click on it, and by selectingPermissions...give SYSTEM account full control over it.comdlg32.dllis corrupted. This can happen if the spyware or some other malicious program tried to hook itself to the Open File or Browse Directory dialogs and so has modified the lib… in that case, you have to reinstall the lib… or windows. To check is the lib ok, make the MD5 hash of it, and compare with the MD5 hash of the lib on a working system. They should be identical.Well, hope I helped. 🙂