Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

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

Posted on 2004-10-19
4
Medium Priority
?
626 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 1000 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

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
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…
Suggested Courses

610 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