Distributing VB.Net app with Flash Player (AxIntrop and Interop included)

PROBLEM: My VB.Net app uses the Flash Player but will not run on a fresh Windows XP or Vista machine unless I install the flash player via Adobe's website or via the adobe flash player 10 install msi.  

I have added the flash player to my application which Visual Studio 2005 kindly created wrappers for (AxInterop.ShockwaveFlashObjects.dll and Interop.ShockwaveFlashObjects.dll)  These wrapped c:\windows\system32\macromed\flash\flash.ocx

The development machine has since been updated to flash 10 (c:\windows\system32\macromed\flash\flash10a.ocx).  

Part 1. it appears VS2005 now points to flash10a.ocx, but how can I make sure the wrappers do as well?
Part 2. The setup seems to automatically include the flash10a.ocx file.  The register property for this file is set to vsdrfDoNotRegister.  Should I switch it to vsdrfCOMSelfReg?
Part 3. Any reason why this would not work on it's own?   It is preferable to to not have to run the adobe msi or download the player to get this to work.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Vadim RappCommented:
I doubt this is all good idea. What's going to happen if you wrap your very own flash, so yourapplication relies on it, and in several months the user updates hisflash to the next version? which is very likely.

Flash player is now on everyone's machine, every website is using it. I think it would be wise to leave it to the user. All the websites that are using Flash are not shy to say "you need flash player to see this site, go and install from www.adobe.com". You shouldn't be either.

If you still decide that you must deliver Flash to the user yourself, I think all you have to do is add the version you want to the references of your project.

>   The register property for this file is set to vsdrfDoNotRegister.  Should I switch it to vsdrfCOMSelfReg?
the only reliable way to find out is to try both ways. By the way, the recommended way is to extract all the registry information from the COM object and create it by the installation - rather than allow the COM object to self-register.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
straubtmAuthor Commented:
Unfortunately, the winform with the reference to the shockwaveflash obj crashes on initialization if flash is not installed.  So, trapping for it like you do on a website is not quite as easy.
straubtmAuthor Commented:
Okay, You've convinced me that my idea is not a good one.  
I now plan on checking the registry for the existance of the Flash Player...
(if HKCR\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000} exists)
and get the version number here... (HKLM\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash\CurVer).

If it doesn't exist or isn't the right version, how might I install the right version from the web?
Vadim RappCommented:
Don't install the right version from the web. Adobe may change the address. User can be behind the proxy. Use may have no permission to install by policy. And so forth.

msgbox "Dude, we need Flash Player here. Last time we saw it at www.adobe.com. Come back when you have installed it, ciao!",vbCritical
straubtmAuthor Commented:
Gotcha.  Well, I decided to use the Bootstrapper Manifest Generator from CodePlex and check to see if they have Flash installed via the registry.  If not, it downloads and installs the latest version from my website... Adobe granted me rights to redistribute it... so problem solved.  Thanks for helping me think this through.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.