📄 hxwin.h
字号:
*/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; STDMETHOD(Initialize) (THIS_ IHXValues* pParams) PURE; STDMETHOD(SetPercentage) (THIS_ UINT32 nThousandnthsComplete) PURE;};/**************************************************************************** * * Interface: * * IHXRegion * * Purpose: * * Iterface for managing HXRegions. * * IHXRegion: * * {00002200-0903-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXRegion, 0x00000D14, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#define CLSID_IHXRegion IID_IHXRegion#undef INTERFACE#define INTERFACE IHXRegionDECLARE_INTERFACE_(IHXRegion, IUnknown){ /************************************************************************ * Method: * IHXRegion::SetRect * Purpose: * This function creates a rectangular region. * */ STDMETHOD(SetRect) (THIS_ HXxRect* pRect) PURE; /************************************************************************ * Method: * IHXRegion::SetRect * Purpose: * This function creates a rectangular region. * */ STDMETHOD(SetRect) (THIS_ int x, int y, int x1, int y1) PURE; /************************************************************************ * Method: * IHXRegion::SetPoly * Purpose: * This function creates a region defined by an arbitary polygon. * */ STDMETHOD(SetPoly) (THIS_ HXxPoint** pRect, BOOL bUseWinding) PURE; /************************************************************************ * Method: * IHXRegion::IsEqual * Purpose: * This function determines if two regions are equal. * */ STDMETHOD_(BOOL,IsEqual) (THIS_ IHXRegion* pRegion) PURE; /************************************************************************ * Method: * IHXRegion::GetExtents * Purpose: * This function allows the user to determine the extents of the region * */ STDMETHOD(GetExtents) (THIS_ REF(HXxRect) rExtents) PURE; /************************************************************************ * Method: * IHXRegion::Offset * Purpose: * This function offsets the region by the spectified origin * */ STDMETHOD(Offset) (THIS_ HXxPoint* pOrigin) PURE; /************************************************************************ * Method: * IHXRegion::PointHitTest * Purpose: * This function returns if TRUE if the specified point is in the region * */ STDMETHOD_(BOOL,PointHitTest) (THIS_ HXxPoint* pPoint) PURE; /************************************************************************ * Method: * IHXRegion::RectHitTest * Purpose: * This function returns * HX_CONTAINED if the rect is fully contained within the region * HX_PART if part of the rect is within the region * HX_OUT if no part of the rect is within the region * */ STDMETHOD_(INT32,RectHitTest) (THIS_ HXxRect* pRect) PURE; /************************************************************************ * Method: * IHXRegion::GetNumRects * Purpose: * This function gets the number of rects which describe the * region * */ STDMETHOD_(UINT32, GetNumRects) (THIS) PURE; /************************************************************************ * Method: * IHXRegion::GetRectAtIndex * Purpose: * This function gets the RECT at index nRectIndex * */ STDMETHOD(GetRectAtIndex) (THIS_ UINT32 nRectIndex, REF(HXxRect) rRect) PURE; /************************************************************************ * Method: * IHXRegion::UnionRegion * Purpose: * Union Region -- this operator like all of the operators will create an IHXRegion * if pDest is NULL. * */ STDMETHOD(UnionRegion) (THIS_ REF(IHXRegion*) pDest, IHXRegion* pSrc1) PURE; /************************************************************************ * Method: * IHXRegion::GetRectAtIndex * Purpose: * Copy Region * */ STDMETHOD(CopyRegion) (THIS_ REF(IHXRegion*) pDest) PURE; /************************************************************************ * Method: * IHXRegion::GetRectAtIndex * Purpose: * Diff Region * */ STDMETHOD(DiffRegion) (THIS_ REF(IHXRegion*) pDest, IHXRegion* pSrc1) PURE; /************************************************************************ * Method: * IHXRegion::GetRectAtIndex * Purpose: * And Region * */ STDMETHOD(AndRegion) (THIS_ REF(IHXRegion*) pDest, IHXRegion* pSrc1) PURE; /************************************************************************ * Method: * IHXRegion::GetRectAtIndex * Purpose: * XOR Region * */ STDMETHOD(XORRegion) (THIS_ REF(IHXRegion*) pDest, IHXRegion* pSrc1) PURE; /************************************************************************ * Method: * IHXRegion::GetRegion * Purpose: * Bad hack for the moment to obtain the REGION pointer of an HXRegion. * Will have to remove this later. * */ STDMETHOD_(void*, GetRegion) (THIS) PURE;};/**************************************************************************** * * Interface: * * IHXColorConverterManager * * Purpose: * * Interface for obtaining IHXColorConverters * * IHXColorConverterManager: * * {00000D15-0902-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXColorConverterManager, 0x00000D15, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXColorConverterManagerDECLARE_INTERFACE_(IHXColorConverterManager, IUnknown){ /* * Get ColorConverter is called to obtain a color converter to convert * from a particular bitmap to another bitmap. */ STDMETHOD(GetColorConverter) (THIS_ HXBitmapInfoHeader* /*IN*/ pBitmapInfoIn, HXBitmapInfoHeader* /*IN*/ pBitmapInfoOut, REF(IHXColorConverter*) /*OUT*/ pConverter) PURE;};/**************************************************************************** * * Interface: * * IHXColorConverter * * Purpose: * * Interface for converting between two bitmaps of different color formats. * * IHXColorConverterManager: * * {00000D16-0902-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXColorConverter, 0x00000D16, 0x903, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXColorConverterDECLARE_INTERFACE_(IHXColorConverter, IUnknown){ /* * ColorConvert converts the pBitsIn from one color format to * the format of pBitsOut */ STDMETHOD(ColorConvert) (THIS_ UCHAR* pBitsIn, UCHAR* pBitsOut, HXxRect* pRectIn, HXxRect* pRectOut ) PURE;};/**************************************************************************** * * Interface: * * IHXOverlayResponse * * Purpose: * * Interface for reporting/computing the current statistics relevant to * Video Presentations. * * IHXOverlayResponse: * * {00000D22-0902-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXOverlayResponse, 0x00000D22, 0x903, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXOverlayResponseDECLARE_INTERFACE_(IHXOverlayResponse, IUnknown){ STDMETHOD(OverlayGranted) (THIS ) PURE; STDMETHOD(OverlayRevoked) (THIS ) PURE;};/**************************************************************************** * * Interface: * * IHXOverlayManager * * Purpose: * * Interface for reporting/computing the current statistics relevant to * Video Presentations. * * IHXOverlayManager: * * {00000D21-0902-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXOverlayManager, 0x00000D21, 0x903, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXOverlayManagerDECLARE_INTERFACE_(IHXOverlayManager, IUnknown){ STDMETHOD(HasOverlay) (THIS_ IHXOverlayResponse* pResp ) PURE; STDMETHOD(AddStats) (THIS_ IHXOverlayResponse* pResp, UINT32 ulNumPixels ) PURE; STDMETHOD(RemoveOverlayRequest)(THIS_ IHXOverlayResponse* pResp ) PURE;};// $EndPrivate./**************************************************************************** * * Interface: * * IHXKeyBoardFocus * * Purpose: * * Interface for setting/getting the keyboard focus for a particular siteuser * * IHXKeyBoardFocus: * * {00000D23-0902-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXKeyBoardFocus, 0x00000D23, 0x903, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXKeyBoardFocusDECLARE_INTERFACE_(IHXKeyBoardFocus, IUnknown){ STDMETHOD(SetKeyboardFocus)(THIS_ IHXSiteUser* pSiteUser ) PURE; STDMETHOD(GetKeyboardFocus)(THIS_ IHXSiteUser* &pSiteUser ) PURE;};/**************************************************************************** * * Interface: * * IHXDrawFocus * * Purpose: * * Interface for displaying the site that has the keyboard focus * * IHXDrawFocus: * * {00000D24-0902-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXDrawFocus, 0x00000D24, 0x903, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXDrawFocusDECLARE_INTERFACE_(IHXDrawFocus, IUnknown){ /************************************************************************ * Method: * IHXDrawFocus::SetStyle * Purpose: * Ask the site to set the focus style. * * Syles: * ULONG32 Properties: * * LINE_STYLE = HX_SOLID_LINE, HX_DASHED_LINE, HX_DOTTED_LINE, * HX_CUSTOM_LINE * LINE_WIDTH = Width of the line in pixels * RED = 0-255 color of the primary pixel * GREEN = 0-255 color of the primary pixel * BLUE = 0-255 color of the primary pixel * RED_OFF = 0-255 color of the secondary pixel * GREEN_OFF = 0-255 color of the secondary pixel * BLUE_OFF = 0-255 color of the secondary pixel * CUSTOM_LINE_ENTRIES number of ULONG32s in CUSTOM_LINE_PATTERN * * IHXBuffer Properties: * * CUSTOM_LINE_PATTERN list of ULONG32s describing the number * of primary and secondary pixels (eq 4241 = "----..----." where * - is a primary pixel and . is a secondary pixel) and * CUSTOM_LINE_ENTRIES equals 4. Secondary pixels are not * drawn if RED_OFF, GREEN_OFF, and BLUE_OFF are not set. */ STDMETHOD(SetStyle) (THIS_ IHXValues* pProperties) PURE; /************************************************************************ * Method: * IHXDrawFocus::ClearFocus * Purpose: * Ask the site to clear the current focus drawing. */ STDMETHOD(ClearFocus)(THIS) PURE; /************************************************************************ * Method: * IHXDrawFocus::SetFocusPolygon * Purpose: * Ask the site to draw polygon around focus */ STDMETHOD(SetFocusPolygon)(THIS_ HXxPoint* pPoints, ULONG32 numPoints) PURE; /************************************************************************ * Method: * IHXDrawFocus::SetFocusRect * Purpose: * Ask the site to draw rectangle around focus */ STDMETHOD(SetFocusRect) (THIS_ HXxRect* pRect) PURE; /************************************************************************ * Method: * IHXDrawFocus::SetFocusEllipse * Purpose: * Ask the site to draw ellipse around focus */ STDMETHOD(SetFocusEllipse) (THIS_ HXxRect* pRect) PURE;};// $Private:/**************************************************************************** * * Interface: * * IHXSubRectSite * * Purpose: * * Interface to determine if a site support sub rect BLT'ing via * the HX_SURFACE_UPDATE2 message. If the site does support sub * rect BLT'ing you can tell the site to send you the * HX_SURFACE_UPDATE2 messages via this interface. * * IHXSubRectSite: * * {00000D25-0902-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXSubRectSite, 0x00000D25, 0x903, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXSubRectSiteDECLARE_INTERFACE_(IHXSubRectSite, IHXSite){ /* * Tells the site to send/not-send HX_SURFACE_UPDATE2 messages. * These messages contain actuall dirty rects so that the renderer * does not need to BLT the entire frame. */ STDMETHOD(SendSubRectMessages) (THIS_ BOOL bRet ) PURE; /* * New damage region call that takes the cross platfrom region * defined in hxwintyp.h and invalidates the rects in it */ STDMETHOD(SubRectDamageRegion) (THIS_ HXxBoxRegion* pRegion ) PURE; /* * Method to get the new video surface that comes with the sub * rect BLT'ing support. */ STDMETHOD(GetSubRectVideoSurface) (THIS_ REF(IHXSubRectVideoSurface*) pSurface ) PURE;};// $EndPrivate./**************************************************************************** * * Interface: * * IHXFocusNavigation * * Purpose: * * Interface for navigating between and within keyboard focus sites * * IHXFocusNavigation: * * {B42B7677-F605-438e-9002-E2AAB7784B43} * */DEFINE_GUID(IID_IHXFocusNavigation, 0xb42b7677, 0xf605, 0x438e, 0x90, 0x2, 0xe2, 0xaa, 0xb7, 0x78, 0x4b, 0x43);#undef INTERFACE#define INTERFACE IHXFocusNavigationDECLARE_INTERFACE_(IHXFocusNavigation, IUnknown){ /************************************************************************ * Method: * IHXFocusNavigation::SetFocus * Purpose: * Ask the renderer to set the focus to the given item. */ STDMETHOD(SetFocus) (THIS_ HXFocusContext eFocus) PURE; /************************************************************************ * Method: * IHXFocusNavigation::ClearFocus * Purpose: * Ask the renderer to clear the current focus. */ STDMETHOD(ClearFocus) (THIS) PURE; /************************************************************************ * Method: * IHXFocusNavigation::ActivateFocus * Purpose: * Ask the renderer to activate the focused link. Do nothing if * there is no focus point. */ STDMETHOD(ActivateFocus) (THIS) PURE; /************************************************************************ * Method: * IHXFocusNavigation::GetFocusState * Purpose: * Obtain the current focus state */ STDMETHOD_(HXFocusState,GetFocusState) (THIS) PURE;};#endif /* _HXWIN_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -