Problem
When we try to save a form containing a flash control, VB6 shows an error message.
---------------------------
System Error &H80004005 (-2147467259). Unspecified error
---------------------------
If we open an old project which already have a flash control, there is no problem in saving or compiling the app as long as we dont open the form containing the flash control.
*Adding Flash Control or Adding any control to a form having a flash control
*Opening a form with flash control and/or changing property of existing control
And then trying to save it produces errors.
Solution
Downgrading to flash10e.ocx seems to fix the problem. Flash10f.ocx, Flash10g.ocx, Flash10h.ocx, Flash10i.ocx (the latest) all having the same problem. i tested all these controls.
Fortunately its not happening at runtime. And if it ever happens in the future then solution would be to use Reg-Free COM Manifest file and include the older version of Flash control with your application.
Step 1: Uninstall flash, we need to use the adobe flash uninstaller, because the flash installer leave a check in the registry and doesnt allow us to install an older version. so 1st uninstall flash using the instruction provided here
Step 2: Getting Old Version. oldapps.com has Flash10d.ocx installer, download version 10.0.42.34 from there OR Adobe provides old version of their player on this page, you need to download the fp10_archive.zip 157 MB zip file and then go to \10r45_2 folder to find flashplayer10r45_2_winax.exe which is the Flash10e setup.
fp10.1_archive.zip
\10_1r53_64 = Flash10h.ocx
\10_1r82_76 = Flash10i.ocx
fp10_archive.zip
\10r32_18 = Flash10c.ocx
\10r42_34 = Flash10d.ocx
\10r45_2 = Flash10e.ocx
Searching in Adobe forum here i found many people having the same problem. If someone see this blog post and have any solution then please suggest. Thanks!
Update: Sep 6, 2011.
These workaround dont require you to downgrade the control and will work on any flash version installed.
Workaround 1: For compiling existing application. If you have a multi-form application then you can safely compile the application If you dont open the form containing the flash control.
Workaround 2: Manual Edit method for adding flash control to new app. Add and code the flash control, then remove the control, then add a picturebox with same name as your flash control, then save and exit VB6 IDE. now open your VB Form in notepad and find the picturebox control replace the picturebox code with the code below, modify the top, left values and also other value you want to change.
ShockwaveFlashObjectsCtl.ShockwaveFlash Flash1
Height = 3615
Left = 360
TabIndex = 1
Top = 960
Width = 4815
_cx = 8493
_cy = 6376
FlashVars = ""
Movie = ""
Src = ""
WMode = "Window"
Play = "-1"
Loop = "-1"
Quality = "High"
SAlign = ""
Menu = "-1"
Base = ""
AllowScriptAccess= ""
Scale = "ShowAll"
DeviceFont = "0"
EmbedMovie = "0"
BGColor = "000000"
SWRemote = ""
MovieData = ""
SeamlessTabbing = "1"
Profile = "0"
ProfileAddress = ""
ProfilePort = "0"
AllowNetworking = "all"
AllowFullScreen = "false"
End
now move to top of the code and just below VERSION 5.00 add the following line.Object = "{D27CDB6B-AE6D-11CF-96B8-444553540000}#1.0#0"; "Flash10e.ocx"
save the file, start VB6 and compile your project (without opening the form).