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

多媒体编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * 
  3.  *  $Id: rmaclsnk.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.  *  Client Advise Sink Interfaces
  15.  *
  16.  */
  17. #ifndef _RMACLSNK_H_
  18. #define _RMACLSNK_H_
  19. /*
  20.  * Forward declarations of some interfaces defined or used here-in.
  21.  */
  22. typedef _INTERFACE   IRMAClientAdviseSink       IRMAClientAdviseSink;
  23. /****************************************************************************
  24.  * 
  25.  *  Interface:
  26.  * 
  27.  * IRMAClientAdviseSink
  28.  * 
  29.  *  Purpose:
  30.  * 
  31.  * Interface supplied by client to core to receive notifications of
  32.  * status changes.
  33.  * 
  34.  *  IID_IRMAClientAdviseSink:
  35.  * 
  36.  * {00000B00-0901-11d1-8B06-00A024406D59}
  37.  * 
  38.  */
  39. DEFINE_GUID(IID_IRMAClientAdviseSink, 0x00000B00, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  40. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  41. #undef  INTERFACE
  42. #define INTERFACE   IRMAClientAdviseSink
  43. DECLARE_INTERFACE_(IRMAClientAdviseSink, IUnknown)
  44. {
  45.     /*
  46.      * IUnknown methods
  47.      */
  48.     STDMETHOD(QueryInterface) (THIS_
  49. REFIID riid,
  50. void** ppvObj) PURE;
  51.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  52.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  53.     /*
  54.      * IRMAClientAdviseSink methods
  55.      */
  56.     /************************************************************************
  57.      * Method:
  58.      *     IRMAClientAdviseSink::OnPosLength
  59.      * Purpose:
  60.      *     Called to advise the client that the position or length of the
  61.      *     current playback context has changed.
  62.      */
  63.     STDMETHOD(OnPosLength) (THIS_
  64. UINT32   ulPosition,
  65. UINT32   ulLength) PURE;
  66.     /************************************************************************
  67.      * Method:
  68.      *     IRMAClientAdviseSink::OnPresentationOpened
  69.      * Purpose:
  70.      *     Called to advise the client a presentation has been opened.
  71.      */
  72.     STDMETHOD(OnPresentationOpened) (THIS) PURE;
  73.     /************************************************************************
  74.      * Method:
  75.      *     IRMAClientAdviseSink::OnPresentationClosed
  76.      * Purpose:
  77.      *     Called to advise the client a presentation has been closed.
  78.      */
  79.     STDMETHOD(OnPresentationClosed) (THIS) PURE;
  80.     /************************************************************************
  81.      * Method:
  82.      *     IRMAClientAdviseSink::OnStatisticsChanged
  83.      * Purpose:
  84.      *     Called to advise the client that the presentation statistics
  85.      *     have changed. 
  86.      */
  87.     STDMETHOD(OnStatisticsChanged) (THIS) PURE;
  88.     /************************************************************************
  89.      * Method:
  90.      *     IRMAClientAdviseSink::OnPreSeek
  91.      * Purpose:
  92.      *     Called by client engine to inform the client that a seek is
  93.      *     about to occur. The render is informed the last time for the 
  94.      *     stream's time line before the seek, as well as the first new
  95.      *     time for the stream's time line after the seek will be completed.
  96.      *
  97.      */
  98.     STDMETHOD(OnPreSeek) (THIS_
  99. ULONG32     ulOldTime,
  100. ULONG32     ulNewTime) PURE;
  101.     /************************************************************************
  102.      * Method:
  103.      *     IRMAClientAdviseSink::OnPostSeek
  104.      * Purpose:
  105.      *     Called by client engine to inform the client that a seek has
  106.      *     just occurred. The render is informed the last time for the 
  107.      *     stream's time line before the seek, as well as the first new
  108.      *     time for the stream's time line after the seek.
  109.      *
  110.      */
  111.     STDMETHOD(OnPostSeek) (THIS_
  112. ULONG32     ulOldTime,
  113. ULONG32     ulNewTime) PURE;
  114.     /************************************************************************
  115.      * Method:
  116.      *     IRMAClientAdviseSink::OnStop
  117.      * Purpose:
  118.      *     Called by client engine to inform the client that a stop has
  119.      *     just occurred. 
  120.      *
  121.      */
  122.     STDMETHOD(OnStop) (THIS) PURE;
  123.     /************************************************************************
  124.      * Method:
  125.      *     IRMAClientAdviseSink::OnPause
  126.      * Purpose:
  127.      *     Called by client engine to inform the client that a pause has
  128.      *     just occurred. The render is informed the last time for the 
  129.      *     stream's time line before the pause.
  130.      *
  131.      */
  132.     STDMETHOD(OnPause) (THIS_
  133. ULONG32     ulTime) PURE;
  134.     /************************************************************************
  135.      * Method:
  136.      *     IRMAClientAdviseSink::OnBegin
  137.      * Purpose:
  138.      *     Called by client engine to inform the client that a begin or
  139.      *     resume has just occurred. The render is informed the first time 
  140.      *     for the stream's time line after the resume.
  141.      *
  142.      */
  143.     STDMETHOD(OnBegin) (THIS_
  144. ULONG32     ulTime) PURE;
  145.     /************************************************************************
  146.      * Method:
  147.      *     IRMAClientAdviseSink::OnBuffering
  148.      * Purpose:
  149.      *     Called by client engine to inform the client that buffering
  150.      *     of data is occuring. The render is informed of the reason for
  151.      *     the buffering (start-up of stream, seek has occurred, network
  152.      *     congestion, etc.), as well as percentage complete of the 
  153.      *     buffering process.
  154.      *
  155.      */
  156.     STDMETHOD(OnBuffering) (THIS_
  157. ULONG32     ulFlags,
  158. UINT16     unPercentComplete) PURE;
  159.     /************************************************************************
  160.      * Method:
  161.      *     IRMAClientAdviseSink::OnContacting
  162.      * Purpose:
  163.      *     Called by client engine to inform the client is contacting
  164.      *     hosts(s).
  165.      *
  166.      */
  167.     STDMETHOD(OnContacting) (THIS_
  168.  const char* pHostName) PURE;
  169. };
  170. #endif /* _RMACLSNK_H_ */