📄 basesite.h
字号:
STDMETHOD(DamageRegion) (THIS_ HXxRegion region);
STDMETHOD(ForceRedraw) (THIS);
//
// IHXComposition methods
//
STDMETHOD(LockComposition) (THIS);
STDMETHOD(UnlockComposition) (THIS);
STDMETHOD(BltComposition) (THIS);
STDMETHOD(SetCompositionMode) (THIS_ BOOL OnOrOff);
STDMETHOD_(BOOL, IsCompositionLocked) (THIS);
STDMETHOD_(BOOL, IsCompositionMode) (THIS);
/*
* IHXSite2 methods
*/
STDMETHOD(UpdateSiteWindow) (THIS_ HXxWindow* /*IN*/ pWindow);
STDMETHOD(ShowSite) (THIS_ BOOL bShow);
STDMETHOD_(BOOL, IsSiteVisible) (THIS);
STDMETHOD(SetZOrder) (THIS_ INT32 lZOrder);
STDMETHOD(GetZOrder) (THIS_ REF(INT32) lZOrder);
STDMETHOD(MoveSiteToTop) (THIS);
STDMETHOD(GetVideoSurface) (THIS_ REF(IHXVideoSurface*) pSurface);
STDMETHOD_(UINT32,GetNumberOfChildSites) (THIS);
STDMETHOD(AddPassiveSiteWatcher) (THIS_ IHXPassiveSiteWatcher* pWatcher);
STDMETHOD(RemovePassiveSiteWatcher) (THIS_ IHXPassiveSiteWatcher* pWatcher);
STDMETHOD(SetCursor) (THIS_ HXxCursor cursor, REF(HXxCursor) oldCursor);
/*
* IHXCallback methods
*/
STDMETHOD(Func) (THIS);
/*
* IHXStatusMessage methods
*/
STDMETHOD(SetStatus) (THIS_ const char* pText);
/*
* IHXSiteFullScreen methods
*/
STDMETHOD(EnterFullScreen) (THIS);
STDMETHOD(ExitFullScreen) (THIS);
STDMETHOD(TestFullScreen) (THIS_ void* hTestBitmap,const char* pszStatusText);
STDMETHOD_(BOOL, IsFullScreen) (THIS);
/*
* IHXVideoControls methods
*/
STDMETHOD_(float, GetBrightness) (THIS);
STDMETHOD(SetBrightness) (THIS_ float Brightness);
STDMETHOD_(float, GetContrast) (THIS);
STDMETHOD(SetContrast) (THIS_ float Contrast);
STDMETHOD_(float, GetSaturation) (THIS);
STDMETHOD(SetSaturation) (THIS_ float Saturation);
STDMETHOD_(float, GetHue) (THIS);
STDMETHOD(SetHue) (THIS_ float Hue);
STDMETHOD_(float, GetSharpness) (THIS);
STDMETHOD(SetSharpness) (THIS_ float Sharpness);
STDMETHOD(SetModeSharpness) (THIS_ UINT16 dFlag);
/************************************************************************
* Method:
* IHXInterruptSafe::IsInterruptSafe
* Purpose:
* This is the function that will be called to determine if
* interrupt time execution is supported.
*/
STDMETHOD_(BOOL,IsInterruptSafe) (THIS);
/*
* IHXSiteTransition methods
*/
STDMETHOD(Initialize) (THIS_ IHXValues* pParams) ;
STDMETHOD(SetPercentage) (THIS_ UINT32 nThousandnthsComplete) ;
/*
* IHXKeyBoardFocus methods
*/
STDMETHOD(SetKeyboardFocus)(THIS_ IHXSiteUser* pSiteUser );
STDMETHOD(GetKeyboardFocus)(THIS_ IHXSiteUser* &pSiteUser );
/*
* IHXDrawFocus methods
*/
STDMETHOD(SetStyle)(THIS_ IHXValues* pProperties);
STDMETHOD(ClearFocus)(THIS);
STDMETHOD(SetFocusPolygon)(THIS_ HXxPoint* pPoints, ULONG32 numPoints);
STDMETHOD(SetFocusRect) (THIS_ HXxRect* pRect);
STDMETHOD(SetFocusEllipse) (THIS_ HXxRect* pRect);
/*
* IHXSubRectSite methods
*/
STDMETHOD(SendSubRectMessages) (THIS_ BOOL bRet );
STDMETHOD(SubRectDamageRegion) (THIS_ HXxBoxRegion* pRegion );
STDMETHOD(GetSubRectVideoSurface)(THIS_ REF(IHXSubRectVideoSurface*) pSurface );
//
// Debug methods...
//
void DisplaySiteData(const char *);
void DisplayChildSiteData(const char *);
void DisplayAllSiteData();
void VerifyNoDups( CHXMapPtrToPtr& map, HXREGION* reg );
//
//InLine Methods
//
void SetOrigin(HXxPoint* pOrigin) {memcpy(&m_topleft, pOrigin, sizeof(HXxPoint));} /* Flawfinder: ignore */
HXxPoint* GetOrigin() {return &m_topleft;}
void SetInternalZOrder(INT32 lZOrder) {m_lZOrder = lZOrder;};
void SetFocusSite(CHXBaseSite* pFocusSite) {m_pFocusSite = pFocusSite;}
CHXBaseSite* GetFocusSite() {return m_pFocusSite;}
BOOL IsMoving() {return FALSE;}//m_bMoving;}
//
// Internal Functions
//
CHXBaseSite(IUnknown* pContext, IUnknown* pUnkOuter = NULL, INT32 lZorder = 0);
virtual ~CHXBaseSite();
CBaseRootSurface* GetRootSurface();
void SetParentSite(CHXBaseSite* pParentSite);
void SetTopLevelSite(CHXBaseSite* pTop);
CHXBaseSite* GetParentSite() {return m_pParentSite;}
CHXBaseSite* GetTopLevelSite();
CHXBaseSite* GetContainingCHXBaseSite();
void UpdateZOrder( CHXBaseSite* pUpdatedChildSite,
INT32 lOldZOrder,
INT32 lNewZOrder);
HXxPoint GetScreenOffset();
void SetXSliderRange(INT32);
INT32 GetXSliderRange();
void SetYSliderRange(INT32);
INT32 GetYSliderRange();
INT32 GetXSliderPos();
INT32 GetYSliderPos();
INT32 GetSliderWidth();
INT32 GetSliderHeight();
void GetWindowRect(HXxRect* pRect);
void GetExtentsWithoutChildren(HXxRect* pRect);
void RecursiveSizeSliders();
void SizeSliders();
void FuncSizeSliders();
HX_RESULT ConvertStringToXYDepth(const char* pszModeString,
REF(INT32) x,
REF(INT32) y,
REF(INT32) depth);
void SetDisplayMode();
BOOL GenerateMouseLeaveMessage();
void CheckExposeEvents();
BOOL ComputeSubRects();
void BuildParnetClipping( HXREGION* hClip, CHXBaseSite* pChild );
BOOL m_bUsingList;
void SetClipping();
BOOL AreVideoControlsActive();
BOOL IsHigherZOrderTranstitionActive();
void FindLinkedSites();
//Alpha blending support....
CHXMapPtrToPtr m_AlphaBlendSites; //Who is under us that we blend with
CHXMapPtrToPtr m_AlphaBlendNotifiers; //who we notify when we change.
BOOL m_bSiteNeverBlts;
BOOL _CheckForVisibleChild();
void AlphaBlendComputeSubRects( CHXBaseSite* pIgnoredSite );
void AlphaBlendBuildParnetClipping( HXREGION* hClip,
CHXBaseSite* pChild,
CHXBaseSite* pIgnoredSite );
void _RemoveAllNotifiers();
void _RemoveAllYUVImageLists();
void _EmptyBlenderList();
void _EmptyNotifierList();
void _AlphaBlendAddNotifier(CHXBaseSite* it);
void _RemoveHigherOrderSiblings( HXREGION* hClip, CHXBaseSite* pChild );
BOOL _BlendedBordersActive();
BOOL _FadeTransitionActive();
BOOL _BordersActive();
BOOL _IsAlphaBlending();
//End alpha support....
//IHXComposition support
BOOL m_bCompositionLocked;
BOOL m_bCompositionMode;
void UpdateModes();
BOOL DoesPrefExist(INT32 resolutionX,
INT32 resolutionY,
INT32 colorDepth);
void UpdatePrefs(INT32 resolutionX,
INT32 resolutionY,
INT32 colorDepth,
ULONG32 ulBltTime,
BOOL bPassed,
BOOL bTested);
void ScheduleCallback( INT32 nWhichCallback,
INT32 nMilliseconds,
BOOL bOverrideCompositionMode=FALSE);
BOOL IsPointInClippingRegion(HXxPoint* pPoint);
void SetEvent(REF(HXxEvent) theEvent,
ULONG32 event,
void* window,
void* param1,
void* param2);
void CheckDisplayMode(void* hdc);
void ChangeResolution();
void DestroySurfaces();
void ReInitSurfaces();
void RecomputeClip();
void FindVideoSites();
INT32 GetTopMostSiteZOrder();
void SetParentWindow(HXxWindow* pWindow);
void SetRootSurface(CBaseRootSurface* pSurface);
void CheckColorSettings();
BOOL SharpenImage( HXBitmapInfoHeader* pOptimizedFormat,
UCHAR* pImageBits,
REF(HXxRect) rSrcRect);
void SiteMoving(INT32 x, INT32 y);
void ResetOrigin();
void GetAbsoluteCords(REF(HXxPoint) point);
void AboutToBlt();
void FillColorKey();
BOOL SafeMoveWindow(void* hWnd,
INT32 X,
INT32 Y,
INT32 nWidth,
INT32 nHeight,
BOOL bRepaint);
BOOL SafeUpdateWindow(void* hWnd);
BOOL SafeShowWindow(void* hWnd, INT32 nCmdShow);
BOOL SafeSetWindowPos(void* hWnd,
void* hWndInsertAfter,
INT32 X,
INT32 Y,
INT32 cx,
INT32 cy,
UINT uFlags);
INT32 SafeSetWindowRgn(void* hWnd, HXREGION* hRgn, BOOL bRedraw);
void SafeSetXSliderRange(INT32 range);
void SafeSetYSliderRange(INT32 range);
void SafeSetFocus(HXxWindow* pWindow);
HX_RESULT _SafeSetSize(HXxSize size);
HX_RESULT _SafeSetPosition(HXxPoint position);
void ExecutePendingTasks();
void RemovePendingTasks(CHXBaseSite*);
void ResetUpdateOverlay();
void SiteNotMoving();
void _ForceRedrawAll();
void InternalForceRedraw();
void LockBlitters();
void UnlockBlitters();
void FlushSurfaces();
void DisableColorControls(float &fBrightness,
float &fContrast,
float &fSaturation,
float &fHue);
void EnableColorControls(float fBrightness,
float fContrast,
float fSaturation,
float fHue);
/*
* Small HXColor support
*/
void ColorConverterRequest(int CIDin, int CIDout, BOOL bFoundConverter);
void InternalColorConverterRequest(int CIDin, int CIDout, BOOL bFoundConverter, CHXBaseSite* pSite);
void ScheduleUpgrade();
void InternalScheduleUpgrade(UINT32 CIDIn, UINT32 CIDOut, IHXSite* pSite);
/*
* OS Specific Functions
*/
/************************************************************************
* Method:
* _NeedWindowedSite
* Purpose:
* Create a windowed site
*/
virtual void _NeedWindowedSite() = 0;
/************************************************************************
* Method:
* _AttachWindow
* Purpose:
* A window is assigned to the site so perform any required window
* initialization code.
*/
virtual void _AttachWindow() = 0;
/************************************************************************
* Method:
* _DetachWindow
* Purpose:
* The window is removed from the site so perform any required window
* clean-up code.
*/
virtual void _DetachWindow() = 0;
/************************************************************************
* Method:
* _Create
* Purpose:
* Create a window of type style with ParentWindow as its parent
*/
virtual void* _Create(void* ParentWindow, UINT32 style) = 0;
/************************************************************************
* Method:
* _Destroy
* Purpose:
* Destroy this window
*/
virtual void _Destroy(HXxWindow* pWindow) = 0;
/************************************************************************
* Method:
* _SetSize
* Purpose:
* Set the size of the window to size
*/
virtual void _SetSize(HXxSize size) = 0;
/************************************************************************
* Method:
* _SetPosition
* Purpose:
* Set the position of the window to position
*/
virtual void _SetPosition(HXxPoint position) = 0;
/************************************************************************
* Method:
* _DamageRect
* Purpose:
* Mark this area of the window for redrawing
*/
virtual void _DamageRect(HXxRect rect) = 0;
/************************************************************************
* Method:
* _DamageRegion
* Purpose:
* Mark this area of the window for redrawing
*/
virtual void _DamageRegion(HXxRegion rect) = 0;
/************************************************************************
* Method:
* _ShouldEnterForceRedraw
* Purpose:
* Serialize our drawing routines
*/
virtual BOOL _ShouldEnterForceRedraw() = 0;
/************************************************************************
* Method:
* _ExitForceRedraw
* Purpose:
* Serialize our drawing routines
*/
virtual void _ExitForceRedraw() = 0;
/************************************************************************
* Method:
* _SendOSUpdateMessage
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -