COM Class factory error 80040154 when opening the Open Directory dialog box

I know that the usual reason for this problem is related to the platform the component is compiled against, and I have had the problem in the past. However, this is a report from one user and comes up anytime he tries to open a dialog to select a file or directory. I am not using any fancy components here, just the standard ones. The corresponding lines in one of the stack traces:

Getting the COM class factory for the component with CLSID {DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7} failed due to the following error: 80040154. at System.Windows.Forms.OpenFileDialog.CreateVistaDialog () in System.Windows.Forms.FileDialog .RunDialogVista (IntPtr hWndOwner) at System.Windows.Forms.FileDialog.RunDialog (IntPtr hWndOwner) at System.Windows.Forms.CommonDialog.ShowDialog (owned by IWin32Wnd) at System.Windows.Forms.CommonDialog.Signer at System.Windows.Forms.CommonDialog.Sign .MainForm.getOpenFileInfo (String initialDirectory, String filter)

I searched my registry for this CLSID and came up with

% SystemRoot% \ System32 \ comdlg32.dll

Not surprisingly, I suppose. I guess since there are many other users who do not have this issue, which should be related to user setup. I would appreciate any ideas on how to advise him in this case.

Many thanks

+1


source to share


1 answer


I'm just guessing since this is not a programming question, so no need if I don't help, just give some ideas ...: P

The problem is that the system cannot render the COM object outside the COM class specified by this CLSID. This can happen for many reasons:



  • The library is comdlg32.dll

    not registered, try registering it withregsvr32 comdlg32.dll

  • System accont does not have full control (permission) over the registry key that contains the CLSID {DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7}

    . You can verify this by navigating (or searching the registry) to that key, right-clicking on it and choosing Permissions...

    to provide the full SYSTEM account.
  • Try the above for an administrator account.
  • The library is comdlg32.dll

    damaged. This can happen if spyware or some other malware tried to connect to the Open File or Browse Directory dialogs and therefore changed the lib ... in which case you need to reinstall lib ... or windows. To check if the lib is ok, make an MD5 hash and compare with the MD5 lib hash on the production system. They must be identical.

Well I hope I helped. :)

+3


source







All Articles