⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basesite.h

📁 linux下的一款播放器
💻 H
📖 第 1 页 / 共 3 页
字号:
/* ***** BEGIN LICENSE BLOCK ***** * Source last modified: $Id: basesite.h,v 1.6.34.3 2004/07/09 01:58:56 hubbe Exp $ *  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved. *  * The contents of this file, and the files included with this file, * are subject to the current version of the RealNetworks Public * Source License (the "RPSL") available at * http://www.helixcommunity.org/content/rpsl unless you have licensed * the file under the current version of the RealNetworks Community * Source License (the "RCSL") available at * http://www.helixcommunity.org/content/rcsl, in which case the RCSL * will apply. You may also obtain the license terms directly from * RealNetworks.  You may not use this file except in compliance with * the RPSL or, if you have a valid RCSL with RealNetworks applicable * to this file, the RCSL.  Please see the applicable RPSL or RCSL for * the rights, obligations and limitations governing use of the * contents of the file. *  * Alternatively, the contents of this file may be used under the * terms of the GNU General Public License Version 2 or later (the * "GPL") in which case the provisions of the GPL are applicable * instead of those above. If you wish to allow use of your version of * this file only under the terms of the GPL, and not to allow others * to use your version of this file under the terms of either the RPSL * or RCSL, indicate your decision by deleting the provisions above * and replace them with the notice and other provisions required by * the GPL. If you do not delete the provisions above, a recipient may * use your version of this file under the terms of any one of the * RPSL, the RCSL or the GPL. *  * This file is part of the Helix DNA Technology. RealNetworks is the * developer of the Original Code and owns the copyrights in the * portions it created. *  * This file, and the files included with this file, is distributed * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET * ENJOYMENT OR NON-INFRINGEMENT. *  * Technology Compatibility Kit Test Suite(s) Location: *    http://www.helixcommunity.org/content/tck *  * Contributor(s): *  * ***** END LICENSE BLOCK ***** */#ifndef _BASESITE_H_#define _BASESITE_H_#include "hxslist.h"#include "chxpckts.h"#include "hxwin.h"#include "hxwintyp.h"#include "hxsite2.h"#include "hxvctrl.h"#include "hxcomm.h"#include "hxengin.h"#include "region.h"#include "sitetran.h"#include "coloracc.h"class   CHXBaseSite;class   CBaseSurface;class   CBaseRootSurface;class   CHXSiteStatusText;class   BaseSiteCallback;class   ScrollSiteCallback;class   HXMutex;class   HXThread;/* *  reasons to schedule call backs. */#define REPAINT    0#define CLIP       1#define MOUSE      2  #define REDRAW_ALL 3#define MOVE       4#if defined(_UNIX) || defined(_MACINTOSH)#  define HX_SHOW_WINDOW 1#  define HX_HIDE_WINDOW 2#endif#if defined(_WINDOWS)#  define HX_SHOW_WINDOW SW_SHOW#  define HX_HIDE_WINDOW SW_HIDE#endif//Defines for sensitivity.#define SENSITIVITY_NOT_SET     -3#define SENSITIVITY_OPAQUE      -2#define SENSITIVITY_TRANSPARENT -1/**************************************************************************** *  *  Class: * *      NonDelegatingUnknown * *  Purpose: * *      Same signature as IUnknown, allows an object to implement  *      aggregation. * */class SiteNonDelegatingUnknown{  public:    /*     * DelegatingUnknown methods     */    STDMETHOD(SiteNonDelegatingQueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;    STDMETHOD_(ULONG32,SiteNonDelegatingAddRef) (THIS) PURE;    STDMETHOD_(ULONG32,SiteNonDelegatingRelease) (THIS) PURE;};/**************************************************************************** *  *  Class: * *      CHXBaseSite * *  Purpose: * *      Implementation for IHXSite objects which are associated with *      platform specific window objects on Microsoft Windows and X-Windows. * */class CHXBaseSite : public SiteNonDelegatingUnknown, public IHXSite2, public IHXSiteTreeNavigation, public IHXSiteWindowed, public IHXSiteWindowless, public IHXCallback, public IHXStatusMessage, public IHXSiteFullScreen, public IHXVideoControl, public IHXInterruptSafe, public IHXSiteTransition, public IHXSiteComposition, public IHXKeyBoardFocus, public IHXDrawFocus, public IHXSubRectSite{  public:        static CHXBaseSite* CreateSite( IUnknown* pContext,                                    IUnknown* pUnkOuter = NULL,                                    INT32 lZorder = 0);    static BOOL             zm_bInFullScreenTest;    ColorFuncAccess*        zm_pColorAcc;    static CHXSimpleList    zm_YUVSiteList;    LONG32                 m_lRefCount;    IUnknown*              m_pUnkOuter;    CHXHeader*             m_pValues;    CHXMapPtrToPtr         m_ChildrenMap;    CHXSimpleList          m_ChildrenInZOrder;    CHXSimpleList          m_PassiveSiteWatchers;    IHXSiteUser*          m_pUser;    CHXBaseSite*           m_pParentSite;    CHXBaseSite*           m_pTopLevelSite;    CHXBaseSite*           m_pFocusSite;    CBaseSurface*          m_pVideoSurface;    CHXSiteStatusText*     m_pStatusText;    UINT32                 m_nStatusTextExpireTime;    BaseSiteCallback*      m_pCallback;    ScrollSiteCallback*    m_pScrollSiteCallback;    IHXCommonClassFactory*m_pCCF;    IHXSiteWatcher*       m_pWatcher;    IUnknown*              m_pContext;    HXxSize                m_size;    HXMutex*              m_pMutex;    HXxPoint               m_position;    HXxPoint               m_positionOrig;    HXxPoint               m_CreateWindowPos;    HXxPoint               m_topleft;    INT32                  m_lZOrder;    BOOL                   m_bIsVisible;    LONG32                 m_lBltEntryCount;    BOOL                   m_bInDestructor;    BOOL                   m_bIsChildWindow;    BOOL                   m_bRecomputeClipScheduled;    BOOL                   m_bForceRedrawNeeded;    BOOL                   m_bRepaintScheduled;    BOOL                   m_bInFullScreen;    BOOL                   m_bSettingDisplayMode;    BOOL                   m_bDisableForceRedraw;    BOOL                   m_bProcessRepaint;    BOOL                   m_bWasTopMost;    BOOL                   m_bModeSharpness;    BOOL                   m_bAboutToBlt;    CBaseRootSurface*      m_pRootSurface;    HXREGION*                m_pDirtyRegion;    BOOL                   m_bSetCaptureOn;    IHXSiteUser*          m_pCaptureUser;    IHXSiteUser*          m_pLastUser;    CHXBaseSite*           m_pMouseInSite;    CallbackHandle         m_CallbackHandle;    CallbackHandle         m_ScrollSiteCallbackHandle;    IHXScheduler*         m_pScheduler;    HXxPoint               m_windowPosition;    HXxSize                m_windowSize;    HXxPoint               m_screenOffset;    BOOL                   m_bDoNotGenerateWMPPaint;    UINT32                 m_nLastMoveTime;    BOOL                   m_bAttachWindowPending;    BOOL                   m_bDetachWndMsgPending;    UINT16                 m_nOldBitsPerPixel;    UINT16                 m_nOldHorzRes;    UINT16                 m_nOldVertRes;    float                  m_fSharpness;    float                  m_fHue;    float                  m_fSaturation;    float                  m_fContrast;    float                  m_fBrightness;    INT32                  m_XSliderPos;       INT32                  m_YSliderPos;       INT32                  m_XSliderRange;    INT32                  m_YSliderRange;    CHXSimpleList          m_PendingTaskList;    TransitionType         m_fpTransitionEffect;    HXxWindow              m_TopLevelWindow;    HXxWindow*             m_pWindow;    HXxRect                m_rectOldClientRect;    HXREGION*                m_Region;    HXREGION*                m_RegionForMouse;    HXREGION*                m_RegionWithoutChildren;    INT32                  m_nDelayFillBorders;    INT32                  m_nTransitionState;    BOOL                   m_bTransitionReversed;    BOOL                   m_bTransitionTranIn;    INT32                  m_nTransitionVertRepeat;    INT32                  m_nTransitionHorzRepeat;    INT32                  m_nTransitionBorderWidth;    tranLines              m_TransitionBorderLines;    ULONG32                m_ulTransitionBorderColor;    ULONG32                m_ulTransitionFadeColor;    BOOL                   m_bTransitionBlendBorder;    BOOL                   m_bTransitionCoordinated;    BOOL                   m_bTransitionCoordTranIsParentClip;    BOOL                   m_bRegionIsValid;    BOOL                   m_bWindowCreatedByCreate;    BOOL                   m_bCalledComputeClipFromTransition;    INT32                  m_nEventSensitivity;    CHXMapPtrToPtr         m_upgradeMap;    BOOL                   m_bScheduleUpgrade;    CHXSimpleList          m_ListOfRealVideoSites;    BOOL                   m_bVideoUnderTransition;    BOOL                   m_bInForceRedraw;    BOOL                   m_bSiteRefresh;    BOOL                   m_bTestWindowing;    INT32                  m_nWindowColor;    BOOL                   m_bPostageStamp;    BOOL                   m_bBltHasBeenCalled;    HXxRect                m_UpdateBltStatsRect;    BOOL                   m_bScrollingSite;       // IHXKeyBoardFocus    IHXSiteUser*          m_pKeyBoardFocusUser;    // IHXDrawFocus    enum        {            DRAW_RECT           = 1,             DRAW_ELLIPSE        = 1<<1,             DRAW_POLYGON        = 1<<2        };        typedef struct _FocusRect_t    {        union        {            HXxRect rcFocus;                        struct            {                HXxPoint* pFocusPoints;                UINT32    ulFocusPoints;            } polygon;        };                UINT32     ulShape;        UINT32     ulLineStyle;        UINT32     ulLineWidth;              UINT8      red, green, blue;        UINT8      red2, green2, blue2;        IHXBuffer *pCustomPattern;        UINT32     ulCustomEntries;        BOOL       bRectActive;        BOOL       bSecondaryColors;            } tFocusRect;        tFocusRect             m_rcFocusRect;       typedef enum     {        ONMOVEWINDOW = 0        , ONUPDATEWINDOW        , ONSHOWWINDOW        , ONSETWINDOWPOS        , ONSETWINDOWREGION        , ONSETXSLIDER        , ONSETYSLIDER        , ONSETFOCUS        , ONSETSIZE        , ONSETPOSITION    } PendingTaskType;    struct PendingTask    {        PendingTask( PendingTaskType uTaskType,                     CHXBaseSite*    pThis,                     void*           ulArg1 = 0,                     void*           ulArg2 = 0,                     void*           ulArg3 = 0,                     void*           ulArg4 = 0,                     void*           ulArg5 = 0,                     void*           ulArg6 = 0,                     void*           ulArg7 = 0                     )            {                m_pThis    = pThis;                m_TaskType = uTaskType;                m_ulArg1   = ulArg1;                m_ulArg2   = ulArg2;                m_ulArg3   = ulArg3;                m_ulArg4   = ulArg4;                m_ulArg5   = ulArg5;                m_ulArg6   = ulArg6;                m_ulArg7   = ulArg7;            };              PendingTaskType m_TaskType;        CHXBaseSite*    m_pThis;        void*           m_ulArg1;        void*           m_ulArg2;        void*           m_ulArg3;        void*           m_ulArg4;        void*           m_ulArg5;        void*           m_ulArg6;        void*           m_ulArg7;    };    /*     * SiteNonDelegatingUnknown methods     */    STDMETHOD(SiteNonDelegatingQueryInterface)  (THIS_ REFIID riid, void** ppvObj);    STDMETHOD_(ULONG32,SiteNonDelegatingAddRef) (THIS);    STDMETHOD_(ULONG32,SiteNonDelegatingRelease) (THIS);        /*     * IUnknown     */    STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj);    STDMETHOD_(ULONG32,AddRef) (THIS);    STDMETHOD_(ULONG32,Release) (THIS);    /*     * IHXSiteWindowless     */    STDMETHOD(EventOccurred)(THIS_ HXxEvent* /*IN*/ pEvent);    STDMETHOD_(HXxWindow*,GetParentWindow)(THIS);    /*     * IHXSiteWindowed     */    STDMETHOD(AttachWindow) (THIS_ HXxWindow* /*IN*/ pWindow);    STDMETHOD(DetachWindow) (THIS);    STDMETHOD(Create) (THIS_ void* ParentWindow, UINT32 style);    STDMETHOD(Destroy) (THIS);    STDMETHOD_(HXxWindow*,GetWindow)(THIS);    /*     * IHXSite methods     */    STDMETHOD(AttachUser) (THIS_ IHXSiteUser*   /*IN*/  pUser);    STDMETHOD(DetachUser) (THIS);    STDMETHOD(GetUser) (THIS_ REF(IHXSiteUser*) /*OUT*/ pUser);    STDMETHOD(CreateChild) (THIS_ REF(IHXSite*)  /*OUT*/ pChildSite);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -