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.

88 lines
2.2 KiB

  1. /*******************************************************************************
  2. Module Name:
  3. bgapp.h
  4. Abstract:
  5. Defines CBridgeApp class
  6. Author:
  7. Qianbo Huai (qhuai) Jan 27 2000
  8. *******************************************************************************/
  9. #ifndef _BGAPP_H
  10. #define _BGAPP_H
  11. /*//////////////////////////////////////////////////////////////////////////////
  12. ////*/
  13. class CBridgeApp
  14. {
  15. public:
  16. // init tapi objects
  17. CBridgeApp (HRESULT *phr);
  18. // release tapi objects
  19. ~CBridgeApp ();
  20. // create h323 call
  21. HRESULT CreateH323Call (IDispatch *pEvent);
  22. // create sdp call
  23. HRESULT CreateSDPCall (CBridgeItem *pItem);
  24. // bridge calls
  25. HRESULT BridgeCalls (CBridgeItem *pItem);
  26. // get h323 call if exists
  27. HRESULT HasH323Call (IDispatch *pEvent, CBridgeItem **ppItem);
  28. HRESULT HasCalls ();
  29. // disconnect one call
  30. HRESULT DisconnectCall (CBridgeItem *pItem, DISCONNECT_CODE);
  31. // disconnect all calls
  32. HRESULT DisconnectAllCalls (DISCONNECT_CODE);
  33. HRESULT RemoveCall (CBridgeItem *pItem);
  34. // alter a substream to display
  35. HRESULT NextSubStream ();
  36. // show specified participant
  37. HRESULT ShowParticipant (ITBasicCallControl *pSDPCall, ITParticipant *pPartcipant);
  38. private:
  39. // create bridge terminals
  40. HRESULT CreateBridgeTerminals (CBridgeItem *pItem);
  41. // get streams from call
  42. HRESULT GetStreams (CBridgeItem *pItem);
  43. // select bridge terminals
  44. HRESULT SelectBridgeTerminals (CBridgeItem *pItem);
  45. HRESULT SetupParticipantInfo (CBridgeItem *pItem);
  46. HRESULT SetMulticastMode (CBridgeItem *pItem);
  47. // helper
  48. HRESULT FindAddress (
  49. long dwAddrType,
  50. BSTR bstrAddrName,
  51. long lMediaType,
  52. ITAddress **ppAddr
  53. );
  54. BOOL AddressSupportsMediaType (ITAddress *pAddr, long lMediaType);
  55. BOOL IsStream (
  56. ITStream *pStream,
  57. long lMediaType,
  58. TERMINAL_DIRECTION tdDirection
  59. );
  60. private:
  61. ITTAPI *m_pTapi;
  62. ITAddress *m_pH323Addr;
  63. ITAddress *m_pSDPAddr;
  64. long m_lH323MediaType;
  65. long m_lSDPMediaType;
  66. CBridgeItemList *m_pList;
  67. };
  68. #endif // _BGAPP_H