📄 hxcore.h
字号:
/************************************************************************
* Method:
* IHXPlayer::Pause
* Purpose:
* Tell the player to pause playback of all its sources.
*
*/
STDMETHOD(Pause) (THIS) PURE;
/************************************************************************
* Method:
* IHXPlayer::Seek
* Purpose:
* Tell the player to seek in the playback timeline of all its
* sources.
*
*/
STDMETHOD(Seek) (THIS_
ULONG32 ulTime) PURE;
/************************************************************************
* Method:
* IHXPlayer::GetSourceCount
* Purpose:
* Returns the current number of source instances supported by
* this player instance.
*/
STDMETHOD_(UINT16, GetSourceCount)(THIS) PURE;
/************************************************************************
* Method:
* IHXPlayer::GetSource
* Purpose:
* Returns the Nth source instance supported by this player.
*/
STDMETHOD(GetSource) (THIS_
UINT16 nIndex,
REF(IUnknown*) pUnknown) PURE;
/************************************************************************
* Method:
* IHXPlayer::SetClientContext
* Purpose:
* Called by the client to install itself as the provider of client
* services to the core. This is traditionally called by the top
* level client application.
*/
STDMETHOD(SetClientContext) (THIS_
IUnknown* pUnknown) PURE;
/************************************************************************
* Method:
* IHXPlayer::GetClientContext
* Purpose:
* Called to get the client context for this player. This is
* set by the top level client application.
*/
STDMETHOD(GetClientContext) (THIS_
REF(IUnknown*) pUnknown) PURE;
/************************************************************************
* Method:
* IHXPlayer::AddAdviseSink
* Purpose:
* Call this method to add a client advise sink.
*
*/
STDMETHOD(AddAdviseSink) (THIS_
IHXClientAdviseSink* pAdviseSink) PURE;
/************************************************************************
* Method:
* IHXPlayer::RemoveAdviseSink
* Purpose:
* Call this method to remove a client advise sink.
*/
STDMETHOD(RemoveAdviseSink) (THIS_
IHXClientAdviseSink* pAdviseSink) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXClientEngine
*
* Purpose:
*
* Interface to the basic client engine. Provided to the renderers and
* other client side components.
*
* IID_IHXClientEngine:
*
* {00000403-0901-11d1-8B06-00A024406D59}
*/
DEFINE_GUID(IID_IHXClientEngine, 0x00000403, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXClientEngine
DECLARE_INTERFACE_(IHXClientEngine, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXClientEngine methods
*/
/************************************************************************
* Method:
* IHXClientEngine::CreatePlayer
* Purpose:
* Creates a new IHXPlayer instance.
*
*/
STDMETHOD(CreatePlayer) (THIS_
REF(IHXPlayer*) pPlayer) PURE;
/************************************************************************
* Method:
* IHXClientEngine::ClosePlayer
* Purpose:
* Called by the client when it is done using the player...
*
*/
STDMETHOD(ClosePlayer) (THIS_
IHXPlayer* pPlayer) PURE;
/************************************************************************
* Method:
* IHXClientEngine::GetPlayerCount
* Purpose:
* Returns the current number of IHXPlayer instances supported by
* this client engine instance.
*/
STDMETHOD_(UINT16, GetPlayerCount)(THIS) PURE;
/************************************************************************
* Method:
* IHXClientEngine::GetPlayer
* Purpose:
* Returns the Nth IHXPlayer instances supported by this client
* engine instance.
*/
STDMETHOD(GetPlayer) (THIS_
UINT16 nPlayerNumber,
REF(IUnknown*) pUnknown) PURE;
/************************************************************************
* Method:
* IHXClientEngine::EventOccurred
* Purpose:
* Clients call this to pass OS events to all players. HXxEvent
* defines a cross-platform event.
*/
STDMETHOD(EventOccurred) (THIS_
HXxEvent* /*IN*/ pEvent) PURE;
};
// $Private:
/****************************************************************************
*
* Interface:
*
* IHXClientEngineMapper
*
* Purpose:
*
* Interface to the basic client engine. Provided to the renderers and
* other client side components.
*
* IID_IHXClientEngineMapper:
*
* {0000040A-0901-11d1-8B06-00A024406D59}
*/
DEFINE_GUID(IID_IHXClientEngineMapper, 0x0000040A, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXClientEngineMapper
DECLARE_INTERFACE_(IHXClientEngineMapper, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXClientEngineMapper methods
*/
/************************************************************************
* Method:
* IHXClientEngineMapper::GetPlayerBySite
* Purpose:
* Returns the IHXPlayer instance supported by this client
* engine instance that contains the specified IHXSite.
*/
STDMETHOD(GetPlayerBySite) (THIS_
IHXSite* pSite,
REF(IUnknown*) pUnknown) PURE;
};
// $EndPrivate:
#if defined _UNIX && !defined (_VXWORKS)
DEFINE_GUID(IID_IHXClientEngineSelector, 0x00000404, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXClientEngineSelector
DECLARE_INTERFACE_(IHXClientEngineSelector, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/************************************************************************
* Method:
* IHXClientEngine::Select
* Purpose:
* Top level clients under Unix should use this instead of
* select() to select for events.
*/
STDMETHOD_(INT32, Select) (THIS_
INT32 n,
fd_set *readfds,
fd_set *writefds,
fd_set *exceptfds,
struct timeval* timeout) PURE;
};
#endif /* _UNIX */
/****************************************************************************
*
* Interface:
*
* IHXClientEngineSetup
*
* Purpose:
*
* Interface to the basic client engine. Provided to the renderers and
* other client side components.
*
* IID_IHXClientEngineSetup:
*
* {00000405-0901-11d1-8B06-00A024406D59}
*/
DEFINE_GUID(IID_IHXClientEngineSetup, 0x00000405, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXClientEngineSetup
DECLARE_INTERFACE_(IHXClientEngineSetup, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXClientEngineSetup methods
*/
/************************************************************************
* Method:
* IHXClientEngineSetup::Setup
* Purpose:
* Top level clients use this interface to over-ride certain basic
* interfaces implemented by the core. Current over-ridable
* interfaces are: IHXPreferences, IHXHyperNavigate
*/
STDMETHOD(Setup) (THIS_
IUnknown* pContext) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXInfoLogger
*
* Purpose:
*
* Interface to send any logging information back to the server.
* This information will appear in the server's access log.
*
* IID_IHXInfoLogger:
*
* {00000409-0901-11d1-8B06-00A024406D59}
*/
DEFINE_GUID(IID_IHXInfoLogger, 0x00000409, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXInfoLogger
DECLARE_INTERFACE_(IHXInfoLogger, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXInfoLogger methods
*/
/************************************************************************
* Method:
* IHXInfoLogger::LogInformation
* Purpose:
* Logs any user defined information in form of action and
* associated data.
*/
STDMETHOD(LogInformation) (THIS_
const char* /*IN*/ pAction,
const char* /*IN*/ pData) PURE;
};
// $Private:
/****************************************************************************
*
* Interface:
*
* IHXPersistenceManager
*
* Purpose:
*
*
* IID_IHXPersistenceManager:
*
* {0000040B-0901-11d1-8B06-00A024406D59}
*/
DEFINE_GUID(IID_IHXPersistenceManager, 0x0000040B, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXPersistenceManager
DECLARE_INTERFACE_(IHXPersistenceManager, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXPersistenceManager methods
*/
/************************************************************************
* Method:
* IHXPersistenceManager::AddPersistentComponent
* Purpose:
* We currently allow ONLY IHXRenderer to register itself as a
* persistent component.
* Renderer registers itself as a persistent renderer if it wants
* to live across group boundaries.
* It will not be unloaded until
* a) Someone opens the next URL.
* b) All the groups within the current presentation have been
* played.
*/
STDMETHOD(AddPersistentComponent) (THIS_
IUnknown* /*IN*/ pComponent) PURE;
/************************************************************************
* Method:
* IHXPersistenceManager::RemovePersistentComponent
* Purpose:
* Remove an earlier registered persistent component.
*/
STDMETHOD(RemovePersistentComponent) (THIS_
IUnknown* /*IN*/ pComponent) PURE;
/************************************************************************
* Method:
* IHXPersistenceManager::GetPersistentComponent
* Purpose:
* Return an earlier registered persistent component.
*/
STDMETHOD(GetPersistentComponent) (THIS_
REF(IUnknown*) /*OUT*/ pComponent) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXDriverStreamManager
*
* Purpose:
* Methods to notify/update driver stream renderer
*
*
* IID_IHXDriverStreamManager
*
* {0000040C-0901-11d1-8B06-00A024406D59}
*/
DEFINE_GUID(IID_IHXDriverStreamManager, 0x0000040C, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXDriverStreamManager
DECLARE_INTERFACE_(IHXDriverStreamManager, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXDriverStreamManager methods
*/
/************************************************************************
* Method:
* IHXDriverStreamManager::AddRendererAdviseSink
* Purpose:
* Add a renderer advise sink
*
*/
STDMETHOD(AddRendererAdviseSink) (THIS_
IHXRendererAdviseSink* pSink) PURE;
/************************************************************************
* Method:
* IHXDriverStreamManager::SetDriverStreamManager
* Purpose:
* Remove an advise sink
*
*/
STDMETHOD(RemoveRendererAdviseSink) (THIS_
IHXRendererAdviseSink* pSink) PURE;
};
/****************************************************************************
*
* Interface:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -