Results 1 to 17 of 17

Thread: [RESOLVED] Run-Time error '429': ActiveX component can't create object. VB6 Deployment Package

  1. #1

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Resolved [RESOLVED] Run-Time error '429': ActiveX component can't create object. VB6 Deployment Package

    Okay, so I have this program creating an installation package for my old VB6 application.

    I started off using InnoSetup, but in another thread the only comment was 'meh', like don't use it.
    Okay, so I created an install package using the VB6 Deployment Package Wizard.

    Both installation packages, InnoSetup created and DPW created, end up with same result.

    When I try to run the installed program, I get the run-time error '429'.

    I did a search within the forum but it isn't the best search system as I get all kinds of things not even close to the RT429 issue.

    The big problem is that it does NOT tell me what 'object' it can't create. How does one find out in order to fix?

    Is there a log somewhere that would spell this out?

    Here is a list of the DLL and OCX files that I found in the original InnoSetup script .iss file associated with my app.

    msvbvm60.dll **
    oleaut32.dll
    olepro32.dll
    asycfilt.dll
    comcat.dll

    mscomct2.ocx *
    IGResizer40.ocx *
    msfl651d.dll
    msflxgrd.ocx *
    comctl32.ocx *
    comdlg32.ocx *
    DirectCOM.dll
    sqlite36_engine.dll
    dhRichClient3.dll

    (msdatgrd.ocx)
    (mschrt20.ocx)

    ** = Listed in References
    * = Listed in Components
    ( ) = Listed in Components but not in my original InnoSetup install script.

    DirectCOM.dll, sqlite36_engine.dll, dhRichClient3.dll did not show up in a text search of my code. So I don't know if they are called by something else or what. This is a bit over my head.

    Does anyone have an idea as to what I should be doing to fix this? Thanks.

  2. #2

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    Doesn't anyone know why this is happening? I've been at this for hours and am baffled.

    The program runs fine when executed from within the VB6 IDE.

    But it won't run when installed on any Windows systems.

    Run-time error '429':
    ActiveX component can't create object

    I'm baffled!

  3. #3
    Lively Member
    Join Date
    Nov 2020
    Posts
    67

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    You must instruct your installer (InnoSetup or other) that all OCX must be installed and registered using the 'Register Ole Server' flag, as well as many DLL libraries (not all, it depends on the type of library).

    When distributing programs it is always better to test the installation and execution results in a virtual machine (Oracle VirtualBox, VMWare, ...) in order to check what is missing and why.

  4. #4

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    Quote Originally Posted by LeoFar View Post
    You must instruct your installer (InnoSetup or other) that all OCX must be installed and registered using the 'Register Ole Server' flag, as well as many DLL libraries (not all, it depends on the type of library).

    When distributing programs it is always better to test the installation and execution results in a virtual machine (Oracle VirtualBox, VMWare, ...) in order to check what is missing and why.
    Thanks for commenting.

    Whether it is DPW or InnoSetup, the error is the same.
    In InnoSetup, I have the flag "regserver" for all the OCX.

    I'm testing on a fresh Win 7 install on one laptop and another Win 7 laptop. Both gives the same error.

    I know it has to be something with the installation since the 'exe' of the app works fine on my dev machine.

    But even when I take a working 'exe' over to another machine that I ran the install on (that has error) hoping it would work, same error.

    I've tried manually registering every single OCX and DLL that the dependency list provided. If it can register, it did.

    But no dice.

    Isn't there a way to find out WHICH OCX is the trouble-maker?

  5. #5
    PowerPoster wqweto's Avatar
    Join Date
    May 2011
    Location
    Sofia, Bulgaria
    Posts
    5,120

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    Quote Originally Posted by webbiz View Post
    Isn't there a way to find out WHICH OCX is the trouble-maker?
    Your .vbp project file contains all your dependent components (DLLs and OCXs). Either use IDE to list project references/components or directly inspect your .vbp in Notepad.

    Some of your dependent DLLs might be system provided ones (like MSVBVM60.DLL or ADO) which you dont’t have to ship.

    Research regfree COM and save yourself installation troubles by making your app XCopy deployable.

  6. #6
    PowerPoster
    Join Date
    Feb 2006
    Posts
    24,482

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    Quote Originally Posted by webbiz View Post
    msvbvm60.dll
    oleaut32.dll
    olepro32.dll
    asycfilt.dll
    comcat.dll
    These have been a part of Windows for a very long time now, at least WinXP SP3 if not all the way back to Windows 2000. They are not deployable and should never be included except in a package meant to install on old Win9x platforms.

    Windows should detect and repair attempts to overwrite the system copies of these libraries.

    Quote Originally Posted by webbiz View Post
    mscomct2.ocx
    msflxgrd.ocx
    comctl32.ocx
    comdlg32.ocx
    :
    msdatgrd.ocx
    mschrt20.ocx
    These are control libraries provided with VB6 and their deployment rules haven't changed. A legacy scripted setup or installer should look for them already installed and not overwrite them unless a newer versions must be installed. Their .DEP files describe to legacy scripted setup packagers where to install them, and the provided Installer merge modules from Microsoft already contain the logic to properly deploy them.

    Quote Originally Posted by webbiz View Post
    IGResizer40.ocx
    msfl651d.dll
    DirectCOM.dll
    sqlite36_engine.dll
    dhRichClient3.dll
    These look like 3rd party stuff. All bets are off, see the vendor's documentation.

  7. #7

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    Quote Originally Posted by wqweto View Post
    Your .vbp project file contains all your dependent components (DLLs and OCXs). Either use IDE to list project references/components or directly inspect your .vbp in Notepad.

    Some of your dependent DLLs might be system provided ones (like MSVBVM60.DLL or ADO) which you dont’t have to ship.

    Research regfree COM and save yourself installation troubles by making your app XCopy deployable.

    I've loaded up the VBP in Notepad++ and notice at the very top a list:

    Type=Exe
    Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation
    Reference=*\G{C79C91A4-10F5-4F71-A490-3B7915514344}#2.5#0#..\vbRichClient SQLite\vbRichClient5.dll#vbRichClient5
    Object={5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0; MSFLXGRD.OCX
    Object={86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCT2.OCX
    Object={65E121D4-0C60-11D2-A9FC-0000F8754DA1}#2.0#0; MSCHRT20.OCX
    Object={1AF1F43C-1DE4-44ED-B0FD-A49A4EAA03A6}#4.0#0; IGResizer40.ocx
    Object={6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0; comctl32.ocx
    Object={CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0; MSDATGRD.OCX
    Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; COMDLG32.OCX

    This is followed by Form= forms, modules, and other details about the app. Can you believe I've never opened this in a text editor? Yep, you can believe it. I answered that for you. ;-b

    So my question is, would this be ALL THE DEPENDENCIES and nothing more for the app? Or is it possible to have other dependencies that would not appear in this list? For example, is it possible for one of these dependencies to require another but not announce it? Sorry if that is a dumb question, but I'm trying to make sure I get a complete picture of what this app needs.

    Meanwhile, I have already pulled up the docs.microsoft.com page on registration-free-com-interop based on your suggestion to look at regfree coms and will try to get my head around it. THANKS for the direction!

  8. #8

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    Quote Originally Posted by dilettante View Post
    These have been a part of Windows for a very long time now, at least WinXP SP3 if not all the way back to Windows 2000. They are not deployable and should never be included except in a package meant to install on old Win9x platforms.

    Windows should detect and repair attempts to overwrite the system copies of these libraries.



    These are control libraries provided with VB6 and their deployment rules haven't changed. A legacy scripted setup or installer should look for them already installed and not overwrite them unless a newer versions must be installed. Their .DEP files describe to legacy scripted setup packagers where to install them, and the provided Installer merge modules from Microsoft already contain the logic to properly deploy them.



    These look like 3rd party stuff. All bets are off, see the vendor's documentation.
    Oh this is so enlightening! Thank you so much. I sure have missed a lot of happenings over the last 1.5 decades!

    So the second list you show from "mscomct2.ocx to mschrt20.ocx" I could leave off the install script as well because my app was written a long time ago and I don't need to install new updated copies? In other words, it is likely that they are newer already on the installers computer especially if using a Win OS newer than XP?


    So if I understand you correctly, the ONLY ones I really need to be concerned with are the 3rd-party stuff?

    That narrows it down if so.

    Cheers!

  9. #9
    PowerPoster
    Join Date
    Feb 2006
    Posts
    24,482

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    No, the second list are things you must deploy.

    Before you do however your script is supposed to see if the user's machine already has each one installed and only replace them if your program needs newer versions provided by your setup package.

  10. #10

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    Quote Originally Posted by dilettante View Post
    No, the second list are things you must deploy.

    Before you do however your script is supposed to see if the user's machine already has each one installed and only replace them if your program needs newer versions provided by your setup package.
    Oh, okay. Thanks.

  11. #11

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    Well, I stripped out DLL's not required (as far as I can tell), and DLL's that are standard in Windows OS's.

    Other than my executable and help file, this is all that I've included in my installation file.

    Source: "d:\programming\deploy files\stdole2.tlb"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regtypelib
    ; end VB system files


    Source: "d:\programming\deploy files\mscomct2.ocx"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver
    Source: "d:\programming\deploy files\MSFLXGRD.ocx"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver
    Source: "d:\programming\deploy files\comctl32.ocx"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver
    Source: "d:\programming\deploy files\comdlg32.ocx"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver
    Source: "D:\programming\vbRichClient SQLite\vbRichClient5.dll"; DestDir: "{app}";


    And on a VirtualBox Windows 7 clean install I still get that dreaded Run-time 429.

    I just don't know where to go from here. It runs just fine on my Dev machine (Windows 10).

    ???

  12. #12

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    Eureka!!!!

    I found what is causing the Run-Time 429 error. BUT I HAVEN'T YET FIGURED OUT HOW TO FIX.

    The REASON it appears that it worked great on my DEV machine (Windows 10) but not in Windows 7 machines (including VirtualBox) has to do with the OS itself!

    But why???

    Here's what I found so far.

    1. When I considered that I was running the VB6 IDE on my Windows 10 machine, and it ran and compiled and installed just fine on the Windows 10 machine but would get the '429' error on two Win 7 machines and a VirtualBox Win7 machine on my Win10 machine, it dawned on me to see what would happen if I moved my DEV files onto the VirtualBox Win7 machine and tried to compile, run, install it.

    And sure enough, the VB6 IDE gave the error on a class that is defined in vbRichClient5.dll. See pic.

    Attachment 182402

    So the PROBLEM has something to do with vbRichClient5.dll and Windows 7 (I can't say for any previous versions).

    Now the question is, why?

    It shows up just fine in the REFERENCES list with a checkmark.

    Anyone got a clue now that I've gotten this far?

  13. #13

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    OMG!!! Yeah, I'm getting excited here.

    I figured there has to be some kind of registration issue.

    So what I did was move the whole directory (vbRichClient SQLite) to my VirtualBox Win7 DEV and see what would happen if I ran one of those "RegisterRC5inPlace.vbs" and "RegisterVBWidgetsInPlace.vbs" files I found in there.

    I ran the first one, "RC5", and it came back that it registered vbRichClient5! So I ran the app again in the VB6 IDE and it worked without error!!!

    So that's the WHY.

    Now I need to figure out how to get my INSTALL package to do this automatically. I don't want to have to say to users that they must manually register this or that. Just run the install.

    The search continues...

  14. #14

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack

    SOLVED!!!

    [Files]
    Source: vb_cairo_sqlite.dll; DestDir: {app}\Bin
    Source: vbRichClient5.dll; DestDir: {app}\Bin; Flags: regserver

    And it installs just fine now in Windows 7.

    Case closed.

  15. #15
    PowerPoster
    Join Date
    Feb 2006
    Posts
    24,482

    Re: [RESOLVED] Run-Time error '429': ActiveX component can't create object. VB6 Depl

    I don't know very much about the No-no, but it looks like you have scripted things to try to re-register a new copy within the Bin subdirectory of your app-target directory every time.

    And you do this with no regard to versioning or whether there is a system-level copy already installed and in use by other applications.

    I'm not sure how anything has been "resolved" here. At best you seem to have achieved "works one time, damn the torpedoes and any other applications the user might have."

    No-no Setup is very dangerous in uneducated incautious hands.

  16. #16

    Thread Starter
    Frenzied Member
    Join Date
    Nov 2010
    Posts
    1,245

    Re: [RESOLVED] Run-Time error '429': ActiveX component can't create object. VB6 Depl

    Quote Originally Posted by dilettante View Post
    I don't know very much about the No-no, but it looks like you have scripted things to try to re-register a new copy within the Bin subdirectory of your app-target directory every time.

    And you do this with no regard to versioning or whether there is a system-level copy already installed and in use by other applications.

    I'm not sure how anything has been "resolved" here. At best you seem to have achieved "works one time, damn the torpedoes and any other applications the user might have."

    No-no Setup is very dangerous in uneducated incautious hands.
    Perhaps. But I only have a handful of users and they really want this to install.

    As for my 'uneducated incautious hands', I reached out for direction in the last couple of days and was not given any 'cautions' to work with. Didn't have much choice.

    I'm still really pleased that I was able to get down and dirty and solve a mystery that left me with little sleep and great agitation to solve. I'll not let a 'negative' get in the way of my celebration this evening.

    :-)

  17. #17
    Lively Member
    Join Date
    Nov 2020
    Posts
    67

    Re: [RESOLVED] Run-Time error '429': ActiveX component can't create object. VB6 Depl

    Quote Originally Posted by webbiz View Post
    I'll not let a 'negative' get in the way of my celebration this evening.
    :-)
    I Agree.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width