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

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 _VBASERND_H
  36. #define _VBASERND_H
  37. #if defined(_UNIX) && (!(defined(_BEOS))) && (!(defined(_MAC_UNIX))) && (!(defined(_ARM)))
  38. #include <X11/Xlib.h>
  39. #endif
  40. class CResourceLoader;
  41. class CRNVisualBaseRenderer : public CRNBaseRenderer,
  42.                               public IHXSiteUser
  43. {
  44. public:
  45.     CRNVisualBaseRenderer();
  46.     virtual ~CRNVisualBaseRenderer();
  47.     // IUnknown methods
  48.     STDMETHOD(QueryInterface)   (THIS_ REFIID riid, void** ppvObj);
  49.     STDMETHOD_(ULONG32,AddRef)  (THIS);
  50.     STDMETHOD_(ULONG32,Release) (THIS);
  51.     // Need to override CRNBaseRenderer::InitPlugin()
  52.     STDMETHOD(InitPlugin) (THIS_ IUnknown *pContext);
  53.     // Need to override IHXRenderer::StartStream() to setup MISUS info
  54.     STDMETHOD(StartStream) (THIS_ IHXStream* pStream, IHXPlayer* pPlayer);
  55.     // IHXSiteUser methods
  56.     STDMETHOD(AttachSite)               (THIS_ IHXSite *pSite);
  57.     STDMETHOD(DetachSite)               (THIS);
  58.     STDMETHOD(HandleEvent)              (THIS_ HXxEvent *pEvent);
  59.     STDMETHOD_(BOOL,NeedsWindowedSites) (THIS);
  60. protected:
  61.     HXxSize                            m_cWindowSize;
  62.     IHXMultiInstanceSiteUserSupplier* m_pMISUS;
  63.     IHXSite*                          m_pSite;
  64.     IHXStatusMessage*                 m_pStatusMessage;
  65.     INT16                              m_sOldMouseX;
  66.     INT16                              m_sOldMouseY;
  67.     BOOL                               m_bSetHyperlinkCursor;
  68.     BOOL                               m_bStatusMsgWillNeedErasing;
  69. #if defined(_WINDOWS)
  70.     HCURSOR                            m_hPreHyperlinkCursor;
  71.     HCURSOR                            m_hHyperlinkCursor;
  72. #elif defined(_MACINTOSH) || defined(_MAC_UNIX)
  73.     CursHandle                         m_hHyperlinkCursor;
  74.     typedef enum
  75.     {
  76.         CURSOR_ARROW,
  77.         CURSOR_HYPERLINK
  78.     }
  79.     CursorShapes;
  80.     CursorShapes                       m_eCurrentCursor;
  81.     CResourceLoader*        m_pResourceLoader;
  82. #elif defined(_UNIX) && (!(defined(_BEOS))) && !defined(_ARM)
  83.     Cursor                              m_hHyperlinkCursor;
  84.     Cursor                              m_hCurrentCursor;
  85.     Display*                            m_pDisplay;          
  86.     Window                              m_Window;
  87. #endif
  88.     // Method to handle mouseover and status message changes
  89.     STDMETHOD(OnMouseMove)              (THIS_ INT16 fwKeys, INT16 xPos, INT16 yPos);
  90.     // Required derived methods
  91.     STDMETHOD(GetWindowSize)            (THIS_ REF(HXxSize) rSize)                                            PURE;
  92.     STDMETHOD(IsMouseOverActiveLink)    (THIS_ INT16 x, INT16 y, REF(BOOL) rbActive, REF(IHXBuffer*) rpLink) PURE;
  93.     STDMETHOD(RMASurfaceUpdate)         (THIS_ IHXVideoSurface* pSurface)                                    PURE;
  94.     
  95.     STDMETHOD(HandleClick)              (THIS_ INT16 x, INT16 y)                                              PURE;
  96.     
  97.     virtual BOOL _IsValidRendererSurface();
  98.     virtual HX_RESULT RMASurfaceUpdate2( IHXSubRectVideoSurface* pSurface,
  99.                                          HXxRect*                 pExtents,
  100.                                          HXxBoxRegion*              pDirtyRegion );
  101.     virtual void _AttachSite();
  102. };
  103. #endif