[newbie] Embedding Flash OCX object
Zoool (at dot)
polykrombelcentercom
Sat Apr 30 16:45:06 EDT 2005
Thanks Kartic,
Don't know if i have understand everything, but i 'll try using your lights,
To integrate a flash movie using wx, here is a piece of code (the Flash.py
is auto-generated by makepy.py)
### testFlash.py
from wxPython.wx import *
import os
if wxPlatform == '__WXMSW__':
from wxPython.lib.activexwrapper import MakeActiveXClass
#import win32com.client.gencache
#import win32com.client
import flash
flashControl = flash
class FlashPanel(wxPanel):
def __init__(self, parent, flashFile):
wxPanel.__init__(self, parent, -1)
sizer = wxBoxSizer(wxVERTICAL)
ActiveXWrapper = MakeActiveXClass(flashControl.ShockwaveFlash)
self.Flash = ActiveXWrapper( self, -1)
self.Flash.Movie = os.path.join(os.getcwd(), flashFile)
self.Flash.Menu=False
self.Flash.OnFSCommand = self.OnFSCommand
sizer.Add(self.Flash, 1, wxEXPAND)
self.SetSizer(sizer)
self.SetAutoLayout(True)
EVT_WINDOW_DESTROY(self, self.OnDestroy)
def OnDestroy(self, evt):
if self.Flash:
self.Flash.Cleanup()
self.Flash = None
def OnFSCommand(self, command, *args):
if command=="openFile":
self.openFile()
if command=="saveFile":
self.saveFile(*args)
def openFile(self):
dlg = wxFileDialog(self, "Choose", "", "", "*.*", wxOPEN)
if dlg.ShowModal()==wxID_OK:
filename = dlg.GetFilename()
dirname = dlg.GetDirectory()
f = open(os.path.join(dirname, filename), "r")
self.Flash.SetVariable("PyReply", f.read())
f.close()
dlg.Destroy()
def saveFile(self, text):
dlg = wxFileDialog(self, "Save As", "", "", "*.*",
wxSAVE|wxOVERWRITE_PROMPT)
if dlg.ShowModal()==wxID_OK:
filename = dlg.GetFilename()
dirname = dlg.GetDirectory()
f = open(os.path.join(dirname, filename), "w")
f.write(text)
f.close()
dlg.Destroy()
if __name__ == '__main__':
class FlashFrame(wxFrame):
def __init__(self):
wxFrame.__init__(self, None, -1, "PyFlash -- Simple File Viewer",
size=(550, 400))
self.flashPanel = FlashPanel(self, "testFlash.swf")
app = wxPySimpleApp()
frame = FlashFrame()
frame.Show(True)
app.MainLoop()
### Flash.py
# -*- coding: mbcs -*-
# Created by makepy.py version 0.4.8
# By python version 2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC v.1200 32 bit
(Intel)]
# From type library '{D27CDB6B-AE6D-11CF-96B8-444553540000}'
# On Tue Mar 16 01:58:37 2004
"""Shockwave Flash"""
makepy_version = '0.4.8'
python_version = 0x20303f0
import win32com.client.CLSIDToClass, pythoncom
import win32com.client.util
from pywintypes import IID
from win32com.client import Dispatch
# The following 3 lines may need tweaking for the particular server
# Candidates are pythoncom.Missing and pythoncom.Empty
defaultNamedOptArg=pythoncom.Empty
defaultNamedNotOptArg=pythoncom.Empty
defaultUnnamedArg=pythoncom.Empty
CLSID = IID('{D27CDB6B-AE6D-11CF-96B8-444553540000}')
MajorVersion = 1
MinorVersion = 0
LibraryFlags = 8
LCID = 0x0
from win32com.client import DispatchBaseClass
class IShockwaveFlash(DispatchBaseClass):
"""Shockwave Flash"""
CLSID = IID('{D27CDB6C-AE6D-11CF-96B8-444553540000}')
coclass_clsid = IID('{D27CDB6E-AE6D-11CF-96B8-444553540000}')
#default_interface = IShockwaveFlash
#default_source = _IShockwaveFlashEvents
def Back(self):
"""method Back"""
return self._oleobj_.InvokeTypes(114, LCID, 1, (24, 0), (),)
def CurrentFrame(self):
"""method CurrentFrame"""
return self._oleobj_.InvokeTypes(128, LCID, 1, (3, 0), (),)
def FlashVersion(self):
"""method FlashVersion"""
return self._oleobj_.InvokeTypes(132, LCID, 1, (3, 0), (),)
def Forward(self):
"""method Forward"""
return self._oleobj_.InvokeTypes(115, LCID, 1, (24, 0), (),)
def FrameLoaded(self, FrameNum=defaultNamedNotOptArg):
"""method FrameLoaded"""
return self._oleobj_.InvokeTypes(131, LCID, 1, (11, 0), ((3,
1),),FrameNum)
def GetVariable(self, name=defaultNamedNotOptArg):
"""method GetVariable"""
# Result is a Unicode object - return as-is for this version of Python
return self._oleobj_.InvokeTypes(152, LCID, 1, (8, 0), ((8, 1),),name)
def GotoFrame(self, FrameNum=defaultNamedNotOptArg):
"""method GotoFrame"""
return self._oleobj_.InvokeTypes(127, LCID, 1, (24, 0), ((3,
1),),FrameNum)
def IsPlaying(self):
"""method IsPlaying"""
return self._oleobj_.InvokeTypes(129, LCID, 1, (11, 0), (),)
def LoadMovie(self, layer=defaultNamedNotOptArg,
url=defaultNamedNotOptArg):
"""method LoadMovie"""
return self._oleobj_.InvokeTypes(142, LCID, 1, (24, 0), ((3, 1), (8,
1)),layer, url)
def Pan(self, x=defaultNamedNotOptArg, y=defaultNamedNotOptArg,
mode=defaultNamedNotOptArg):
"""method Pan"""
return self._oleobj_.InvokeTypes(119, LCID, 1, (24, 0), ((3, 1), (3, 1),
(3, 1)),x, y, mode)
def PercentLoaded(self):
"""method PercentLoaded"""
return self._oleobj_.InvokeTypes(130, LCID, 1, (3, 0), (),)
def Play(self):
"""method Play"""
return self._oleobj_.InvokeTypes(112, LCID, 1, (24, 0), (),)
def Rewind(self):
"""method Rewind"""
return self._oleobj_.InvokeTypes(116, LCID, 1, (24, 0), (),)
def SetVariable(self, name=defaultNamedNotOptArg,
value=defaultNamedNotOptArg):
"""method SetVariable"""
return self._oleobj_.InvokeTypes(151, LCID, 1, (24, 0), ((8, 1), (8,
1)),name, value)
def SetZoomRect(self, left=defaultNamedNotOptArg,
top=defaultNamedNotOptArg, right=defaultNamedNotOptArg,
bottom=defaultNamedNotOptArg):
"""method SetZoomRect"""
return self._oleobj_.InvokeTypes(109, LCID, 1, (24, 0), ((3, 1), (3, 1),
(3, 1), (3, 1)),left, top, right, bottom)
def Stop(self):
"""method Stop"""
return self._oleobj_.InvokeTypes(113, LCID, 1, (24, 0), (),)
def StopPlay(self):
"""method StopPlay"""
return self._oleobj_.InvokeTypes(126, LCID, 1, (24, 0), (),)
def TCallFrame(self, target=defaultNamedNotOptArg,
FrameNum=defaultNamedNotOptArg):
"""method TCallFrame"""
return self._oleobj_.InvokeTypes(155, LCID, 1, (24, 0), ((8, 1), (3,
1)),target, FrameNum)
def TCallLabel(self, target=defaultNamedNotOptArg,
label=defaultNamedNotOptArg):
"""method TCallLabel"""
return self._oleobj_.InvokeTypes(156, LCID, 1, (24, 0), ((8, 1), (8,
1)),target, label)
def TCurrentFrame(self, target=defaultNamedNotOptArg):
"""method TCurrentFrame"""
return self._oleobj_.InvokeTypes(145, LCID, 1, (3, 0), ((8, 1),),target)
def TCurrentLabel(self, target=defaultNamedNotOptArg):
"""method TCurrentLabel"""
# Result is a Unicode object - return as-is for this version of Python
return self._oleobj_.InvokeTypes(146, LCID, 1, (8, 0), ((8, 1),),target)
def TGetProperty(self, target=defaultNamedNotOptArg,
Property=defaultNamedNotOptArg):
"""method TGetProperty"""
# Result is a Unicode object - return as-is for this version of Python
return self._oleobj_.InvokeTypes(154, LCID, 1, (8, 0), ((8, 1), (3,
1)),target, Property)
def TGetPropertyAsNumber(self, target=defaultNamedNotOptArg,
Property=defaultNamedNotOptArg):
"""method TGetPropertyAsNumber"""
return self._oleobj_.InvokeTypes(172, LCID, 1, (5, 0), ((8, 1), (3,
1)),target, Property)
def TGetPropertyNum(self, target=defaultNamedNotOptArg,
Property=defaultNamedNotOptArg):
"""method TGetPropertyNum"""
return self._oleobj_.InvokeTypes(158, LCID, 1, (5, 0), ((8, 1), (3,
1)),target, Property)
def TGotoFrame(self, target=defaultNamedNotOptArg,
FrameNum=defaultNamedNotOptArg):
"""method TGotoFrame"""
return self._oleobj_.InvokeTypes(143, LCID, 1, (24, 0), ((8, 1), (3,
1)),target, FrameNum)
def TGotoLabel(self, target=defaultNamedNotOptArg,
label=defaultNamedNotOptArg):
"""method TGotoLabel"""
return self._oleobj_.InvokeTypes(144, LCID, 1, (24, 0), ((8, 1), (8,
1)),target, label)
def TPlay(self, target=defaultNamedNotOptArg):
"""method TPlay"""
return self._oleobj_.InvokeTypes(147, LCID, 1, (24, 0), ((8, 1),),target)
def TSetProperty(self, target=defaultNamedNotOptArg,
Property=defaultNamedNotOptArg, value=defaultNamedNotOptArg):
"""method TSetProperty"""
return self._oleobj_.InvokeTypes(153, LCID, 1, (24, 0), ((8, 1), (3, 1),
(8, 1)),target, Property, value)
def TSetPropertyNum(self, target=defaultNamedNotOptArg,
Property=defaultNamedNotOptArg, value=defaultNamedNotOptArg):
"""method TSetPropertyNum"""
return self._oleobj_.InvokeTypes(157, LCID, 1, (24, 0), ((8, 1), (3, 1),
(5, 1)),target, Property, value)
def TStopPlay(self, target=defaultNamedNotOptArg):
"""method TStopPlay"""
return self._oleobj_.InvokeTypes(148, LCID, 1, (24, 0), ((8, 1),),target)
def Zoom(self, factor=defaultNamedNotOptArg):
"""method Zoom"""
return self._oleobj_.InvokeTypes(118, LCID, 1, (24, 0), ((3, 1),),factor)
_prop_map_get_ = {
"AlignMode": (121, 2, (3, 0), (), "AlignMode", None),
"AllowScriptAccess": (171, 2, (8, 0), (), "AllowScriptAccess", None),
"BGColor": (140, 2, (8, 0), (), "BGColor", None),
"BackgroundColor": (123, 2, (3, 0), (), "BackgroundColor", None),
"Base": (136, 2, (8, 0), (), "Base", None),
"DeviceFont": (138, 2, (11, 0), (), "DeviceFont", None),
"EmbedMovie": (139, 2, (11, 0), (), "EmbedMovie", None),
"FlashVars": (170, 2, (8, 0), (), "FlashVars", None),
"FrameNum": (107, 2, (3, 0), (), "FrameNum", None),
"InlineData": (191, 2, (13, 0), (), "InlineData", None),
"Loop": (106, 2, (11, 0), (), "Loop", None),
"Menu": (135, 2, (11, 0), (), "Menu", None),
"Movie": (102, 2, (8, 0), (), "Movie", None),
"MovieData": (190, 2, (8, 0), (), "MovieData", None),
"Playing": (125, 2, (11, 0), (), "Playing", None),
"Quality": (105, 2, (3, 0), (), "Quality", None),
"Quality2": (141, 2, (8, 0), (), "Quality2", None),
"ReadyState": (-525, 2, (3, 0), (), "ReadyState", None),
"SAlign": (134, 2, (8, 0), (), "SAlign", None),
"SWRemote": (159, 2, (8, 0), (), "SWRemote", None),
"Scale": (137, 2, (8, 0), (), "Scale", None),
"ScaleMode": (120, 2, (3, 0), (), "ScaleMode", None),
"SeamlessTabbing": (192, 2, (11, 0), (), "SeamlessTabbing", None),
"TotalFrames": (124, 2, (3, 0), (), "TotalFrames", None),
"WMode": (133, 2, (8, 0), (), "WMode", None),
}
_prop_map_put_ = {
"AlignMode": ((121, LCID, 4, 0),()),
"AllowScriptAccess": ((171, LCID, 4, 0),()),
"BGColor": ((140, LCID, 4, 0),()),
"BackgroundColor": ((123, LCID, 4, 0),()),
"Base": ((136, LCID, 4, 0),()),
"DeviceFont": ((138, LCID, 4, 0),()),
"EmbedMovie": ((139, LCID, 4, 0),()),
"FlashVars": ((170, LCID, 4, 0),()),
"FrameNum": ((107, LCID, 4, 0),()),
"InlineData": ((191, LCID, 4, 0),()),
"Loop": ((106, LCID, 4, 0),()),
"Menu": ((135, LCID, 4, 0),()),
"Movie": ((102, LCID, 4, 0),()),
"MovieData": ((190, LCID, 4, 0),()),
"Playing": ((125, LCID, 4, 0),()),
"Quality": ((105, LCID, 4, 0),()),
"Quality2": ((141, LCID, 4, 0),()),
"SAlign": ((134, LCID, 4, 0),()),
"SWRemote": ((159, LCID, 4, 0),()),
"Scale": ((137, LCID, 4, 0),()),
"ScaleMode": ((120, LCID, 4, 0),()),
"SeamlessTabbing": ((192, LCID, 4, 0),()),
"WMode": ((133, LCID, 4, 0),()),
}
class _IShockwaveFlashEvents:
"""Event interface for Shockwave Flash"""
CLSID = CLSID_Sink = IID('{D27CDB6D-AE6D-11CF-96B8-444553540000}')
coclass_clsid = IID('{D27CDB6E-AE6D-11CF-96B8-444553540000}')
_public_methods_ = [] # For COM Server support
_dispid_to_func_ = {
150 : "OnFSCommand",
1958 : "OnProgress",
-609 : "OnReadyStateChange",
}
def __init__(self, oobj = None):
if oobj is None:
self._olecp = None
else:
import win32com.server.util
from win32com.server.policy import EventHandlerPolicy
cpc=oobj._oleobj_.QueryInterface(pythoncom.IID_IConnectionPointContainer)
cp=cpc.FindConnectionPoint(self.CLSID_Sink)
cookie=cp.Advise(win32com.server.util.wrap(self,
usePolicy=EventHandlerPolicy))
self._olecp,self._olecp_cookie = cp,cookie
def __del__(self):
try:
self.close()
except pythoncom.com_error:
pass
def close(self):
if self._olecp is not None:
cp,cookie,self._olecp,self._olecp_cookie =
self._olecp,self._olecp_cookie,None,None
cp.Unadvise(cookie)
def _query_interface_(self, iid):
import win32com.server.util
if iid==self.CLSID_Sink: return win32com.server.util.wrap(self)
# Event Handlers
# If you create handlers, they should have the following prototypes:
# def OnFSCommand(self, command=defaultNamedNotOptArg,
args=defaultNamedNotOptArg): pass
# def OnProgress(self, percentDone=defaultNamedNotOptArg):
# def OnReadyStateChange(self, newState=defaultNamedNotOptArg):
from win32com.client import CoClassBaseClass
class FlashObjectInterface(CoClassBaseClass): # A CoClass
# IFlashObjectInterface Interface
CLSID = IID('{D27CDB71-AE6D-11CF-96B8-444553540000}')
coclass_sources = [
]
coclass_interfaces = [
]
class FlashProp(CoClassBaseClass): # A CoClass
# Macromedia Flash Player Properties
CLSID = IID('{1171A62F-05D2-11D1-83FC-00A0C9089C5A}')
coclass_sources = [
]
coclass_interfaces = [
]
# This CoClass is known by the name 'ShockwaveFlash.ShockwaveFlash.1'
class ShockwaveFlash(CoClassBaseClass): # A CoClass
# Shockwave Flash
CLSID = IID('{D27CDB6E-AE6D-11CF-96B8-444553540000}')
coclass_sources = [
_IShockwaveFlashEvents,
]
default_source = _IShockwaveFlashEvents
coclass_interfaces = [
IShockwaveFlash,
]
default_interface = IShockwaveFlash
IDispatchEx_vtables_dispatch_ = 1
IDispatchEx_vtables_ = [
(('GetDispID', 'bstrName', 'grfdex', 'pid'), 1610743808, (1610743808, (),
[(8, 1, None, None), (19, 1, None, None), (16387, 2, None, None)], 1, 1, 4,
0, 28, (3, 0, None, None), 0)),
(('RemoteInvokeEx', 'id', 'lcid', 'dwFlags', 'pdp', 'pvarRes', 'pei',
'pspCaller', 'cvarRefArg', 'rgiRefArg', 'rgvarRefArg'), 1610743809,
(1610743809, (), [(3, 1, None, None), (19, 1, None, None), (19, 1, None,
None), (36, 1, None, None), (16396, 2, None, None), (36, 2, None, None),
(13, 1, None, "IID('{6D5140C1-7436-11CE-8034-00AA006009FA}')"), (3, 1, None,
None), (16387, 1, None, None), (16396, 3, None, None)], 1, 1, 4, 0, 32, (3,
0, None, None), 0)),
(('DeleteMemberByName', 'bstrName', 'grfdex'), 1610743810, (1610743810, (),
[(8, 1, None, None), (19, 1, None, None)], 1, 1, 4, 0, 36, (3, 0, None,
None), 0)),
(('DeleteMemberByDispID', 'id'), 1610743811, (1610743811, (), [(3, 1, None,
None)], 1, 1, 4, 0, 40, (3, 0, None, None), 0)),
(('GetMemberProperties', 'id', 'grfdexFetch', 'pgrfdex'), 1610743812,
(1610743812, (), [(3, 1, None, None), (19, 1, None, None), (16403, 2, None,
None)], 1, 1, 4, 0, 44, (3, 0, None, None), 0)),
(('GetMemberName', 'id', 'pbstrName'), 1610743813, (1610743813, (), [(3, 1,
None, None), (16392, 2, None, None)], 1, 1, 4, 0, 48, (3, 0, None, None),
0)),
(('GetNextDispID', 'grfdex', 'id', 'pid'), 1610743814, (1610743814, (),
[(19, 1, None, None), (3, 1, None, None), (16387, 2, None, None)], 1, 1, 4,
0, 52, (3, 0, None, None), 0)),
(('GetNameSpaceParent', 'ppunk'), 1610743815, (1610743815, (), [(16397, 2,
None, None)], 1, 1, 4, 0, 56, (3, 0, None, None), 0)),
]
IFlashFactory_vtables_dispatch_ = 0
IFlashFactory_vtables_ = [
]
IFlashObjectInterface_vtables_dispatch_ = 1
IFlashObjectInterface_vtables_ = [
]
IServiceProvider_vtables_dispatch_ = 0
IServiceProvider_vtables_ = [
(('RemoteQueryService', 'guidService', 'riid', 'ppvObject'), 1610678272,
(1610678272, (), [(36, 1, None, None), (36, 1, None, None), (16397, 2, None,
None)], 1, 1, 4, 0, 12, (3, 0, None, None), 0)),
]
IShockwaveFlash_vtables_dispatch_ = 1
IShockwaveFlash_vtables_ = [
(('ReadyState', 'pVal'), -525, (-525, (), [(16387, 10, None, None)], 1, 2,
4, 0, 28, (3, 0, None, None), 0)),
(('TotalFrames', 'pVal'), 124, (124, (), [(16387, 10, None, None)], 1, 2,
4, 0, 32, (3, 0, None, None), 0)),
(('Playing', 'pVal'), 125, (125, (), [(16395, 10, None, None)], 1, 2, 4, 0,
36, (3, 0, None, None), 0)),
(('Playing', 'pVal'), 125, (125, (), [(11, 1, None, None)], 1, 4, 4, 0, 40,
(3, 0, None, None), 0)),
(('Quality', 'pVal'), 105, (105, (), [(16387, 10, None, None)], 1, 2, 4, 0,
44, (3, 0, None, None), 0)),
(('Quality', 'pVal'), 105, (105, (), [(3, 1, None, None)], 1, 4, 4, 0, 48,
(3, 0, None, None), 0)),
(('ScaleMode', 'pVal'), 120, (120, (), [(16387, 10, None, None)], 1, 2, 4,
0, 52, (3, 0, None, None), 0)),
(('ScaleMode', 'pVal'), 120, (120, (), [(3, 1, None, None)], 1, 4, 4, 0,
56, (3, 0, None, None), 0)),
(('AlignMode', 'pVal'), 121, (121, (), [(16387, 10, None, None)], 1, 2, 4,
0, 60, (3, 0, None, None), 0)),
(('AlignMode', 'pVal'), 121, (121, (), [(3, 1, None, None)], 1, 4, 4, 0,
64, (3, 0, None, None), 0)),
(('BackgroundColor', 'pVal'), 123, (123, (), [(16387, 10, None, None)], 1,
2, 4, 0, 68, (3, 0, None, None), 0)),
(('BackgroundColor', 'pVal'), 123, (123, (), [(3, 1, None, None)], 1, 4, 4,
0, 72, (3, 0, None, None), 0)),
(('Loop', 'pVal'), 106, (106, (), [(16395, 10, None, None)], 1, 2, 4, 0,
76, (3, 0, None, None), 0)),
(('Loop', 'pVal'), 106, (106, (), [(11, 1, None, None)], 1, 4, 4, 0, 80,
(3, 0, None, None), 0)),
(('Movie', 'pVal'), 102, (102, (), [(16392, 10, None, None)], 1, 2, 4, 0,
84, (3, 0, None, None), 0)),
(('Movie', 'pVal'), 102, (102, (), [(8, 1, None, None)], 1, 4, 4, 0, 88,
(3, 0, None, None), 0)),
(('FrameNum', 'pVal'), 107, (107, (), [(16387, 10, None, None)], 1, 2, 4,
0, 92, (3, 0, None, None), 0)),
(('FrameNum', 'pVal'), 107, (107, (), [(3, 1, None, None)], 1, 4, 4, 0, 96,
(3, 0, None, None), 0)),
(('SetZoomRect', 'left', 'top', 'right', 'bottom'), 109, (109, (), [(3, 1,
None, None), (3, 1, None, None), (3, 1, None, None), (3, 1, None, None)], 1,
1, 4, 0, 100, (3, 0, None, None), 0)),
(('Zoom', 'factor'), 118, (118, (), [(3, 1, None, None)], 1, 1, 4, 0, 104,
(3, 0, None, None), 0)),
(('Pan', 'x', 'y', 'mode'), 119, (119, (), [(3, 1, None, None), (3, 1,
None, None), (3, 1, None, None)], 1, 1, 4, 0, 108, (3, 0, None, None), 0)),
(('Play',), 112, (112, (), [], 1, 1, 4, 0, 112, (3, 0, None, None), 0)),
(('Stop',), 113, (113, (), [], 1, 1, 4, 0, 116, (3, 0, None, None), 0)),
(('Back',), 114, (114, (), [], 1, 1, 4, 0, 120, (3, 0, None, None), 0)),
(('Forward',), 115, (115, (), [], 1, 1, 4, 0, 124, (3, 0, None, None), 0)),
(('Rewind',), 116, (116, (), [], 1, 1, 4, 0, 128, (3, 0, None, None), 0)),
(('StopPlay',), 126, (126, (), [], 1, 1, 4, 0, 132, (3, 0, None, None),
0)),
(('GotoFrame', 'FrameNum'), 127, (127, (), [(3, 1, None, None)], 1, 1, 4,
0, 136, (3, 0, None, None), 0)),
(('CurrentFrame', 'FrameNum'), 128, (128, (), [(16387, 10, None, None)], 1,
1, 4, 0, 140, (3, 0, None, None), 0)),
(('IsPlaying', 'Playing'), 129, (129, (), [(16395, 10, None, None)], 1, 1,
4, 0, 144, (3, 0, None, None), 0)),
(('PercentLoaded', 'percent'), 130, (130, (), [(16387, 10, None, None)], 1,
1, 4, 0, 148, (3, 0, None, None), 0)),
(('FrameLoaded', 'FrameNum', 'loaded'), 131, (131, (), [(3, 1, None, None),
(16395, 10, None, None)], 1, 1, 4, 0, 152, (3, 0, None, None), 0)),
(('FlashVersion', 'version'), 132, (132, (), [(16387, 10, None, None)], 1,
1, 4, 0, 156, (3, 0, None, None), 0)),
(('WMode', 'pVal'), 133, (133, (), [(16392, 10, None, None)], 1, 2, 4, 0,
160, (3, 0, None, None), 0)),
(('WMode', 'pVal'), 133, (133, (), [(8, 1, None, None)], 1, 4, 4, 0, 164,
(3, 0, None, None), 0)),
(('SAlign', 'pVal'), 134, (134, (), [(16392, 10, None, None)], 1, 2, 4, 0,
168, (3, 0, None, None), 0)),
(('SAlign', 'pVal'), 134, (134, (), [(8, 1, None, None)], 1, 4, 4, 0, 172,
(3, 0, None, None), 0)),
(('Menu', 'pVal'), 135, (135, (), [(16395, 10, None, None)], 1, 2, 4, 0,
176, (3, 0, None, None), 0)),
(('Menu', 'pVal'), 135, (135, (), [(11, 1, None, None)], 1, 4, 4, 0, 180,
(3, 0, None, None), 0)),
(('Base', 'pVal'), 136, (136, (), [(16392, 10, None, None)], 1, 2, 4, 0,
184, (3, 0, None, None), 0)),
(('Base', 'pVal'), 136, (136, (), [(8, 1, None, None)], 1, 4, 4, 0, 188,
(3, 0, None, None), 0)),
(('Scale', 'pVal'), 137, (137, (), [(16392, 10, None, None)], 1, 2, 4, 0,
192, (3, 0, None, None), 0)),
(('Scale', 'pVal'), 137, (137, (), [(8, 1, None, None)], 1, 4, 4, 0, 196,
(3, 0, None, None), 0)),
(('DeviceFont', 'pVal'), 138, (138, (), [(16395, 10, None, None)], 1, 2, 4,
0, 200, (3, 0, None, None), 0)),
(('DeviceFont', 'pVal'), 138, (138, (), [(11, 1, None, None)], 1, 4, 4, 0,
204, (3, 0, None, None), 0)),
(('EmbedMovie', 'pVal'), 139, (139, (), [(16395, 10, None, None)], 1, 2, 4,
0, 208, (3, 0, None, None), 0)),
(('EmbedMovie', 'pVal'), 139, (139, (), [(11, 1, None, None)], 1, 4, 4, 0,
212, (3, 0, None, None), 0)),
(('BGColor', 'pVal'), 140, (140, (), [(16392, 10, None, None)], 1, 2, 4, 0,
216, (3, 0, None, None), 0)),
(('BGColor', 'pVal'), 140, (140, (), [(8, 1, None, None)], 1, 4, 4, 0, 220,
(3, 0, None, None), 0)),
(('Quality2', 'pVal'), 141, (141, (), [(16392, 10, None, None)], 1, 2, 4,
0, 224, (3, 0, None, None), 0)),
(('Quality2', 'pVal'), 141, (141, (), [(8, 1, None, None)], 1, 4, 4, 0,
228, (3, 0, None, None), 0)),
(('LoadMovie', 'layer', 'url'), 142, (142, (), [(3, 1, None, None), (8, 1,
None, None)], 1, 1, 4, 0, 232, (3, 0, None, None), 0)),
(('TGotoFrame', 'target', 'FrameNum'), 143, (143, (), [(8, 1, None, None),
(3, 1, None, None)], 1, 1, 4, 0, 236, (3, 0, None, None), 0)),
(('TGotoLabel', 'target', 'label'), 144, (144, (), [(8, 1, None, None), (8,
1, None, None)], 1, 1, 4, 0, 240, (3, 0, None, None), 0)),
(('TCurrentFrame', 'target', 'FrameNum'), 145, (145, (), [(8, 1, None,
None), (16387, 10, None, None)], 1, 1, 4, 0, 244, (3, 0, None, None), 0)),
(('TCurrentLabel', 'target', 'pVal'), 146, (146, (), [(8, 1, None, None),
(16392, 10, None, None)], 1, 1, 4, 0, 248, (3, 0, None, None), 0)),
(('TPlay', 'target'), 147, (147, (), [(8, 1, None, None)], 1, 1, 4, 0, 252,
(3, 0, None, None), 0)),
(('TStopPlay', 'target'), 148, (148, (), [(8, 1, None, None)], 1, 1, 4, 0,
256, (3, 0, None, None), 0)),
(('SetVariable', 'name', 'value'), 151, (151, (), [(8, 1, None, None), (8,
1, None, None)], 1, 1, 4, 0, 260, (3, 0, None, None), 0)),
(('GetVariable', 'name', 'pVal'), 152, (152, (), [(8, 1, None, None),
(16392, 10, None, None)], 1, 1, 4, 0, 264, (3, 0, None, None), 0)),
(('TSetProperty', 'target', 'property', 'value'), 153, (153, (), [(8, 1,
None, None), (3, 1, None, None), (8, 1, None, None)], 1, 1, 4, 0, 268, (3,
0, None, None), 0)),
(('TGetProperty', 'target', 'property', 'pVal'), 154, (154, (), [(8, 1,
None, None), (3, 1, None, None), (16392, 10, None, None)], 1, 1, 4, 0, 272,
(3, 0, None, None), 0)),
(('TCallFrame', 'target', 'FrameNum'), 155, (155, (), [(8, 1, None, None),
(3, 1, None, None)], 1, 1, 4, 0, 276, (3, 0, None, None), 0)),
(('TCallLabel', 'target', 'label'), 156, (156, (), [(8, 1, None, None), (8,
1, None, None)], 1, 1, 4, 0, 280, (3, 0, None, None), 0)),
(('TSetPropertyNum', 'target', 'property', 'value'), 157, (157, (), [(8, 1,
None, None), (3, 1, None, None), (5, 1, None, None)], 1, 1, 4, 0, 284, (3,
0, None, None), 0)),
(('TGetPropertyNum', 'target', 'property', 'pVal'), 158, (158, (), [(8, 1,
None, None), (3, 1, None, None), (16389, 10, None, None)], 1, 1, 4, 0, 288,
(3, 0, None, None), 0)),
(('TGetPropertyAsNumber', 'target', 'property', 'pVal'), 172, (172, (),
[(8, 1, None, None), (3, 1, None, None), (16389, 10, None, None)], 1, 1, 4,
0, 292, (3, 0, None, None), 0)),
(('SWRemote', 'pVal'), 159, (159, (), [(16392, 10, None, None)], 1, 2, 4,
0, 296, (3, 0, None, None), 0)),
(('SWRemote', 'pVal'), 159, (159, (), [(8, 1, None, None)], 1, 4, 4, 0,
300, (3, 0, None, None), 0)),
(('FlashVars', 'pVal'), 170, (170, (), [(16392, 10, None, None)], 1, 2, 4,
0, 304, (3, 0, None, None), 0)),
(('FlashVars', 'pVal'), 170, (170, (), [(8, 1, None, None)], 1, 4, 4, 0,
308, (3, 0, None, None), 0)),
(('AllowScriptAccess', 'pVal'), 171, (171, (), [(16392, 10, None, None)],
1, 2, 4, 0, 312, (3, 0, None, None), 0)),
(('AllowScriptAccess', 'pVal'), 171, (171, (), [(8, 1, None, None)], 1, 4,
4, 0, 316, (3, 0, None, None), 0)),
(('MovieData', 'pVal'), 190, (190, (), [(16392, 10, None, None)], 1, 2, 4,
0, 320, (3, 0, None, None), 0)),
(('MovieData', 'pVal'), 190, (190, (), [(8, 1, None, None)], 1, 4, 4, 0,
324, (3, 0, None, None), 0)),
(('InlineData', 'ppIUnknown'), 191, (191, (), [(16397, 10, None, None)], 1,
2, 4, 0, 328, (3, 0, None, None), 0)),
(('InlineData', 'ppIUnknown'), 191, (191, (), [(13, 1, None, None)], 1, 4,
4, 0, 332, (3, 0, None, None), 0)),
(('SeamlessTabbing', 'pVal'), 192, (192, (), [(16395, 10, None, None)], 1,
2, 4, 0, 336, (3, 0, None, None), 0)),
(('SeamlessTabbing', 'pVal'), 192, (192, (), [(11, 1, None, None)], 1, 4,
4, 0, 340, (3, 0, None, None), 0)),
]
RecordMap = {
}
CLSIDToClassMap = {
'{D27CDB6C-AE6D-11CF-96B8-444553540000}' : IShockwaveFlash,
'{D27CDB6D-AE6D-11CF-96B8-444553540000}' : _IShockwaveFlashEvents,
'{D27CDB6E-AE6D-11CF-96B8-444553540000}' : ShockwaveFlash,
'{D27CDB71-AE6D-11CF-96B8-444553540000}' : FlashObjectInterface,
'{1171A62F-05D2-11D1-83FC-00A0C9089C5A}' : FlashProp,
}
CLSIDToPackageMap = {}
win32com.client.CLSIDToClass.RegisterCLSIDsFromDict( CLSIDToClassMap )
VTablesToPackageMap = {}
VTablesToClassMap = {
'{D27CDB72-AE6D-11CF-96B8-444553540000}' : 'IFlashObjectInterface',
'{D27CDB6C-AE6D-11CF-96B8-444553540000}' : 'IShockwaveFlash',
'{A6EF9860-C720-11D0-9337-00A0C90DCAA9}' : 'IDispatchEx',
'{D27CDB70-AE6D-11CF-96B8-444553540000}' : 'IFlashFactory',
'{6D5140C1-7436-11CE-8034-00AA006009FA}' : 'IServiceProvider',
}
NamesToIIDMap = {
'_IShockwaveFlashEvents' : '{D27CDB6D-AE6D-11CF-96B8-444553540000}',
'IFlashObjectInterface' : '{D27CDB72-AE6D-11CF-96B8-444553540000}',
'IFlashFactory' : '{D27CDB70-AE6D-11CF-96B8-444553540000}',
'IShockwaveFlash' : '{D27CDB6C-AE6D-11CF-96B8-444553540000}',
'IServiceProvider' : '{6D5140C1-7436-11CE-8034-00AA006009FA}',
'IDispatchEx' : '{A6EF9860-C720-11D0-9337-00A0C90DCAA9}',
}
"Kartic" <removethis.kartic.krishnamurthy at gmail.com> a écrit dans le message
de news: 6URce.2055$2f2.1166 at newssvr19.news.prodigy.com...
> The Great 'Exeem' uttered these words on 4/30/2005 11:37 AM:
>> Kartic,
>>
>> Thanks for your reply,
>>
>> I already use the wxPython to embbed my flash animation
>>
>> ###
>> from wxPython.lib.activexwrapper import MakeActiveXClass
>>
>> ActiveXWrapper = MakeActiveXClass(flashActiveXLib.ShockwaveFlash,
>> eventClass=None, eventObj=self)
>>
>> Flash = ActiveXWrapper( self, -1, style=wxSUNKEN_BORDER)
>> ####
>>
>> It work fine and i can control my flash animation from Python without
>> problem..
>>
>> But the Wrapper need the flash.ock to be installed on the user system in
>> order to work,
>> and i would like to make an executable application that include the
>> flash.ocx or load it on startup for
>> users who doesn't have the flash player installed.
>> I would like also to be able to load a flash animation from memory and
>> not to load it from external file.
>>
>> Don't know if you understand me.. Take a look at
>> http://www.flashplayercontrol.com/ .. I'd like such a solution for
>> Python,
>> don't know if i can use that dll from Python or make a module myself..
>>
>> Anyway, thank a lot for your interest
>>
>> Dan
>
>
> Dan,
>
> Ah! I see what you are trying to do. While I don't have a working piece of
> code to share with you, I can give you a few ideas that you could
> consider:
>
> 1. Supply the Macromedia OCX with your app. Try to use the wxActivex class
> and if that fails, register your copy of the OCX. You can do this either
> using a batch file invoking regsvr32 or use Win32 to register. The flip
> side: The flash will be loaded from a file rather than memory.
>
> 2. Wrap the flashplayercontrol.com's DLL in an Activex control using VB
> and distribute your OCX. And then use wxActivex to access your OCX.
>
> 3. Use SWIG to generate Python bindings for the DLL. I have never done
> this and I am sure some of the more erudite members of the newsgroup can
> shed some light.
>
> 4. Call the supplied DLL using Ctypes. In this case, you can convert the
> example under the "Features" link of that site in DLL calls using Ctypes.
> Question: How will that integrate with wx?
>
> Hope that helped a bit.
>
> Thanks,
> -Kartic
More information about the Python-list
mailing list