Hello all.
I am releasing a script I have had for a while, it shows how to integrate the ActiveX web plugin into a wxPython program (Windows only).
Fairly simple and straight forward, more of an example how to do it than anything . That said, it is pretty darn fast ..faster than the web browser for sure but no hyperlinking ...Oh yea it is fairly trivial to make this fullscreen too .
wxPython comes with joystick support so I am going to try to interface it with the plugin...Just dont know how yet! Hope this helps someone.

#wxBlenderPlayer.py################################################################################################### Windows only! Sorry Linux! """wxBlenderPlayer by M.E.Farmer Jr. 2002 This is the begining of a Blender 3D Plug-in ActiveX Control module\widget for wxPython so it can easily be used in your own wxPython programs. Originally written in 2002 it has sat dormant on my hard drive forgotten for a year. When I annonced it on the old website someone asked me if I was trying to make Nan go bankcrupt. Although they said it jokingly I figured I would not release it ... But they did go bankcrupt and it wasn't even my fault! So here it is, hope you find it useful. I have stalled on it and never finished it, so much work left to do.... but I only program in my _spare time_ so bills come first ;) Released to the public 03/2003 M.E.Farmer"""################################################################################################### Can view local and internet based .Blend files## Requirements:# Either:# ActivePython (http://www.activestate.com/Products/ActivePython/)# Or:# Python 2.0 or higher : (http://www.Python.org)# Mark Hammonds win32 extensions (http://starship.python.net/crew/mhammond/)# Also:# wxPython : a cross platform gui toolkit (http://www.wxPython.org)# BlenderPlugin : ActiveX version (http://www.blender.org)# Windows 95 or higher: (http://Microsoft.com)##################################################################################################

#This section is sensitive only change values if you know what your doing.#If you want to tweak things and change up stuff goto the GUI section below.

# The following 3 lines may need tweaking for the particular server# Candidates are pythoncom.Missing and pythoncom.EmptydefaultNamedOptArg=pythoncom.MissingdefaultNamedNotOptArg=pythoncom.MissingdefaultUnnamedArg=pythoncom.Missing

# old sample area No longer exist but left for historical purposes. #http://www.blender3d.com/3DInAction/gallery/plugins/XXXX.blend

# new sample area #http://www.blender3d.org/_media/gallery/3dwebplugin/XXXX.blend # If you want to add more or change the list do it here. Location = ['http://www.blender3d.org/_media/gallery/3dwebplugin/Radiosity.blend', 'http://www.blender3d.org/_media/gallery/3dwebplugin/skategirl.blend', 'http://www.blender3d.org/_media/gallery/3dwebplugin/haloparty.blend', 'http://www.blender3d.org/_media/gallery/3dwebplugin/Nevaeh.blend', 'http://www.blender3d.org/_media/gallery/3dwebplugin/SkategirlMovie.blend', 'http://www.blender3d.org/_media/gallery/3dwebplugin/Colorcubes.blend'] # Make a new class that derives from the BlenderPlayer class in the # COM module imported above. This class also derives from wxWindow and # implements the machinery needed to integrate the two worlds. theXClass = MakeActiveXClass(BlenderPlayer, eventObj = self) # Create an instance of that class self.Plug = theXClass(self, -1, style=wxSUNKEN_BORDER) # Code for the buttons on the player btn = wxButton(self, wxNewId(), "About") EVT_BUTTON(self, btn.GetId(), self.OnAboutBox) btnSizer.Add(btn, 0, wxEXPAND|wxALL, 5)

def OnLocationSelect(self, evt): """Gets the location fron the address bar when a selection is made in drop down list, and sends it to the control for loading. """ url = self.location.GetStringSelection() self.Plug.blenderURL = url self.Plug.loadingURL = "" self.Plug.useFileBackColor = 1

def OnLocationKey(self, evt): """Gets the location when entered, appends it to the drop down list, and then sends the URL to the control for loading. Skips if no enter is pressed. """ if evt.KeyCode() == WXK_RETURN: URL = self.location.GetValue() self.location.Append(URL) self.Plug.blenderURL = URL self.Plug.useFileBackColor = 1 self.Plug.loadingURL = "" else: evt.Skip()

def OnProperties(self, event): """Really just an example of how to do it this function acts like a toggle on or off for the values below""" if self.Plug.showProperties: self.Plug.showProperties = 0 self.Plug.showFrameCount = 0 self.Plug.showProfileInfo = 0 else: self.Plug.showProperties = 1 self.Plug.showFrameCount = 1 #If you want to see it make it eqaul one not zero self.Plug.showProfileInfo = 0

Hello all,
Datura thanks for your response!
The short answer is no.
I have not worked on that yet, and this is all I have right now.
The top part of the script with all the COM\win32 stuff is where you should probably look for inspiration, it is probably already thereI just dont know how to get at it yet.
I did not write that part it was automatically generated by makepy/pythonwin.
Your best bet would be to study Mark Hammonds documentation to learn what is wrapping the events and how to get at them.
Once you know that it should be easy. This is something I will read up on and try to help(if I can).
I would very interested to hear from you if you make any progress.
I could make joysticks and such work if I knew that.
I will post updates here. Any COM/win32 pros out there?