2
votes

I have an ActiveX control written in C#. I am able to register it on my machine and put in PowerPoint 2007 slides via the Developer ribbon. Works great!

However, I don't want my users to have to install the control on their machines. I want to embed it directly into the PowerPoint file.

I have seen this done with Flash content. The PPTX file gets a "bin" directory and the actual Flash COM DLL is placed in it.

However, my PPTX files only have the activex directory and therefore rely on the control being globally registered.

How do I get PowerPoint to completely embed this control?

Clarification I have since found that the files in the "bin" directly were in fact SWF files that an already-registered Flash ActiveX control merely consumed. Darn.

1
+1. Good question. I don't think it can be done. Flash embedding in 2007 kind of went away, in 2010 it returned.Todd Main

1 Answers

2
votes

Couple of problems that i can see in doing this. What if user has disabled ActiveX controls ( ActiveX security settings - Microsoft Office Security ), a same thing for scripts / macros. What if user does not have required .net framework installed (since it's C# question, i suppose ActiveX is done in C#), or any other runtime required to run your ActiveX?.

Each and every ActiveX has to be registered before it can be used. If you are lucky and user has activex/scripting enabled, then you can try to register your ActiveX via VBScript embeded in your power point presentation. You can use RegSvr32 (silent mode) thru Wscript.Shell or you can look for native (API) functions.