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

多媒体编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * 
  3.  *  $Id: rmasite2.h,v 1.1 2003/05/30 02:18:01 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 Simple Window Interfaces.
  15.  *
  16.  */
  17. #ifndef _RMASITE2_H_
  18. #define _RMASITE2_H_
  19. /*
  20.  * Forward declarations of some interfaces defined or used here-in.
  21.  */
  22. //typedef _INTERFACE  IRMASite2     IRMASite2;
  23. typedef _INTERFACE  IRMAVideoSurface     IRMAVideoSurface;
  24. typedef _INTERFACE  IRMAPassiveSiteWatcher     IRMAPassiveSiteWatcher;
  25. /****************************************************************************
  26.  * 
  27.  *  Interface:
  28.  *
  29.  * IRMASite2
  30.  *
  31.  *  Purpose:
  32.  *
  33.  * Interface for IRMASite2 objects.
  34.  *
  35.  *  IID_IRMASite:
  36.  *
  37.  * {0x00000D0A-0901-11d1-8B06-00A024406D59}
  38.  *
  39.  */
  40. DEFINE_GUID(IID_IRMASite2, 0x00000D0A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  41. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  42. #undef  INTERFACE
  43. #define INTERFACE   IRMASite
  44. DECLARE_INTERFACE_(IRMASite2, IUnknown)
  45. {
  46.     /*
  47.      * IUnknown methods
  48.      */
  49.     STDMETHOD(QueryInterface) (THIS_
  50. REFIID riid,
  51. void** ppvObj) PURE;
  52.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  53.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  54.     /*
  55.      * IRMASite2 method usually called by the "context" 
  56.      * when window attributes (like the window handle) have changed.
  57.      */
  58.     STDMETHOD(UpdateSiteWindow) (THIS_
  59. PNxWindow* /*IN*/ pWindow) PURE;
  60.     /*
  61.      * IRMASite2 method usually called by the "context" to
  62.      * to hide/show a site.
  63.      */
  64.     STDMETHOD(ShowSite)         (THIS_
  65.                                  BOOL    bShow) PURE;
  66.                                  
  67.     STDMETHOD_(BOOL, IsSiteVisible)         (THIS) PURE;
  68.     /*
  69.      * IRMASite2 method usually called by the "context" to
  70.      * set the site's Z-order
  71.      */
  72.     STDMETHOD(SetZOrder) (THIS_
  73. INT32 lZOrder
  74. ) PURE;
  75.     /*
  76.      * IRMASite2 method called to get the site's Z-order
  77.      */
  78.     STDMETHOD(GetZOrder) (THIS_
  79. REF(INT32) lZOrder
  80. ) PURE;
  81.     /*
  82.      * IRMASite2 method called to set the site at the top
  83.      * of the Z-order
  84.      */
  85.     STDMETHOD(MoveSiteToTop) (THIS) PURE;
  86.     /*
  87.      * IRMASite2 method called to get the site's video surface
  88.      */
  89.     STDMETHOD(GetVideoSurface) (THIS_ 
  90. REF(IRMAVideoSurface*) pSurface
  91. ) PURE;
  92.     /*
  93.      * IRMASite2 method called to get the number of child sites.
  94.      */
  95.     STDMETHOD_(UINT32,GetNumberOfChildSites) (THIS) PURE;
  96.     /*
  97.      * IRMASite2 method to add a watcher that does not affect the site
  98.      */
  99.     STDMETHOD(AddPassiveSiteWatcher) (THIS_
  100.      IRMAPassiveSiteWatcher* pWatcher
  101. ) PURE;
  102.     /*
  103.      * IRMASite2 method to remove a watcher that does not affect the site
  104.      */
  105.     STDMETHOD(RemovePassiveSiteWatcher) (THIS_
  106.      IRMAPassiveSiteWatcher* pWatcher
  107. ) PURE;
  108.     /*
  109.      * IRMASite2 method used to do cursor management
  110.      */
  111.     STDMETHOD(SetCursor)  (THIS_
  112.      PNxCursor ulCursor,
  113. REF(PNxCursor) ulOldCursor
  114. ) PURE;
  115. };
  116. /****************************************************************************
  117.  * 
  118.  *  Interface:
  119.  *
  120.  * IRMAPassiveSiteWatcher
  121.  *
  122.  *  Purpose:
  123.  *
  124.  * Interface for IRMAPassiveSiteWatcher objects.
  125.  *
  126.  *  IID_IRMAPassiveSiteWatcher:
  127.  *
  128.  * {0x00000D0F-0901-11d1-8B06-00A024406D59}
  129.  *
  130.  */
  131. DEFINE_GUID(IID_IRMAPassiveSiteWatcher, 0x00000D0F, 0x901, 0x11d1, 0x8b, 0x6, 
  132. 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
  133. #undef  INTERFACE
  134. #define INTERFACE   IRMAPassiveSiteWatcher
  135. DECLARE_INTERFACE_(IRMAPassiveSiteWatcher, IUnknown)
  136. {
  137.     /*
  138.      * IUnknown methods
  139.      */
  140.     STDMETHOD(QueryInterface) (THIS_
  141. REFIID riid,
  142. void** ppvObj) PURE;
  143.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  144.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  145.     /*
  146.      * IRMAPassiveSiteWatcher method used to notify
  147.      * about position updates
  148.      */
  149.     STDMETHOD(PositionChanged) (THIS_
  150. PNxPoint* /*IN*/ pPoint) PURE;
  151.     /*
  152.      * IRMAPassiveSiteWatcher method used to notify
  153.      * about size updates
  154.      */
  155.     STDMETHOD(SizeChanged)  (THIS_
  156. PNxSize* /*IN*/ pSize) PURE;
  157. };
  158. #endif //_RMASITE2_H_