429 ActiveX error when running a VB6 app that calls a .Net (2.0 framework) dll from a Table PC running WinXP Pro SP2 Tablet PC edition

Posted on 2007-07-23
Last Modified: 2013-11-29
When I try to access a method from a com enabled .Net app from a VB6 program.  I get Error 429 ActiveX component can't create object.  This only occurs on a Table PC running WinXP Pro Table PC edition SP2.

I tried to isolate the problem by making the simplest program possible so I create VS2005 VB project that has one method.  Here is the code I used:

<ComClass()> Public Class InteropTest
    Public Function ShowDialog() As Boolean
        MsgBox("Hello from .Net 2.0!")
    End Function
End Class

I built the project and then created a VB6 standard EXE with a command button on the form and a reference set to the .Net dll.  Here is the code for the VB6 project:

Private Sub Command1_Click()
    Dim st As SimpleTest.InteropTest
    Set st = New SimpleTest.InteropTest
End Sub

That's as simple as it gets, right?

I then used Installshield to create the installation (I don't know how to get the tlb file registered properly without using Installshield).  I tested this on several non-tablet pcs and the program works as expected.  I click the button and I get a message box that says 'Hello from .Net 2.0!'

If I run this from the Table PC, I get the 429 error.

Any help would be greatly appreciated
Question by:DalexSupport
    LVL 18

    Expert Comment

    Well, in windows environment, a com dll needs to be either registered or loaded into memory. I don't know how this works on Tablet PC, but i Believe that you need first to load it in memory in order to use it.

    LVL 41

    Expert Comment

    I concur with Priest04...

    I believe you're thinking too hard... you should just concentrate on registering the COM DLL on the Tablet PC

    Author Comment

    I agree this is a registration issue.  What I don't understand is why the .Net dll won't register on the Tablet PC edition of XP Pro but it registers without fail on every notebook and desktop pc.  

    How do I register a .Net dll?  I need to register the tlb file but regsvr32 doesn't work with tlb files.  If I try regsvr32 on the .Net dll, I get a message that the file can't be registered because no entry point could be found.  

    I explored the registry of the tablet pc and a pc that registered properly and found the entries that the tablet pc did not have.  I exported the registry entries from the pc that did register properly and imported those entries into the tablet pc and then the VB6 app communicated correctly with the .Net dll.  

    Could this be an Installshield issue?  Is the registration process for dlls different on a tablet pc?

    I can get by with importing the registry entries, but it seems to me there should be an easier solution.
    LVL 18

    Expert Comment

    What those registry keys refer to? Are they specific to registering this dll? When you receive the entry point not found error, does at that moment application start to work (cause I believe that it stills load it in memory, so maybe then it becomes available to your vb6 app). I am sorry, but I never worked with tablet PC, so I cant tell you how this OS works. The error 429 means that this dll is not loaded in memory, so you cant use it. Where do you put this dll on target OS. Try changing it to system32 (if it exists, as I said, not familiar with Tablet PC OS)


    Author Comment

    The registry keys are specific to the .Net dll.  When I recieve the entry point not found error, the application still does NOT work.  

    For some reason, on non-tablet pcs, these registry entries are created with the installation.  On the table pcs, thery are not created.  I am starting to believe this may be an Installshield issue where Installshield isn't registering properly, but since I don't have a tablet pc of my own to use to test this, I am limited as to what I can do to test this.  (I have a customer with one that I hook up with on NetMeeting when his pc is available which is why my responses are not very fast).  

    I put all files including the dll in the same folder as the exe file that calls it (Call_dotNetFromVB6.exe).  I have even created a Call_dotNetFromVB6.exe.local file to try to circumvent 'dll hell' issues hoping that may resolve the problem but that hasn't worked either.

    I haven't had access to the table pc to test putting the dll in system32 since your last post so I haven't tested that yet but I don't have much faith that that will matter.  

    Since I can manually register this by adding branches to the registry, I am more and more thinking this is an Installshield issue with registering dlls (the dlls after all do register on non-tablet pc editions of WinXP).  I haven't used EE very much so I don't know all the proper procedures.  Should I post another question and associate this with an Installshield zone issue?

    LVL 18

    Accepted Solution

    Since the question you are asking is related to installers, then it would be the best to have one in section specific to installers and in section for Tablet PC's (you can have one question in 3 sections.


    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    Maximize Your Threat Intelligence Reporting

    Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

    Several part series to implement Internet Explorer 11 Enterprise Mode
    A Bare Metal Image backup allows for the restore of an entire system to a similar or dissimilar hardware. They are highly useful for migrations and disaster recovery. Bare Metal Image backups support Full and Incremental backups. Differential backup…
    With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…
    In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

    759 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    11 Experts available now in Live!

    Get 1:1 Help Now