Avoiding SubInACL.msi

December 28, 2010

Problem: An app I wrote (some time ago) refuses to run on Windows 7. MFC’s CDialog::DoModal() returns immediately. The web suggests it’s using an unregistered control. Sure enough, the registration for a control fails with:

The module “msflxgrd.ocx” was loaded but the call to DllRegisterServer failed with error code 0x8002801c.

One person says get and run SubInACL.msi, and use it to make sweeping recursive permissions changes to the registry and system directories.

Yikes! Really?!?!?

This much-less-intrusive solution worked for me:

Right-click on C:WINDOWSSystem32cmd.exe, and choose “Run as Adminisstrator”. From that command-line, run the registration:

regsvr32 msflxgrd.ocx

The registration now passes, and my program now comes up (not needing to be run as administrator).

Note that we thought the account we were running under had full Administrator privileges, but still failed to run this app as such. (It didn’t ask for the password when running cmd as administrator.)