Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include <precomp.h>
// IID_IProperty
IID IID_IProperty = { /* 4e94d3e0-793e-11d0-8ef0-00a0c90541f4 */ 0x4e94d3e0, 0x793e, 0x11d0, {0x8e, 0xf0, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0xf4} };
// default implementations for SetNetworkInterface
HRESULT STDMETHODCALLTYPE SendMediaStream::SetNetworkInterface(IUnknown *pUnknown) { HRESULT hr=S_OK; IRTPSend *pRTPSend=NULL;
if (m_DPFlags & DPFLAG_STARTED_SEND) { return DPR_IO_PENDING; // anything better to return ?
}
if (pUnknown != NULL) { hr = pUnknown->QueryInterface(IID_IRTPSend, (void**)&pRTPSend); }
if (SUCCEEDED(hr)) { if (m_pRTPSend) { m_pRTPSend->Release(); } m_pRTPSend = pRTPSend; ZeroMemory(&m_RTPStats,sizeof(m_RTPStats)); // reset network stats
}
return hr;
}
HRESULT SendMediaStream::SetFlowSpec() { HRESULT hr = DPR_NOT_CONFIGURED; IRTPSession *pRtpSession;
if (m_pDP->m_bDisableRSVP) return S_OK;
if ((m_DPFlags & DPFLAG_CONFIGURED_SEND) && (m_pRTPSend)) { m_pRTPSend->QueryInterface(IID_IRTPSession, (void**)&pRtpSession);
pRtpSession->SetSendFlowspec(&m_flowspec); pRtpSession->Release(); hr = DPR_SUCCESS; }
return hr; }
HRESULT RecvMediaStream::SetFlowSpec() { HRESULT hr = DPR_NOT_CONFIGURED; IRTPSession *pSession=NULL;
if (m_pDP->m_bDisableRSVP) return S_OK; if ((m_DPFlags & DPFLAG_CONFIGURED_RECV) && (m_pIRTPRecv)) { // the following is bogus for two reasons
// 1. when we go multipoint, we really need to set
// set the WinsockQos based on the total number
// of incoming sessions.
// 2. The RTP interfaces will eventually be made
// so that RTP Session and RTPRecv objects are
// distinct. So QI will fail.
hr = m_pIRTPRecv->QueryInterface(IID_IRTPSession, (void**)&pSession); if (SUCCEEDED(hr)) { pSession->SetRecvFlowspec(&m_flowspec); pSession->Release(); hr = DPR_SUCCESS; } }
return hr; }
HRESULT STDMETHODCALLTYPE RecvMediaStream::SetNetworkInterface(IUnknown *pUnknown) { HRESULT hr=S_OK; IRTPRecv *pRTPRecv=NULL;
// don't try to do change the RTP interface while in mid-stream
if (m_DPFlags & DPFLAG_STARTED_RECV) { return DPR_IO_PENDING; // anything better to return ?
}
if (pUnknown) { hr = pUnknown->QueryInterface(IID_IRTPRecv, (void**)&pRTPRecv); } if (SUCCEEDED(hr)) { if (m_pIRTPRecv) { m_pIRTPRecv->Release(); } m_pIRTPRecv = pRTPRecv; }
return hr; }
|