Looks like alignment padding and shouldn't hurt anything, but can be confusing if you're looking at the raw data and not expecting it. If you really wanted to you could change structures to align on a byte.
Unless you are forced to decide yourself the memory layout (for example to be compatible with some other pre-existing code) don't worry about that.
Your arch1 and arch2 are distinct arrays and the compiler place them at the beginning of a 32bit block so that the processor access speed can be optimum.
You can alter this behavior with the #pragma pack directive, setting the packing to 1 byte you'll get what you expected. But -if you're not explicitly required to do that- let the compiler to do its job and decide by itself how to place variables.
I need to change the playback rate of a video file. The IMediaSeeking interface has a SetRate method which is supposed to do this - but I get an E_INVALIDARG when I pass the new rate. I have FiltrGraph manager which has a Source filter (using the AddSourceFilter method), a GrabberFilter and a NULL Renderer. (Changing the Null Renderer to a default renderer did not change the result - I am still not able to show the video in slow motion or fast forward (speeded up). If SetRate is the correct way to do it, is there sample code I can look at? (Will be happy to post my code here if needed). If there is another way to do this, I am open to all suggestions.
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)
I did and I get the same access violation error. Even if it worked though, wouldn't that just let me control an instance of Flash that I load versus an instance loaded by the browser (which is what I want)?
I think each browser instance must load it's own version of the plugin or controlling Flash parameters in one would control them all.
hFlashDLL and flash_stop_func appear to be valid but when I call the function itself I get an access violation.
My apologies, I missed this in your original post. Is there any more information from the access violation to give any indication of what it is complaining about? Also are you sure that native_ShockwaveFlash_StopPlay does not require any parameters?
>> Also are you sure that native_ShockwaveFlash_StopPlay does not require any parameters?
That was my thought too Richard - docs are a bit thin on the ground and that function name doesn't match any in the the other Flash API docs I've seen so I'm thinking those calls are wrapped somehow and that my part of the problem.
Nothing more useful in the error message as far as I can tell.
I just Googled native_ShockwaveFlash_StopPlay and found one hit; someone else complaining of the same issue. My only suggestion is to try and get some documentation on this library from someone else around the world.