hxencod.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 _HXENCOD_H_
  36. #define _HXENCOD_H_
  37. typedef _INTERFACE IUnknown IUnknown;
  38. typedef _INTERFACE IHXValues IHXValues;
  39. typedef _INTERFACE IHXPacket IHXPacket;
  40. typedef _INTERFACE IHXRequest IHXRequest;
  41. typedef _INTERFACE IHXEncoder IHXEncoder;
  42. typedef _INTERFACE IHXEncoderResponse IHXEncoderResponse;
  43. typedef _INTERFACE IHXEncoderCompletion IHXEncoderCompletion;
  44. typedef _INTERFACE IHXEncoderResponseCompletion IHXEncoderResponseCompletion;
  45. typedef _INTERFACE IHXConnectionlessControl IHXConnectionlessControl;
  46. typedef _INTERFACE IHXTransportControl IHXTransportControl;
  47. #ifndef _MACINTOSH
  48. STDAPI_(IUnknown*) CreateContext();
  49. #else
  50. #pragma export on
  51. STDAPI_(IUnknown*) CreateContext();
  52. #pragma export off
  53. #endif
  54. DEFINE_GUID(IID_IHXEncoderResponse,  0x00001600, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  55. #undef INTERFACE
  56. #define INTERFACE IHXEncoderResponse
  57. DECLARE_INTERFACE_(IHXEncoderResponse, IUnknown)
  58. {
  59.     /*
  60.      * IUnknown methods
  61.      */
  62.     STDMETHOD(QueryInterface) (THIS_
  63.  REFIID riid,
  64.  void** ppvObj) PURE;
  65.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  66.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  67.     /*
  68.      * IHXEncoderResponse methods
  69.      */
  70.     STDMETHOD(InitEncoderResponse) (THIS_
  71.     const char* pHost,
  72.     UINT16 unPort, 
  73.     IHXRequest* pRequest,
  74.     const char* pUsername,
  75.     const char* pPassword,
  76.     IHXEncoder* pEncoder) PURE;
  77.     STDMETHOD(FileHeaderReady)     (THIS_ 
  78.     HX_RESULT   result, 
  79.     IHXValues* pHeader) PURE;
  80.     STDMETHOD(StreamHeaderReady)   (THIS_ 
  81.     HX_RESULT   result, 
  82.     IHXValues* pHeader) PURE;
  83.     STDMETHOD(PacketReady)         (THIS_ 
  84.     HX_RESULT   result,
  85.     IHXPacket* pPacket) PURE;
  86.     STDMETHOD(StreamDone)          (THIS_ 
  87.     UINT16 unStream) PURE;
  88.     STDMETHOD(Process)             (THIS) PURE;
  89.     STDMETHOD_(UINT32,GetTime)     (THIS) PURE;
  90. };
  91. DEFINE_GUID(IID_IHXEncoder, 0x00001601, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  92. #undef INTERFACE
  93. #define INTERFACE IHXEncoder
  94. DECLARE_INTERFACE_(IHXEncoder, IUnknown)
  95. {
  96.     /*
  97.      * IUnknown methods
  98.      */
  99.     STDMETHOD(QueryInterface) (THIS_
  100.  REFIID riid,
  101.  void** ppvObj) PURE;
  102.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  103.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  104.     /*
  105.      * IHXEncoder methods
  106.      */
  107.     STDMETHOD(InitEncoderResponseDone) (THIS_ 
  108. HX_RESULT result) PURE;
  109.     STDMETHOD(GetFileHeader)           (THIS) PURE;
  110.     STDMETHOD(GetStreamHeader)         (THIS_ 
  111. UINT16 unStream) PURE;
  112.     STDMETHOD(StartPackets)            (THIS_ 
  113. UINT16 unStream) PURE;
  114.     STDMETHOD(StopPackets)             (THIS_ 
  115. UINT16 unStream) PURE;
  116. };
  117. DEFINE_GUID(IID_IHXEncoderCompletion, 0x00001602, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  118. #undef INTERFACE
  119. #define INTERFACE IHXEncoderCompletion
  120. DECLARE_INTERFACE_(IHXEncoderCompletion, IUnknown)
  121. {
  122.     /*
  123.      * IUnknown methods
  124.      */
  125.     STDMETHOD(QueryInterface) (THIS_
  126.  REFIID riid,
  127.  void** ppvObj) PURE;
  128.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  129.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  130.     /*
  131.      * IHXEncoderCompletion methods
  132.      */
  133.     STDMETHOD(EncoderDone) (THIS_ 
  134.  HX_RESULT result) PURE;
  135. };
  136. DEFINE_GUID(IID_IHXConnectionlessControl, 0x00001603, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  137. #undef INTERFACE
  138. #define INTERFACE IHXConnectionlessControl
  139. DECLARE_INTERFACE_(IHXConnectionlessControl, IUnknown)
  140. {
  141.     /*
  142.      * IUnknown methods
  143.      */
  144.     STDMETHOD(QueryInterface) (THIS_
  145.  REFIID riid,
  146.  void** ppvObj) PURE;
  147.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  148.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  149.     /*
  150.      * IHXConnectionlessControl methods
  151.      */
  152.     STDMETHOD(EnableConnectionlessControl)
  153. (THIS) PURE;
  154.     STDMETHOD(ConnectionCheckFailed) (THIS_
  155. HX_RESULT status) PURE;
  156.     STDMETHOD(SetConnectionTimeout) (THIS_
  157. UINT32 uSeconds) PURE;
  158. };
  159. DEFINE_GUID(IID_IHXEncoderResponseCompletion, 0x00001604, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  160. #undef INTERFACE
  161. #define INTERFACE IHXEncoderResponseCompletion
  162. DECLARE_INTERFACE_(IHXEncoderResponseCompletion, IUnknown)
  163. {
  164.     /*
  165.      * IUnknown methods
  166.      */
  167.     STDMETHOD(QueryInterface) (THIS_
  168.  REFIID riid,
  169.  void** ppvObj) PURE;
  170.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  171.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  172.     /*
  173.      * IHXEncoderResponseCompletion methods
  174.      */
  175.     STDMETHOD(EncoderResponseDone) (THIS) PURE;
  176. };
  177. /*
  178.  * The only 2 encoder transport types supported are:
  179.  * "x-pn-tng/udp"
  180.  * "x-pn-tng/tcp"
  181.  */
  182. DEFINE_GUID(IID_IHXTransportControl, 0x00001605, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  183. #undef INTERFACE
  184. #define INTERFACE IHXTransportControl
  185. DECLARE_INTERFACE_(IHXTransportControl, IUnknown)
  186. {
  187.     /*
  188.      * IUnknown methods
  189.      */
  190.     STDMETHOD(QueryInterface) (THIS_
  191.  REFIID riid,
  192.  void** ppvObj) PURE;
  193.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  194.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  195.     /*
  196.      * IHXTransportControl methods
  197.      */
  198.     STDMETHOD(SetTransportType) (const char* pTransportType) PURE;
  199. };
  200. #endif /* _HXENCOD_H_ */