• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 628
  • Last Modified:

Help with converting VB EXE to VB DLL - automating Powerpoint.

Hi

I need create a DLL componenet which will be called by an ASP page. The ASP page will call/create the DLL component and pass a list of image names with path info(comma seperated). The DLL will automatically create a Powerpoint presentation and insert the images into it and save the presentation.

I have got the following bit of code working as an EXE app. It does not take any parameters in though. When I create a DLL in Visual Studio and use the same code it compiles but hangs on running.

I would very much appreciate if anyone can help me convert the code to work as DLL and show me how to pass the image names from ASP into VB DLL.

Thank you.

________________________________________________________

Sub InsertImage()

    Dim ppApp As PowerPoint.Application
    Dim ppPres As PowerPoint.Presentation
    Dim ppShape As PowerPoint.Shape
    Dim ppCurrentSlide As PowerPoint.Slide

    Set ppApp = CreateObject("PowerPoint.Application")
    ppApp.Visible = True
   
    Set ppPres = ppApp.Presentations.Add(msoTrue)
    Set ppCurrentSlide = ppPres.Slides.Add(Index:=1, Layout:=ppLayoutBlank)
    ppPres.ApplyTemplate ("C:\cfdeals.ppt")

    With ppCurrentSlide.Shapes
        ' Adds a picture to slide 1 in the active presentation.
        Set oPicture = .AddPicture("C:\image1.jpg", msoFalse, msoTrue, 92, 132, 1, 1)
        ' Now scale the image
        oPicture.ScaleHeight 1, msoTrue
        oPicture.ScaleWidth 1, msoTrue
       
    End With
    ppPres.SaveAs "C:\hello.ppt"
    ppApp.Quit
   
End Sub

_________________________________________________________
0
iam_david_lee
Asked:
iam_david_lee
  • 2
  • 2
1 Solution
 
aelatikCommented:
You could try removing all references ( use late binding ) and translating the constants to their real values and try executing it directly from ASP.
This sample works from VBSCRIPT, it means it can also execute in ASP if you set the right permissions to the filesystem.

<%
    Dim ppApp, ppPres, ppShape, ppCurrentSlide

    Set ppApp = CreateObject("PowerPoint.Application")
    Set ppPres = ppApp.Presentations.Add(vbNull)
    Set ppCurrentSlide = ppPres.Slides.Add(1, 12)
        ppPres.ApplyTemplate ("C:\cfdeals.ppt")
    With ppCurrentSlide.Shapes
        Set oPicture = .AddPicture("C:\image1.jpg", vbNull, vbNull, 92, 132, 1, 1)
            oPicture.ScaleHeight 1, vbNull
            oPicture.ScaleWidth 1, vbNull
    End With
   
    ppPres.SaveAs "C:\hello.ppt"
    ppApp.Quit
%>
0
 
iam_david_leeAuthor Commented:
Hi

Thanks aelatik. I used your solution but I am getting the following error message.

Microsoft PowerPoint 2002 error '80004005'
Presentation.SaveAs : An error occurred while PowerPoint was saving the file.

I couldn't find much info on this error online....Any ideas....


Thankx.
0
 
aelatikCommented:
Give the IUSR internet acount access to the folder you are trying to write in. I think its a security issue.
0
 
iam_david_leeAuthor Commented:
Thanks. Got it working now...

0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now