hxpreftr.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:7k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #ifndef _HXPREFTR_H_
  36. #define _HXPREFTR_H_
  37. typedef enum
  38. {
  39.     UnknownMode   = -1
  40.    ,MulticastMode = 0
  41.    ,UDPMode       = 1
  42.    ,TCPMode       = 2
  43.    ,HTTPCloakMode = 3
  44. } TransportMode;
  45. typedef enum
  46. {
  47.   PTC_UNKNOWN,
  48.   PTC_INTERNAL,
  49.   PTC_EXTERNAL
  50. } PreferredTransportClass;
  51. typedef enum 
  52. {
  53.   PTP_UNKNOWN,
  54.   PTP_PNM,
  55.   PTP_RTSP
  56. } PreferredTransportProtocol;
  57. typedef enum
  58. {
  59.   PTS_UNKNOWN,
  60.   PTS_CREATE,
  61.   PTS_PENDING,
  62.   PTS_READY
  63. } PreferredTransportState;
  64. #define ATTEMPT_AUTOTRANSPORT 0x1F
  65. #define ATTEMPT_MULTICAST 0x01
  66. #define ATTEMPT_UDP 0x02
  67. #define ATTEMPT_TCP 0x04
  68. #define ATTEMPT_HTTPCLOAK 0x08
  69. typedef _INTERFACE IHXPreferredTransportManager IHXPreferredTransportManager;
  70. typedef _INTERFACE IHXPreferredTransport IHXPreferredTransport;
  71. typedef _INTERFACE IHXPreferredTransportSink IHXPreferredTransportSink;
  72. typedef _INTERFACE IHXProxyManager IHXProxyManager;
  73. /****************************************************************************
  74.  * 
  75.  *  Interface:
  76.  *
  77.  * IHXPreferredTransportManager
  78.  *
  79.  *  Purpose:
  80.  *
  81.  * Interface to select preferred transport
  82.  *
  83.  *  IHXPreferredTransportManager:
  84.  *
  85.  * {00003700-0901-11d1-8B06-00A024406D59}
  86.  *
  87.  */
  88. DEFINE_GUID(IID_IHXPreferredTransportManager, 0x00003700, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  89.        0xa0, 0x24, 0x40, 0x6d, 0x59);
  90. DECLARE_INTERFACE_(IHXPreferredTransportManager, IUnknown)
  91. {
  92.     /*
  93.      * IUnknown methods
  94.      */
  95.     STDMETHOD(QueryInterface) (THIS_
  96. REFIID riid,
  97. void** ppvObj) PURE;
  98.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  99.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  100.     /*
  101.      * IHXPreferredTransportManager methods
  102.      */
  103.     /************************************************************************
  104.      * Method:
  105.      *     IHXPreferredTransportManager::Initialize
  106.      * Purpose:
  107.      *     Initialize the transport manager such as re-reading the preferences
  108.      */
  109.     STDMETHOD(Initialize) (THIS) PURE;
  110.     /************************************************************************
  111.      * Method:
  112.      *     IHXPreferredTransportManager::GetPrefTransport
  113.      * Purpose:
  114.      *     Get preferred host transport
  115.      */
  116.     STDMETHOD(GetPrefTransport) (const char* /* IN  */ pszHostName,
  117. PreferredTransportProtocol /* IN  */ prefTransportProtocol,
  118. REF(IHXPreferredTransport*) /* OUT */ pPrefTransport) PURE;
  119.     /************************************************************************
  120.      * Method:
  121.      *     IHXPreferredTransportManager::RemovePrefTransport
  122.      * Purpose:
  123.      *     Remove preferred host transport
  124.      */
  125.     STDMETHOD(RemovePrefTransport) (IHXPreferredTransport* /* IN  */ pPrefTransort) PURE;
  126.     /************************************************************************
  127.      * Method:
  128.      *     IHXPreferredTransportManager::GetTransportPreference
  129.      * Purpose:
  130.      *     Get transport preference set by the user
  131.      */
  132.     STDMETHOD(GetTransportPreference) (PreferredTransportProtocol /* IN  */ prefTransportProtocol,
  133.  REF(UINT32) /* OUT */ ulPreferenceMask) PURE;
  134. };
  135. /****************************************************************************
  136.  * 
  137.  *  Interface:
  138.  *
  139.  * IHXPreferredTransport
  140.  *
  141.  *  Purpose:
  142.  *
  143.  * Interface to preferred transport
  144.  *
  145.  *  IHXPreferredTransport:
  146.  *
  147.  * {00003701-0901-11d1-8B06-00A024406D59}
  148.  *
  149.  */
  150. DEFINE_GUID(IID_IHXPreferredTransport, 0x00003701, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  151. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  152. DECLARE_INTERFACE_(IHXPreferredTransport, IUnknown)
  153. {
  154.     /*
  155.      * IUnknown methods
  156.      */
  157.     STDMETHOD(QueryInterface) (THIS_
  158. REFIID riid,
  159. void** ppvObj) PURE;
  160.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  161.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  162.     /*
  163.      * IHXPreferredTransport methods
  164.      */
  165.     STDMETHOD_(PreferredTransportState, GetState) (THIS) PURE;
  166.     STDMETHOD_(PreferredTransportClass, GetClass) (THIS) PURE;
  167. STDMETHOD_(BOOL, ValidateTransport) (TransportMode mode) PURE;
  168.     STDMETHOD(GetTransport)     (REF(TransportMode) /* OUT */   prefTransportType,
  169.     REF(UINT16) /* OUT */   uCloakPort) PURE;
  170.     
  171.     STDMETHOD(SetTransport)     (TransportMode /* IN  */   prefTransportType,
  172.     UINT16 /* IN  */   uCloakPort) PURE;
  173.     STDMETHOD(SwitchTransport)     (HX_RESULT /* IN  */   error,
  174.     REF(TransportMode) /* INOUT */ prefTransportType) PURE;
  175.     STDMETHOD(RemoveTransport)     (THIS) PURE;
  176.     STDMETHOD(AddTransportSink)     (IHXPreferredTransportSink* /* IN  */   pPrefTransportSink) PURE;
  177.     STDMETHOD(RemoveTransportSink)  (IHXPreferredTransportSink* /* IN  */   pPrefTransportSink) PURE;
  178.     STDMETHOD_(BOOL, GetHTTPNG)     (THIS) PURE;
  179.     STDMETHOD(SetHTTPNG)     (BOOL bHTTPNG) PURE;
  180. };
  181. /****************************************************************************
  182.  * 
  183.  *  Interface:
  184.  *
  185.  * IHXPreferredTransportSink
  186.  *
  187.  *  Purpose:
  188.  *
  189.  * Sinker to preferred transport
  190.  *
  191.  *  IHXPreferredTransportSink:
  192.  *
  193.  * {00003702-0901-11d1-8B06-00A024406D59}
  194.  *
  195.  */
  196. DEFINE_GUID(IID_IHXPreferredTransportSink, 0x00003702, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  197.     0xa0, 0x24, 0x40, 0x6d, 0x59);
  198. DECLARE_INTERFACE_(IHXPreferredTransportSink, IUnknown)
  199. {
  200.     /*
  201.      * IUnknown methods
  202.      */
  203.     STDMETHOD(QueryInterface) (THIS_
  204. REFIID riid,
  205. void** ppvObj) PURE;
  206.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  207.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  208.     /*
  209.      * IHXPreferredTransportSink methods
  210.      */
  211.     STDMETHOD(TransportSucceeded)   (TransportMode /* IN */   prefTransportType,
  212.      UINT16 /* IN */   uCloakPort) PURE;
  213.     STDMETHOD(TransportFailed)     (THIS) PURE;
  214. };
  215. #endif /* _HXPREFTR_H_ */