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;

    }
}
Beispiel #2
0
/*************************************************************
* 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 */