Use PowerPointViewer instead of PowerPoint
I figured a way to use PowerPointViewer instead of PowerPoint. It's actually pretty straight forward. Just create a Process with the PPTVIEW.exe. By installing a hook that intercepts the window creation of the PowerPointViewer, we can give it a new parent, namely the according XIBO-Region-Form. Then the presentation correctly sizes to the desired area on our screen.
Blueprint information
- Status:
- Started
- Approver:
- None
- Priority:
- Low
- Drafter:
- None
- Direction:
- Approved
- Assignee:
- None
- Definition:
- Approved
- Series goal:
- Accepted for 1.7
- Implementation:
- Beta Available
- Milestone target:
- None
- Started by
- Daniel Schmid
- Completed by
Whiteboard
AH: I don't think people will accept that limitation as an acceptable compromise I'm afraid.
Daniel: I agree, I'm still trying to hook up the PowerPointViewer window creation to intervene at the point when the presentation canvas is set up, and directly reduce the size there. Like this it would probably be possible that any presentation could resize to the given window or range...
Daniel 05.08.2010: I was able to embedd the PowerPointViewer window in a Form, by using Hooks in a managed C++ DLL. The PPT correctly resizes to the space desired.Everything we need now is to add an option in the Xibo-Client settings to specify the location of PPTVIEW.exe and the option to use PowerPointViewer instead of PowerPoint.
Actually with this solution it is possible to embedd ANY external or third party application window into an Xibo-Display-
AH: OK - that sounds good then. I see you've already started a new branch based on this blueprint. Please try and keep the changes as minimal as possible so we get a nice clean diff to merge once we review the changes you've made :D The main problems we've had with these kinds of changes in the past are either runtime exceptions thrown by the managed DLL or by the PPTVIEWER itself. Make sure those are all handled nicely. Also make sure that you correctly dispose of everything when the presentation should finish running so that the app isn't leaking memory. You need to give it a good long run while watching the RAM usage to be sure! Thanks :D