[wdmaudiodev] Re: IKsControl

  • From: Mark Walker <furface@xxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 02 Feb 2010 18:01:59 -0800

Thanks Tim & Matthew for responding. In reference to NTDDI_VERSION >= NTDDI_WINXP I'm writing a user mode application that us attempting to access special features of an audio driver. Is NTDDI_VERSION relevant for user mode applications? The driver I'm trying to reach targets XP and above, though.


I tried ksproxy.h as well, but it doesn't build. I kludged ksproxy.h to get rid of some defines and it built, but it still doesn't give me a good pointer when I run it. Do I have to explicitly expose IKsControl to user mode applications in my driver?

Thanks.

Mark Walker wrote:
...
Specifically, I'm having trouble with

One you have an IBaseFilter, you just fetch an IKsControl interface
from it:
    CComQIPtr<IKsControl> pKsControl( myFilter );

The problem is that VC++ 2008 doesn't include IKsControl properly, so
it doesn't build.  If I use:

#include "ks.h"

it still tells me that IKsControl is undefined.

It should be in there, but it's also present in ksproxy.h, which
sometimes has fewer conflicts with other include files.


hr = pBaseFilter->QueryInterface(IID_IKsControl, (void **) &pControl);

returns that the interface doesn't exist.  I'm not using smart
pointers because I'm using VC++ express, no ATL.

Ouch.  However, even without ATL, you still have _com_ptr_t available to
you, which has many of the same capabilities.


******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: