BUG: Error 429 "ActiveX Component Can't Create Object" on NT
ID: Q185126
|
The information in this article applies to:
-
Microsoft Office 2000 Developer
-
Microsoft Visual Basic for Applications version 5.0
-
Microsoft Office 97 for Windows
IMPORTANT: This article contains information about editing the registry.
Before you edit the registry, make sure you understand how to restore it if
a problem occurs. For information about how to do this, view the "Restoring
the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help
topic in Regedt32.exe.
WARNING: Using Registry Editor incorrectly can cause serious problems that
may require you to reinstall your operating system. Microsoft cannot
guarantee that problems resulting from the incorrect use of Registry Editor
can be solved. Use Registry Editor at your own risk.
For information about how to edit the registry, view the "Changing Keys and
Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete
Information in the Registry" and "Edit Registry Data" Help topics in
Regedt32.exe. Note that you should back up the registry before you edit it.
If you are running Windows NT, you should also update your Emergency
Repair Disk (ERD).
SYMPTOMS
You receive the following error when attempting to automate either a
Microsoft Office application or an ActiveX server created with Visual
Basic:
Run-time error '429':
ActiveX component can't create object
This problem only occurs on computers running Microsoft Windows NT 4.0.
CAUSE
This problem can occur if the ActiveX server is installed to a long folder
path that may conflict with a similar path on the computer. Usually, the
problem occurs when the path of the ActiveX server contains spaces and
another path on the computer is the same, up to a space. For example,
suppose you have this problem when you try to automate a Microsoft Office
application. If you installed Microsoft Office to the default path:
C:\Program Files\Microsoft Office
and you also have a folder named C:\Program or C:\Program Files\Microsoft,
you might experience this problem. A conflicting folder can also appear on
a different drive.
RESOLUTION
Here are three resolutions:
- Reinstall the ActiveX server to a short folder path. For example, you can reinstall Microsoft Office to C:\Office97. To reinstall to a different
path, you should first uninstall the application before reinstalling.
-or-
- Uninstall any applications that are installed in the conflicting folder (for example, C:\Program), and then delete or rename this folder so that it no longer conflicts. After you rename or delete this folder, you might need to re-register or reinstall your ActiveX server application to ensure it is properly registered.
-or-
- Edit the LocalServer32 key in the Registry for the ActiveX server
application. The LocalServer32 key specifies the path to the ActiveX
server. Change the path from a long path name to a short path name.
To edit the registry, run the RegEdit.exe utility. The LocalServer32 key
for your ActiveX server will be located in the HKEY_CLASSES_ROOT\CLSID
section of the registry.
To locate the LocalServer32 key for your ActiveX server, choose Find from
the Edit menu and specify the file name of your ActiveX server (or search
on the ProgID). For example, to find the LocalServer32 key for Microsoft
Excel, search for "Excel.exe." You might need to press F3 to Find Next
until you see the LocalServer32 key. For the case of Microsoft Excel, the
LocalServer32 value might be:
C:\Program Files\Microsoft Office\Office\excel.exe /automation
Assuming that the short path is C:\Progra~1\Micros~1\Office, you can change
the LocalServer32 value to:
C:\Progra~1\Micros~1\Office\excel.exe /automation
You should only have to change one LocalServer32 key for your ActiveX
server. To determine exactly what to specify for the short path, check the
properties of the ActiveX server file in the Windows Explorer. See the MS-
DOS name setting in the Properties window. Also check the properties of the
folder in which the ActiveX server resides so that you can determine the
complete short path of your ActiveX server.
Another way to determine the short path is to use the GetShortPathName API
function. For more information about using the GetShortPathName API
function, see the following article in the Microsoft Knowledge Base:
Q175512 HOWTO: Get a Short Filename from a Long Filename
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products
listed at the beginning of this article.
MORE INFORMATION
Steps to Reproduce Behavior
- Install Microsoft Office 97 to C:\Program Files\Microsoft Office.
- In Visual Basic, start a new project.
- Add the following code to the Form_Click event of Form1:
Dim x as Object
Set x = CreateObject("Excel.Application")
Msgbox x.Name
- Press the F5 key to run the project and click the Form.
Result: MsgBox displays "Microsoft Excel."
- Stop the project.
- Create a new folder named C:\Program.
- Press the F5 key to run the project again, and click the Form.
Result: The CreateObject function fails with the following error:
Run-time error '429':
ActiveX component can't create object
REFERENCES
For additional information, please see the following article in the
Microsoft Knowledge Base:
Q173430 Off97: Error Inserting an Office Object Under Windows NT 4.0
Additional query words:
GetObject instantiate COM CoCreateInstance
Keywords : kbActiveX kbOLEApp kbVBp500 kbGrpDSO kbOffice2000 kbVBA500
Version : :; WINDOWS:5.0,97
Platform : WINDOWS
Issue type : kbbug
Last Reviewed: June 17, 1999