End Google Ads 201810 - BS.net 01 --> Greetings - my first question so please forgive any faux-pas I make..

My Win32 application loads a number of embedded Web browsers, each of which load and play a Flash movie.

I want to find a way to control the volume of each loaded Flash movie independently of each other. My target platform is Windows XP so I can't use the mixer APIs that I hear are available on Vista and 7.

Here is the code with error checking etc. removed (I'm using a very simple Flash API call to test)

HMODULE hFlashDLL = GetModuleHandle( "NPSWF32.dll" );
typedef void (__stdcall *flash_func)();
flash_func flash_stop_func = (flash_func)GetProcAddress( hFlashDLL, "native_ShockwaveFlash_StopPlay" );
flash_stop_func();

hFlashDLL and flash_stop_func appear to be valid but when I call the function itself I get an access violation.

Should this work and I'm missing something obvious in my code or is this sort of thing just disallowed in Win32?

Any pointers appreciated.