I don't think it is possible given that COMDecoder is protected.
class AC3Filter : public CTransformFilter, public IAC3Filter, public ISpecifyPropertyPages
{
protected:
bool tray; // show tray icon
AC3FilterTray tray_ctl; // tray icon control
CPUMeter cpu; // CPU usage meter
COMDecoder dec; // decoder & processor
As you can see, COMDecoder is protected and is the COM class that inherits the IDecoder interface.
class COMDecoder : public Filter, public IDecoder, public IAudioProcessor
IDecoder is the interface that has these two functions:
// Use SPDIF if possible
STDMETHODIMP get_use_spdif(bool *use_spdif);
STDMETHODIMP set_use_spdif(bool use_spdif);
{
... which I was hoping to set programmatically as well. Attempting to use such an interface despite the protected access results in:
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.
This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
The other interfaces that are public to IAC3Filter are programmatically useable.
Anybody know why COMDecoder is protected? Just curious what good reasons there might be.
Peace and best regards,
Charles