Hi-
I am the author of MetaGuide, which is a C++ DirectShow app that connects to video cameras via DirectShow and provides guiding and collimation tools.
So - I am talking about C++ code that is trying to set the size of the capture frame - based on the enumerated capabilities provided by the camera.
Normally you ask the camera to enumerate its resolutions - and then you select the format that is a best match to what you want. And normally you can just tell the camera to SetFormat for one of the resolutions that it says it supports. But the ASI DirectShow driver gives an error if you ever try to set two different formats in succession. Other cameras do allow this.
The driver returns 0x80040200, which is "Invalid media type". But the format comes directly from the camera as one that it supports and I haven't changed it at all.
I see that applications like SharpCap and AmCap do allow changing the capture resolution of the camera - but they appear to do it using the pin's property page - rather than using the DirectShow API as I am doing.
Does this help answer your question? It may have something to do with an obscure x64 vs. x32 issue. But I first wanted to confirm that your dshow driver does allow normal usage of SetFormat.
If this still isn't clear I can try to create a small standalone C++ example that works with other cameras, but does not work with yours.
Thanks for any assistance-
Frank