home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / amrtpnet.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  7.8 KB  |  346 lines

  1. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  2. /*++
  3.  
  4. Copyright (c) 1996 Microsoft Corporation
  5.  
  6. Module Name:
  7.  
  8.     amrtpnet.h
  9.  
  10. Abstract:
  11.  
  12.     Definitions for ActiveMovie RTP Network Filters.
  13.  
  14. --*/
  15.  
  16.  
  17.  
  18. ///////////////////////////////////////////////////////////////////////////////
  19. //                                                                           //
  20. // RTP Filter UUIDS                                                          //
  21. //                                                                           //
  22. ///////////////////////////////////////////////////////////////////////////////
  23. #if !defined(_AMRTPNET_H_)
  24.  
  25. #if defined(INITGUID)
  26. #define _AMRTPNET_H_
  27. #endif
  28.  
  29. DEFINE_GUID(CLSID_RTPRenderFilter,
  30. 0x00d20921, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
  31.  
  32. DEFINE_GUID(CLSID_RTPRenderFilterProperties,
  33. 0x00d20923, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
  34.  
  35. DEFINE_GUID(CLSID_RTPSourceFilter,
  36. 0x00d20920, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
  37.  
  38. DEFINE_GUID(CLSID_RTPSourceFilterProperties,
  39. 0x00d20922, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
  40.  
  41. DEFINE_GUID(IID_IRTPStream, 
  42. 0x00d20915, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
  43.  
  44. DEFINE_GUID(IID_IRTCPStream,
  45. 0x4b5678ad, 0x3515, 0x11d1, 0x82, 0x96, 0x00, 0xc0, 0x4f, 0xc2, 0xf6, 0x78);
  46.  
  47. DEFINE_GUID(IID_IRTPParticipant,
  48. 0x4b5678ae, 0x3515, 0x11d1, 0x82, 0x96, 0x00, 0xc0, 0x4f, 0xc2, 0xf6, 0x78);
  49. #endif
  50.  
  51.  
  52. #ifndef _INC_AMRTPNET
  53. #define _INC_AMRTPNET
  54.  
  55. #include <rtp.h>
  56.  
  57.  
  58. ///////////////////////////////////////////////////////////////////////////////
  59. //                                                                           //
  60. // IRTPStream Interface                                                      //
  61. //                                                                           //
  62. ///////////////////////////////////////////////////////////////////////////////
  63.  
  64. DECLARE_INTERFACE_(IRTPStream, IUnknown) {
  65.  
  66.     STDMETHOD(GetAddress)(THIS_
  67.         LPWORD  pwRtpLocalPort,
  68.         LPWORD  pwRtpRemotePort,
  69.         LPDWORD pdwRtpRemoteAddr
  70.         ) PURE;
  71.  
  72.     STDMETHOD(SetAddress)(THIS_
  73.         WORD  wRtpLocalPort,
  74.         WORD  wRtpRemotePort,
  75.         DWORD dwRtpRemoteAddr
  76.         ) PURE;
  77.  
  78.     STDMETHOD(SelectLocalIPAddress)(THIS_
  79.         DWORD dwLocalAddr
  80.         ) PURE;
  81.     
  82.     STDMETHOD(SelectSharedSockets)(THIS_
  83.         DWORD  dwfSahredSockets
  84.         ) PURE;
  85.     
  86.     STDMETHOD(GetSessionID)(THIS_
  87.         DWORD *pdwID
  88.         ) PURE;
  89.  
  90.     STDMETHOD(GetMulticastScope)(THIS_
  91.         LPDWORD pdwMulticastScope
  92.         ) PURE;
  93.  
  94.     STDMETHOD(SetMulticastScope)(THIS_
  95.         DWORD   dwMulticastScope
  96.         ) PURE;
  97.  
  98.     STDMETHOD(GetMulticastLoopBack)(THIS_
  99.         DWORD *pdwMulticastLoopBack
  100.         ) PURE;
  101.  
  102.     STDMETHOD(SetMulticastLoopBack)(THIS_
  103.         DWORD dwMulticastLoopBack
  104.         ) PURE;
  105.  
  106.     STDMETHOD(SetQOSByName)(THIS_
  107.         char *psQOSname,
  108.         DWORD fFailIfNoQOS
  109.         ) PURE;
  110.  
  111.     STDMETHOD(GetQOSstate)(THIS_
  112.         DWORD *pdwQOSstate
  113.         ) PURE;
  114.  
  115.     STDMETHOD(SetQOSstate)(THIS_
  116.         DWORD dwQOSstate
  117.         ) PURE;
  118.  
  119.     STDMETHOD(SetQOSSendIfAllowed)(THIS_
  120.         DWORD dwEnable
  121.         ) PURE;
  122.  
  123.     STDMETHOD(SetQOSSendIfReceivers)(THIS_
  124.         DWORD dwEnable
  125.         ) PURE;
  126.  
  127.     STDMETHOD(GetQOSEventMask)(THIS_
  128.         DWORD *pdwQOSEventMask
  129.         ) PURE;
  130.     
  131.     STDMETHOD(ModifyQOSEventMask)(THIS_
  132.         DWORD dwSelectItems,
  133.         DWORD dwEnableItems
  134.         ) PURE;
  135.  
  136.     STDMETHOD(GetSessionClassPriority)(THIS_
  137.         long *plSessionClass,
  138.         long *plSessionPriority
  139.         ) PURE;
  140.  
  141.     STDMETHOD(GetDataClock)(THIS_
  142.         DWORD *pdwDataClock
  143.         ) PURE;
  144.  
  145.     STDMETHOD(SetDataClock)(THIS_
  146.         DWORD dwDataClock
  147.         ) PURE;
  148.  
  149.     STDMETHOD(SetSessionClassPriority)(THIS_
  150.         long lSessionClass,
  151.         long lSessionPriority
  152.         ) PURE;
  153.  
  154.     STDMETHOD(SelectLocalIPAddressToDest)(THIS_
  155.         LPBYTE pLocSAddr,
  156.         DWORD  dwLocSAddrLen,
  157.         LPBYTE pDestSAddr,
  158.         DWORD  dwDestSAddrLen
  159.         ) PURE;
  160.     
  161. #if 0
  162.     STDMETHOD(GetSecurityState)(THIS_
  163.         DWORD *pdwSecurityState
  164.         ) PURE;
  165.  
  166.     STDMETHOD(SetSecurityState)(THIS_
  167.         DWORD dwSecurityState
  168.         ) PURE;
  169.  
  170.     STDMETHOD(GetSecurityKey)(THIS_
  171.         LPBYTE *pbSecurityKey,
  172.         int *piSecurityKeyLen
  173.         ) PURE;
  174.  
  175.     STDMETHOD(SetSecurityKey)(THIS_
  176.         LPBYTE *pbSecurityKey,
  177.         int iSecurityKeyLen
  178.         ) PURE;
  179.  
  180.     STDMETHOD(GetSecurityType)(THIS_
  181.         DWORD *pdwRTPSecurityType,
  182.         DWORD *pdwRTCPSecurityType
  183.         ) PURE;
  184.  
  185.     STDMETHOD(SetSecurityType)(THIS_
  186.         DWORD dwRTPSecurityType,
  187.         DWORD dwRTCPSecurityType
  188.         ) PURE;
  189. #endif
  190. };
  191.  
  192. //////////////////////////////////////////////////////////////////////
  193. // RTCPStream Interface
  194. //////////////////////////////////////////////////////////////////////
  195. DECLARE_INTERFACE_(IRTCPStream, IUnknown) {
  196.  
  197.     STDMETHOD(GetRTCPAddress)(THIS_
  198.         LPWORD  pwRtcpLocalPort,
  199.         LPWORD  pwRtcpRemotePort,
  200.         LPDWORD pdwRtcpRemoteAddr
  201.         ) PURE;
  202.  
  203.     STDMETHOD(SetRTCPAddress)(THIS_
  204.         WORD  wRtcpLocalPort,
  205.         WORD  wRtcpRemotePort,
  206.         DWORD dwRtcpRemoteAddr
  207.         ) PURE;
  208.  
  209.     STDMETHOD(GetRTCPMulticastScope)(THIS_
  210.         LPDWORD pdwMulticastScope
  211.         ) PURE;
  212.  
  213.     STDMETHOD(SetRTCPMulticastScope)(THIS_
  214.         DWORD   dwMulticastScope
  215.         ) PURE;
  216.  
  217.     STDMETHOD(GetRTCPEventMask)(THIS_
  218.         DWORD *pdwRTCPEventMask
  219.         ) PURE;
  220.     
  221.     STDMETHOD(ModifyRTCPEventMask)(THIS_
  222.         DWORD dwSelectItems,
  223.         DWORD dwEnableItems
  224.         ) PURE;
  225.  
  226.     STDMETHOD(GetSessionID)(THIS_
  227.         DWORD *pdwID
  228.         ) PURE;
  229.     
  230.     STDMETHOD(GetLocalSDESItem)(THIS_
  231.         DWORD   dwSDESItem,
  232.         LPBYTE  psSDESData,
  233.         LPDWORD pdwSDESLen
  234.         ) PURE;
  235.     
  236.     STDMETHOD(SetLocalSDESItem)(THIS_
  237.         DWORD  dwSDESItem,
  238.         LPBYTE psSDESData,
  239.         DWORD  dwSDESLen
  240.         ) PURE;
  241.     
  242.     STDMETHOD(GetRTCPSDESMask)(THIS_
  243.         DWORD *pdwSdesMask
  244.         ) PURE;
  245.     
  246.     STDMETHOD(ModifyRTCPSDESMask)(THIS_
  247.         DWORD dwSelectItems,
  248.         DWORD dwEnableItems
  249.         ) PURE;
  250.  
  251. #if 0
  252.     STDMETHOD(SendRTCPReports)(THIS_
  253.         LPDWORD pdwSendState
  254.         ) PURE;
  255.  
  256.     STDMETHOD(RecvRTCPReports)(THIS_
  257.         LPDWORD pdwRecvState
  258.         ) PURE;
  259.  
  260.     STDMETHOD(RecvAsyncRTCPEvents)(THIS_
  261.         void (*pPostRTCPEvents)(DWORD, DWORD),
  262.         DWORD Par1
  263.         ) PURE;
  264.  
  265.     STDMETHOD(RecvAsyncSDESEvents)(THIS_
  266.         void (*pPostSDESEvents)(DWORD, DWORD),
  267.         DWORD Par1
  268.         ) PURE;
  269. #endif    
  270. };
  271.  
  272. //////////////////////////////////////////////////////////////////////
  273. // RTPParticipant Interface
  274. //////////////////////////////////////////////////////////////////////
  275. DECLARE_INTERFACE_(IRTPParticipant, IUnknown) {
  276.  
  277.     STDMETHOD(EnumParticipants)(THIS_
  278.         LPDWORD pdwSSRC,
  279.         LPDWORD pdwNum
  280.         ) PURE;
  281.  
  282.     STDMETHOD(GetParticipantSDESItem)(THIS_
  283.         DWORD   dwSSRC,
  284.         DWORD   dwSDESItem,
  285.         LPBYTE  psSDESData,
  286.         LPDWORD pdwLen
  287.         ) PURE;
  288.  
  289.     STDMETHOD(GetParticipantSDESAll)(THIS_
  290.         DWORD      dwSSRC,
  291.         PSDES_DATA pSdes,
  292.         DWORD      dwNum
  293.         ) PURE;
  294.  
  295.     STDMETHOD(GetParticipantAddress)(THIS_
  296.         DWORD  dwSSRC,
  297.         LPBYTE pbAddr,
  298.         int    *piAddrLen
  299.         ) PURE;
  300.  
  301.     STDMETHOD(GetMaxQOSEnabledParticipants)(THIS_
  302.         DWORD *pdwMaxParticipants,
  303.         DWORD *pdwMaxBandwidth
  304.         ) PURE;
  305.  
  306.     STDMETHOD(SetMaxQOSEnabledParticipants)(THIS_
  307.         DWORD dwMaxParticipants,
  308.         DWORD dwMaxBandwidth,
  309.         DWORD fSharedStyle
  310.         ) PURE;
  311.  
  312.     STDMETHOD(GetParticipantQOSstate)(THIS_
  313.         DWORD dwSSRC,
  314.         DWORD *pdwQOSstate
  315.         ) PURE;
  316.  
  317.     STDMETHOD(SetParticipantQOSstate)(THIS_
  318.         DWORD dwSSRC,
  319.         DWORD dwQOSstate
  320.         ) PURE;
  321.     
  322.     STDMETHOD(ModifyQOSList)(THIS_
  323.         DWORD *pdwSSRCList,
  324.         DWORD dwNumSSRC,
  325.         DWORD dwOperation
  326.         ) PURE;
  327.  
  328.     STDMETHOD(GetQOSList)(THIS_
  329.         DWORD *pdwSSRCList,
  330.         DWORD *pdwNumSSRC
  331.         ) PURE;
  332.  
  333. #if 0
  334.     STDMETHOD(EnumFirstParticipant)(THIS_
  335.         LPDWORD pdwSSRC
  336.         ) PURE;
  337.  
  338.     STDMETHOD(EnumNextParticipant)(THIS_
  339.         LPDWORD pdwSSRC
  340.         ) PURE;
  341. #endif    
  342. };
  343.  
  344. #endif // _INC_AMRTPNET
  345. #pragma option pop /*P_O_Pop*/
  346.