The subject error may be caused by a missing or corrupt registry entry. Use Regedt32 to navigate to:
Add Value with a blank name, as the default type REG_SZ, and set the string value to oleaut32.dll.
Add Value name ThreadingModel, as a type REG_SZ, and set the string value to Both.
NOTE: When you look at a blank value name in Regedt32, it appears in the right hand pane at <No Name>.