AxAcroPDFLib throws exception when containing form is MDI child

Posted on 2010-01-08
Last Modified: 2012-05-08
I'm working on what should be a very simple project, but I'm running into a world of troubles.

I have an MDI parent form which displays a list of PDF files located on a mapped network drive. When the user double-clicks a file, an MDI child form opens to show the PDF.

The only control on the child form is of the type "Adobe Acrobat 7.0 Browser Control Type Library 1.0".

When I call the LoadFile method of the pdf viewer control, it throws this exception: First-chance exception at 0x1000847c in Foo.exe: 0xC0000005: Access violation reading location 0x00000008.

If I go into the MDI parent's code and remove the line "frmMDIChild.ParentForm = Me" and allow the pdf viewer's form to open in its own window I do not get the exception.

Doing a little googling I have found others who have the same problem but I have not found a solution anywhere.

Using a WebBrowser control to display the PDFs is not an option in this case.

Any help would be appreciated. Thanks!
Question by:vb9666
    LVL 85

    Expert Comment

    by:Mike Tomlinson
    (I've never worked with AxAcroPDFLib before)

    Doubt this will fix the problem...

    ...but if you want an Mdi Child Form then change:

        frmMDIChild.ParentForm = Me


        frmMDIChild.MdiParent = Me

    A possible "kludge" solution would be to open up the form normally and then make it an MDI child AFTER loading the PDF?

    Author Comment

    Idle_Mind, thanks for your comment. I am sorry, I mistakenly wrote ParentForm in my question when in the code it actually sets MdiParent.

    I will try your second suggestion now.......

    Author Comment

    I tried Idle_Mind's suggestion of setting the MdiParent property after loading the pdf. After loading the PDF, I have the program sleep for 5 seconds so that I can visually verify that the PDF was loaded. It indeed was. When the program finished sleeping and set the child form's MdiParent, the viewer no longer displayed the document but was just a white box. No exceptions were thrown.

    frmR.MdiParent = Me
    LVL 85

    Accepted Solution

    Not sure if there is a "proper" solution to this one...  =\

    Was able to display it as a "pseudo mdi child" like this:

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Using ofd As New OpenFileDialog
                ofd.Filter = "PDF Files (*.pdf)|*.pdf"
                If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
                    Dim f1 As New Form1
                    f1.TopLevel = False ' <-- can't work without this
                End If
            End Using
        End Sub

    It's not a TRUE MdiChild though...not sure how this would affect your current app!

    Author Closing Comment

    More of a workaround than a solution, but it works for me! Thanks!!

    Featured Post

    Enabling OSINT in Activity Based Intelligence

    Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

    Join & Write a Comment

    Power PDF ( is the newest product from the Document Imaging division of Nuance Communications ( It is available in two editions — …
    *Adobe Acrobat 9 was used for this article. Particular steps may vary depending on software versions. 1. Create a framework of your form in Word, leaving space where you’d ultimately like the Adobe fields to appear.  (Note: I use the blank lines …
    In this video, we show how to convert an image-only PDF file into a PDF Searchable Image file, that is, a file with both the image (typically from scanning) and text, which is created in an automated fashion with Optical Character Recognition (OCR) …
    In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

    729 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

    24 Experts available now in Live!

    Get 1:1 Help Now