12

Is it possible to Embed a PowerPoint Viewer into a C# Windows Form?

I am currently use the following code:

objApp = new PowerPoint.Application();
        //objApp.Visible = MsoTriState.msoTrue;
        objPresSet = objApp.Presentations;
        objPres = objPresSet.Open(ppsAction.FileInfo.FullName, MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse);
        objSlides = objPres.Slides;

        //Run the Slide show
        objSSS = objPres.SlideShowSettings;
        objSSS.ShowType = Microsoft.Office.Interop.PowerPoint.PpSlideShowType.ppShowTypeSpeaker;
        objSSS.LoopUntilStopped = MsoTriState.msoTrue;
        objSSS.Run();

        WindowWrapper handleWrapper = new WindowWrapper(objPres.SlideShowWindow.HWND);
        SetParent(handleWrapper.Handle, this.ApplicationPanel.Handle);
        this.ApplicationPanel.Visible = true;
        objPres.SlideShowWindow.Height = ApplicationPanel.Height;
        objPres.SlideShowWindow.Width = ApplicationPanel.Width;
        objPres.SlideShowWindow.Top = 0;
        objPres.SlideShowWindow.Left = 0;

It shows the viewer on the form but the placement and sizing is wrong. How would one size and place it correctly.

Another option:
I have encountered the Aximp.exe application meant to be used for showing ActiveX controls on the Win Forms in C#. How would I use this with the PPT Viewer?

Luke Narramore
  • 502
  • 2
  • 6
  • 17

3 Answers3

5

See this link. You can also display the ppt in a WebBrowser control. This might also be useful.

danish
  • 5,550
  • 2
  • 25
  • 28
1

For placement change the objPres.SlideShowWindow.Top to 10 as example and objPres.SlideShowWindow.Left to 12 so the upper left corner of the slide will be at (12,10) where left move it horizontal and the top move it down vertically.

Toon Krijthe
  • 52,876
  • 38
  • 145
  • 202
Dodo
  • 11
  • 1
1

Thanks for good links, http://support.microsoft.com/kb/304662 has useful info... That helped me :)

Pasan Indeewara
  • 511
  • 1
  • 4
  • 7