rmaerror.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:8k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * 
  3.  *  $Id: rmaerror.h,v 1.1 2003/05/30 02:17:36 gabest Exp $
  4.  *
  5.  *  Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
  6.  *  
  7.  *  http://www.real.com/devzone
  8.  *
  9.  *  This program contains proprietary 
  10.  *  information of Progressive Networks, Inc, and is licensed
  11.  *  subject to restrictions on use and distribution.
  12.  *
  13.  *
  14.  *  RealMedia Architecture error reporting interfaces.
  15.  *
  16.  */
  17. #ifndef _RMAERROR_H_
  18. #define _RMAERROR_H_
  19. /*
  20.  * Forward declarations of some interfaces defined here-in.
  21.  */
  22. typedef _INTERFACE       IRMABuffer          IRMABuffer;
  23. typedef _INTERFACE       IRMAErrorSinkControl     IRMAErrorSinkControl;
  24. /* Message Severity values */
  25. enum {
  26.      PNLOG_EMERG     = 0, /* A panic condition.  Server / Player will halt or
  27.      restart. */
  28.      PNLOG_ALERT     = 1, /* A condition that should be corrected immediately.
  29.      Needs user intervention to prevent problems. */
  30.      PNLOG_CRIT      = 2, /* Critical conditions. */
  31.      PNLOG_ERR       = 3, /* Errors. */
  32.      PNLOG_WARNING   = 4, /* Warning messages. */
  33.      PNLOG_NOTICE    = 5, /* Conditions that are not error conditions, but
  34.      should possibly be handled specially. */
  35.      PNLOG_INFO      = 6, /* Informational messages. */
  36.      PNLOG_DEBUG     = 7  /* Messages that contain information normally of use
  37.      only when debugging a program. */
  38. };
  39. /****************************************************************************
  40.  * 
  41.  *  Interface:
  42.  * 
  43.  * IRMAErrorMessages
  44.  * 
  45.  *  Purpose:
  46.  * 
  47.  * Error, event, and status message reporting interface
  48.  * 
  49.  *  IID_IRMAErrorMessages:
  50.  * 
  51.  * {00000800-0901-11d1-8B06-00A024406D59}
  52.  * 
  53.  */
  54. DEFINE_GUID(IID_IRMAErrorMessages, 0x00000800, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  55. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  56. #undef  INTERFACE
  57. #define INTERFACE   IRMAErrorMessages
  58. DECLARE_INTERFACE_(IRMAErrorMessages, IUnknown)
  59. {
  60.     /*
  61.      *  IUnknown methods
  62.      */
  63.     STDMETHOD(QueryInterface) (THIS_
  64. REFIID riid,
  65. void** ppvObj) PURE;
  66.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  67.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  68.     /*
  69.      *  IRMAErrorMessages methods
  70.      */
  71.     /************************************************************************
  72.      * Method:
  73.      *     IRMAErrorMessages::Report
  74.      * Purpose:
  75.      *     Call this method to report an error, event, or status message.
  76.      * Parameters:
  77.      *
  78.      *     const UINT8 unSeverity
  79.      *     Type of report. This value will impact how the player, tool, or
  80.      *     server will react to the report. Possible values are described 
  81.      *     above. Depending on the error type, an error message with the 
  82.      *     RMA code, anda string translation of that code will be displayed. 
  83.      *     The error dialog includes a "more info" section that displays the
  84.      *     user code and string, and a link to the more info URL. In the 
  85.      *     server these messages are logged to the log file.
  86.      *
  87.      *     const ULONG32   ulRMACode
  88.      *     Well known RMA error code. This will be translated to a text
  89.      *     representation for display in an error dialog box or log file.
  90.      *
  91.      *     const ULONG32   ulUserCode
  92.      *     User specific error code. This will NOT be translated to a text
  93.      *     representation. This can be any value the caller wants, it will
  94.      *     be logged or displayed but not interpretted.
  95.      *
  96.      *     const char*     pUserString
  97.      *     User specific error string. This will NOT be translated or 
  98.      *     modified. This can be any value the caller wants, it will
  99.      *     be logged or displayed but not interpretted.
  100.      *
  101.      *     const char*     pMoreInfoURL
  102.      *     User specific more info URL string.
  103.      *
  104.      */
  105.     STDMETHOD(Report) (THIS_
  106. const UINT8 unSeverity,  
  107. PN_RESULT ulRMACode,
  108. const ULONG32 ulUserCode,
  109. const char* pUserString,
  110. const char* pMoreInfoURL) PURE;
  111.     /************************************************************************
  112.      * Method:
  113.      *     IRMAErrorMessages::GetErrorText
  114.      * Purpose:
  115.      *     Call this method to get the text description of a RMA error code.
  116.      * Parameters:
  117.      *     PN_RESULT ulRMACode (A RMA error code)
  118.      *  Return Value:
  119.      *     IRMABuffer* containing error text.
  120.      */
  121.     STDMETHOD_(IRMABuffer*, GetErrorText) (THIS_
  122. PN_RESULT ulRMACode) PURE;
  123. };
  124. /****************************************************************************
  125.  * 
  126.  *  Interface:
  127.  * 
  128.  * IRMAErrorSink
  129.  * 
  130.  *  Purpose:
  131.  * 
  132.  * Error Sink Interface
  133.  * 
  134.  *  IID_IRMAErrorSink:
  135.  * 
  136.  * {00000801-0901-11d1-8B06-00A024406D59}
  137.  * 
  138.  */
  139. DEFINE_GUID(IID_IRMAErrorSink, 0x00000801, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  140. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  141. #undef  INTERFACE
  142. #define INTERFACE   IRMAErrorSink
  143. DECLARE_INTERFACE_(IRMAErrorSink, IUnknown)
  144. {
  145.     /*
  146.      *  IUnknown methods
  147.      */
  148.     STDMETHOD(QueryInterface) (THIS_
  149. REFIID riid,
  150. void** ppvObj) PURE;
  151.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  152.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  153.     /*
  154.      *  IRMAErrorSink methods
  155.      */
  156.     /************************************************************************
  157.      * Method:
  158.      *     IRMAErrorSink::ErrorOccurred
  159.      * Purpose:
  160.      *     After you have registered your error sink with an
  161.      *     IRMAErrorSinkControl (either in the server or player core) this
  162.      *     method will be called to report an error, event, or status message.
  163.      *
  164.      *     The meaning of the arguments is exactly as described in
  165.      *     rmaerror.h
  166.      */
  167.     STDMETHOD(ErrorOccurred) (THIS_
  168. const UINT8 unSeverity,  
  169. const ULONG32 ulRMACode,
  170. const ULONG32 ulUserCode,
  171. const char* pUserString,
  172. const char* pMoreInfoURL
  173. ) PURE;
  174. };
  175. /****************************************************************************
  176.  * 
  177.  *  Interface:
  178.  * 
  179.  * IRMAErrorSinkControl
  180.  * 
  181.  *  Purpose:
  182.  * 
  183.  * Error Sink Control Interface
  184.  * 
  185.  *  IID_IRMAErrorSinkControl:
  186.  * 
  187.  * {00000802-0901-11d1-8B06-00A024406D59}
  188.  * 
  189.  */
  190. DEFINE_GUID(IID_IRMAErrorSinkControl, 0x00000802, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  191. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  192. #undef  INTERFACE
  193. #define INTERFACE   IRMAErrorSinkControl
  194. DECLARE_INTERFACE_(IRMAErrorSinkControl, IUnknown)
  195. {
  196.     /*
  197.      *  IUnknown methods
  198.      */
  199.     STDMETHOD(QueryInterface) (THIS_
  200. REFIID riid,
  201. void** ppvObj) PURE;
  202.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  203.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  204.     /*
  205.      *  IRMAErrorSinkControl methods
  206.      */
  207.     /************************************************************************
  208.      * Method:
  209.      *     IRMAErrorSinkControl::AddErrorSink
  210.      * Purpose:
  211.      *     Call this method to tell the sink controller to handle an error
  212.      *     sink.
  213.      *
  214.      *     This method also allows you to set a range of severity levels which
  215.      *     you will receive reports for.
  216.      *
  217.      *      Note: You should specify an invalid range (Low = 1, High = 0 for
  218.      *            example) if you don't want to receive any errors.
  219.      *
  220.      *     The default severity range is PNLOG_EMERG to PNLOG_INFO (0-6).
  221.      */
  222.     STDMETHOD(AddErrorSink) (THIS_
  223. IRMAErrorSink* pErrorSink,
  224.                                 const UINT8     unLowSeverity,
  225.                                 const UINT8     unHighSeverity) PURE;
  226.     /************************************************************************
  227.      * Method:
  228.      *     IRMAErrorSinkControl::AddErrorSink
  229.      * Purpose:
  230.      *     Call this method to remove an error sink.
  231.      */
  232.     STDMETHOD(RemoveErrorSink) (THIS_
  233. IRMAErrorSink* pErrorSink) PURE;
  234. };
  235. #endif /* _RMAERROR_H_ */