Ambiguous symbol link error when imported flash control

July 27, 2006

I have import flash activeX control to my WTL control, when I need to handle the flash control event, I add IDispEventImpl to the inherit list, but I get some errors:

error C2872: ‘DISPPARAMS’ : ambiguous symbol
could be ‘d:\\Develop\\Microsoft Visual Studio .NET 2003\\Vc7\\PlatformSDK\\Include\\OAIdl.h(701) : tagDISPPARAMS DISPPARAMS’
or ‘e:\\Project\\IM\\Src\\FlashWrapper\\Debug\\flash8.tlh(523) : ShockwaveFlashObjects::DISPPARAMS’

After look up the source both in ATL and Flash tlh file, I find out that flash control generate DISPPARAMS and EXCEPINFO structures same as the ATL does. So I can’t use the showckwaveFlashObjects namespace. I make these changes:

#import “C:\\WINDOWS\\system32\\Macromed\\Flash\\flash8.ocx”
using namespace ShockwaveFlashObjects;

to

#import “C:\\WINDOWS\\system32\\Macromed\\Flash\\flash8.ocx”
/*
Don’t user ShockwaveFlashObjects namespace, because if you inherit
IDispEventImpl you will get EXCEPINFO ambiguous error!
*/
using ShockwaveFlashObjects::IShockwaveFlash;

posted in Develop by Louis

Follow comments via the RSS Feed | Leave a comment | Trackback URL

Leave Your Comment

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org