📄 hxwin.h
字号:
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXSiteUser methods usually called by the "context" to
* associate users with the site.
*/
STDMETHOD(AttachSite) (THIS_
IHXSite* /*IN*/ pSite) PURE;
STDMETHOD(DetachSite) (THIS) PURE;
/*
* IHXSiteUser methods called to inform user of an event.
*/
STDMETHOD(HandleEvent) (THIS_
HXxEvent* /*IN*/ pEvent) PURE;
STDMETHOD_(BOOL,NeedsWindowedSites) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXSiteWatcher
*
* Purpose:
*
* Interface for IHXSiteWatcher objects.
*
* IID_IHXSite:
*
* {00000D05-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXSiteWatcher, 0x00000D05, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXSiteWatcher
DECLARE_INTERFACE_(IHXSiteWatcher, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXSiteWatcher methods called by the site when a watcher
* is attached to or detached from it.
*/
STDMETHOD(AttachSite) (THIS_
IHXSite* /*IN*/ pSite) PURE;
STDMETHOD(DetachSite) (THIS) PURE;
/*
* IHXSiteWatcher methods called by the site an attempt is
* made to change it's position or size. The site watcher must
* return HXR_OK for the change to occur. If the site watcher
* returns any value other than HXR_OK then the size or position
* will not change. The site watcher can also modify the new
* size of position.
*/
STDMETHOD(ChangingPosition) (THIS_
HXxPoint posOld,
REF(HXxPoint)/*IN-OUT*/ posNew) PURE;
STDMETHOD(ChangingSize) (THIS_
HXxSize sizeOld,
REF(HXxSize) /*IN-OUT*/ sizeNew) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXSiteUserSupplier
*
* Purpose:
*
* Interface implemented by renderers and objects with provide layouts to
* the client core. This interface is called by the core when it needs a
* new IHXSiteUser, or when it is done using an IHXSiteUser.
*
* IID_IHXSiteUserSupplier:
*
* {00000D06-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXSiteUserSupplier, 0x00000D06, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXSiteUserSupplier
DECLARE_INTERFACE_(IHXSiteUserSupplier, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXSiteUserSupplier methods usually called by the
* "context" to ask for additional or to release previously
* created site users.
*/
STDMETHOD(CreateSiteUser) (THIS_
REF(IHXSiteUser*)/*OUT*/ pSiteUser) PURE;
STDMETHOD(DestroySiteUser) (THIS_
IHXSiteUser* /*IN*/ pSiteUser) PURE;
STDMETHOD_(BOOL,NeedsWindowedSites) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXSiteSupplier
*
* Purpose:
*
* Interface implemented by users of the client core. This interface is
* called by the core when it needs a new IHXSite, or when it is done
* using an IHXSite.
*
* IID_IHXSiteSupplier:
*
* {00000D07-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXSiteSupplier, 0x00000D07, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXSiteSupplier
DECLARE_INTERFACE_(IHXSiteSupplier, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXSiteSupplier methods
*/
/************************************************************************
* Method:
* IHXSiteSupplier::SitesNeeded
* Purpose:
* Called to inform the site supplier that a site with a particular
* set of characteristics is needed. If the site supplier can
* fulfill the request it should call the site manager and add one
* or more new sites.
* Note that the request for sites is associated with a Request ID
* the client core will inform the site supplier when this requested
* site is no longer needed.
*/
STDMETHOD(SitesNeeded) (THIS_
UINT32 uReqestID,
IHXValues* pSiteProps) PURE;
/************************************************************************
* Method:
* IHXSiteSupplier::SitesNotNeeded
* Purpose:
* Called to inform the site supplier that all sites from a previos
* site request are no longer needed. If the site supplier had
* previously created non-persistant sites (like popup windows)
* to fulfill a request for sites it should call the site manager
* and remove those sites.
*/
STDMETHOD(SitesNotNeeded) (THIS_
UINT32 uReqestID) PURE;
/************************************************************************
* Method:
* IHXSiteSupplier::BeginChangeLayout
* Purpose:
* Called to inform the site supplier a layout change has beginning
* it can expect to recieve SitesNeeded() and SitesNotNeeded() calls
* while a layout change is in progress,
*/
STDMETHOD(BeginChangeLayout) (THIS) PURE;
/************************************************************************
* Method:
* IHXSiteSupplier::DoneChangeLayout
* Purpose:
* Called to inform the site supplier the layout change has been
* completed.
*/
STDMETHOD(DoneChangeLayout) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXSiteManager
*
* Purpose:
*
* Interface implemented by the client core. This interface is called
* by users of the client core to inform it of IHXSite's which are
* available for layout of renderers
*
* IID_IHXSiteManager:
*
* {00000D08-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXSiteManager, 0x00000D08, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXSiteManager
DECLARE_INTERFACE_(IHXSiteManager, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXSiteManager methods
*/
/************************************************************************
* Method:
* IHXSiteManager::AddSite
* Purpose:
* Called to inform the site manager of the existance of a site.
*/
STDMETHOD(AddSite) (THIS_
IHXSite* pSite) PURE;
/************************************************************************
* Method:
* IHXSiteManager::RemoveSite
* Purpose:
* Called to inform the site manager that a site is no longer
* available.
*/
STDMETHOD(RemoveSite) (THIS_
IHXSite* pSite) PURE;
};
// $Private:
/****************************************************************************
*
* Interface:
*
* IHXSiteManager2
*
* Purpose:
*
* Interface implemented by the client core. This interface is called
* by users of the client core to iterate over the sites known by this
* site manager.
*
* IID_IHXSiteManager:
*
* {00000D20-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXSiteManager2, 0x00000D20, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXSiteManager2
DECLARE_INTERFACE_(IHXSiteManager2, IUnknown)
{
/*
* IHXSiteManager2 methods
*/
/************************************************************************
* Method:
* IHXSiteManager2::GetNumberOfSites
* Purpose:
* Called to get the number of sites that the site mananger currently
* knows about.
*/
STDMETHOD(GetNumberOfSites) (THIS_ REF(UINT32) nNumSites ) PURE;
/************************************************************************
* Method:
* IHXSiteManager2::GetSiteAt
* Purpose:
* Used to iterate over the sites.
*
*/
STDMETHOD(GetSiteAt) (THIS_ UINT32 nIndex, REF(IHXSite*) pSite) PURE;
};
// $EndPrivate.
/****************************************************************************
*
* Interface:
*
* IHXMultiInstanceSiteUserSupplier
*
* Purpose:
*
* This is the interface for a special default object which is available
* from the common class factory. This object will act as a site user
* supplier for any renderer (or other site user object) that wants
* default support for multiple instances. The site user must work as
* a windowless site for this default implementation to work. The
* default object also implements the IHXSite interfave to allow
* the site user object to control all the sites through a single
* interface instance.
*
* IID_IHXMultiInstanceSiteUserSupplier:
*
* {00000D09-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXMultiInstanceSiteUserSupplier, 0x00000D09, 0x901,
0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#define CLSID_IHXMultiInstanceSiteUserSupplier \
IID_IHXMultiInstanceSiteUserSupplier
#undef INTERFACE
#define INTERFACE IHXMultiInstanceSiteUserSupplier
DECLARE_INTERFACE_(IHXMultiInstanceSiteUserSupplier, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXMultiInstanceSiteUserSupplier methods called by site users.
*/
STDMETHOD(SetSingleSiteUser) (THIS_
IUnknown* pUnknown) PURE;
STDMETHOD(ReleaseSingleSiteUser) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXSiteEnumerator
*
* Purpose:
*
* Provides an interface to enumerate sites. Currently implemented
* in the IHXMultiInstanceSiteUserSupplier supplied by the core player,
* it can be used to render to MISUS sites outside of an HX_SURFACE_UPDATE;
* this is especially useful when using IHXVideoSurface2.
*
* IID_IHXSiteEnumerator:
*
* {67f8c5bd-4b1d-4c09-8fb7-8ac7c20d29c7}
*
*/
DEFINE_GUID(IID_IHXSiteEnumerator, 0x67f8c5bd, 0x4b1d,
0x4c09, 0x8f, 0xb7, 0x8a, 0xc7, 0xc2, 0x0d, 0x29, 0xc7);
#undef INTERFACE
#define INTERFACE IHXSiteEnumerator
DECLARE_INTERFACE_(IHXSiteEnumerator, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
typedef void* SitePosition;
/*
* HXSiteEnumerator methods
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -