Solved

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

Posted on 2004-10-19
4
612 Views
Last Modified: 2012-05-05
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
Comment
Question by:iam_david_lee
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 14

Accepted Solution

by:
aelatik earned 250 total points
ID: 12348346
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
 

Author Comment

by:iam_david_lee
ID: 12360180
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
 
LVL 14

Expert Comment

by:aelatik
ID: 12360259
Give the IUSR internet acount access to the folder you are trying to write in. I think its a security issue.
0
 

Author Comment

by:iam_david_lee
ID: 12379400
Thanks. Got it working now...

0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

687 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