BOOL AddressSupportsAudio(IN ITAddress *pAddress) { // // get the address's ITMediaSupport so we can check // the media type it supports // ITMediaSupport *pMediaSupport = NULL; HRESULT hr = pAddress->QueryInterface(IID_ITMediaSupport, (void**)&pMediaSupport); if (FAILED(hr)) { LogError("AddressSupportsAudio: " "Failed to QI address for ITMediaSupport"); return FALSE; } // // does the address support audio? // VARIANT_BOOL bAudioSupported = VARIANT_FALSE; hr = pMediaSupport->QueryMediaType(TAPIMEDIATYPE_AUDIO, &bAudioSupported); pMediaSupport->Release(); pMediaSupport = NULL; if (FAILED(hr)) { LogError("AddressSupportsAudio: Failed to QueryMediaType"); return FALSE; } if (VARIANT_TRUE == bAudioSupported) { LogMessage("AddressSupportsAudio: audio supported on this address"); return TRUE; } else { LogMessage("AddressSupportsAudio: " "audio NOT supported on this address"); return FALSE; } }
/************************************************************* * AddressSupportsMediaType * *--------------------------* * Return: * TRUE iff the given address supports the given media **************************************************************/ BOOL AddressSupportsMediaType( ITAddress * pAddress, long lMediaType ) { VARIANT_BOOL bSupport = VARIANT_FALSE; ITMediaSupport * pMediaSupport; if ( SUCCEEDED( pAddress->QueryInterface( IID_ITMediaSupport, (void **)&pMediaSupport ) ) ) { // does it support this media type? pMediaSupport->QueryMediaType( lMediaType, &bSupport ); pMediaSupport->Release(); } return (bSupport == VARIANT_TRUE); } /* AddressSupportsMediaType */