RE: Custom Audio Endpoint rdpendp.dll for 2008 R2
-
Monday, June 11, 2012 7:13 PM
Hi,
We have implemented our own RdpEndp.dll
Most of the functionality is there and working so far, except of couple of unknowns.
We are receiving this IID: {604E2AE7-C4C5-4032-93FF-88B26CDD75B8} In IAudioSessionControl::QueryInterface.
We have looked it up in the includes (VS, SDK, DDK) and on Google - can’t find any info on what it is.
Can anyone tell us what this IID means?
Thanks!
wind15
All Replies
-
Monday, June 11, 2012 7:52 PMModerator
That's a private interface that Windows uses, so I'm not going to tell you its name or its methods ;-)
As with other interfaces you do not implement, return E_NOINTERFACE and set the output pointer to nullptr.
Matthew van Eerde
-
Monday, June 11, 2012 8:27 PM
The IID in question is sent by SndVol.exe. The IID is sent in responce to the OnSessionCreated
pIAudioSessionNotification->OnSessionCreated(NewSession);
I do exactly that: "return E_NOINTERFACE and set the output pointer to nullptr".
Once I return E_NOINTERFACE, the SndVol.exe doesn't seem to care to enumerate and display the new session in it's GUI. So I beliefve the IID in question is the show stopper for the SndVol.exe.
If not, then how SndVol.exe enumerates and displays the sessions?
wind15
-
Monday, June 11, 2012 9:18 PMModerator
sndvol.exe uses the internal Windows interface, which you will not be able to implement.
To implement a custom audio endpoint, there is a certain minimal set of interfaces you need to implement:
- IAudioOutputEndpointRT
- IAudioInputEndpointRT (if you do capture)
These will be activated off of your IMMDevice.
There is another set of interfaces that you can implement if they are natural for your solution - for example, IAudioEndpointVolume. It is not necessary to implement them, though. If you don't implement them, return E_NOINTERFACE and set your output pointer to NULL. Windows will then fall back on the default Windows implementations of these interfaces.
Finally there is a set of interfaces that you cannot implement because Windows depends on private implementations. It seems IAudioSessionControl is one of these.
Matthew van Eerde
-
Monday, June 11, 2012 10:10 PM
Maurits,
We have gone this route once before.
Please see the original question: Custom Audio Endpoint rdpendp.dll for 2008 R2.
You have never answered how to get IAudioOutputEndpointRT to get called.
IAudioOutputEndpointRT is not a part of IMMDevice - according to your own documentation!!!
IAudioOutputEndpointRT never called in context of IMMDevice!!!
E_NOINTERFACE is not working everywhere as you suggest. Appliacations quit working if they see E_NOINTERFACE - so I need to implement all functionality.
Is there a way to get more information other than trough this forum?
wind15
-
Tuesday, June 12, 2012 12:12 AMModerator
You can ask in the Remote Desktop Services forum:
http://social.technet.microsoft.com/Forums/en/winserverTS/threads
You can open a support case:
http://support.microsoft.com/contactus/
If the issue is determined to be a Microsoft bug, the support fee is waived.
Matthew van Eerde


