📄 hxcore.h
字号:
* IHXRendererAdviseSink
*
* Purpose:
* Provides access to notifications of initialization/changes to
* renderers in the player.
*
* IID_IHXRendererAdviseSink
*
* {0000040D-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXRendererAdviseSink, 0x0000040D, 0x901,
0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXRendererAdviseSink
DECLARE_INTERFACE_(IHXRendererAdviseSink, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXRendererAdviseSink methods
*/
STDMETHOD(TrackDurationSet) (THIS_
UINT32 ulGroupIndex,
UINT32 ulTrackIndex,
UINT32 ulDuration,
UINT32 ulDelay,
BOOL bIsLive) PURE;
STDMETHOD(RepeatedTrackDurationSet) (THIS_
const char* pID,
UINT32 ulDuration,
BOOL bIsLive) PURE;
STDMETHOD(TrackUpdated) (THIS_
UINT32 ulGroupIndex,
UINT32 ulTrackIndex,
IHXValues* pValues) PURE;
/************************************************************************
* Method:
* IHXRendererAdviseSink::RendererInitialized
* Purpose:
* Notification of renderer initialization
*
*/
STDMETHOD(RendererInitialized) (THIS_
IHXRenderer* pRenderer,
IUnknown* pStream,
IHXValues* pInfo) PURE;
/************************************************************************
* Method:
* IHXRendererAdviseSink::RendererClosed
* Purpose:
* Notification of renderer close
*
*/
STDMETHOD(RendererClosed) (THIS_
IHXRenderer* pRenderer,
IHXValues* pInfo) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXLayoutStream
*
* Purpose:
*
* Interface that allows access/updates to stream properties
*
* IID_IHXLayoutStream:
*
* {0000040E-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXLayoutStream, 0x0000040E, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXLayoutStream
DECLARE_INTERFACE_(IHXLayoutStream, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXLayoutStream methods
*/
/************************************************************************
* Method:
* IHXLayoutStream::GetProperty
* Purpose:
* Get layout stream property
*
*
*/
STDMETHOD(GetProperties) (THIS_
REF(IHXValues*) pValue) PURE;
/************************************************************************
* Method:
* IHXLayoutStream::SetProperty
* Purpose:
* Set layout stream property
*
*/
STDMETHOD(SetProperties) (THIS_
IHXValues* pValue) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXRendererUpgrade
*
* Purpose:
*
* Interface that tells the player to upgrade a particular set of renderers
*
* IID_IHXRendererUpgrade:
*
* {00000410-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXRendererUpgrade, 0x00000410, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXRendererUpgrade
DECLARE_INTERFACE_(IHXRendererUpgrade, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXRendererUpgrade methods
*/
/************************************************************************
* Method:
* IHXRendererUpgrade::IsRendererAvailable
* Purpose:
* Find out if the renderer is already loaded
*
*
*/
STDMETHOD_(BOOL,IsRendererAvailable) (THIS_
const char* pMimeType) PURE;
/************************************************************************
* Method:
* IHXRendererUpgrade::ForceUpgrade
* Purpose:
* Force an upgrade for any unloaded renderers
*
*/
STDMETHOD(ForceUpgrade) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXValidator
*
* Purpose:
*
* Interface that provides validation
*
* IID_IHXValidator:
*
* {00000412-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXValidator, 0x00000412, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXValidator
DECLARE_INTERFACE_(IHXValidator, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXValidator methods
*/
/************************************************************************
* Method:
* IHXValidator::ValidateProtocol
* Purpose:
* Find out if the protocol is valid
*
*
*/
STDMETHOD_(BOOL,ValidateProtocol) (THIS_
char* pProtocol) PURE;
/************************************************************************
* Method:
* IHXValidator::ValidateMetaFile
* Purpose:
* Find out if it is a meta file
*
*
*/
STDMETHOD(ValidateMetaFile) (THIS_
IHXRequest* pRequest,
IHXBuffer* pContent) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXPrivateStreamSource
*
* Purpose:
* This interface is being added for the sole purpose of implementing
* IsSaveAllowed on our stream source objects. We need to get this in
* for alpha-3 of the player, since it would be very bad to put out a
* player version that allowed recording of content that was supposed to
* be unrecordable. This method should be moved into IHXStreamSource
* as soon as is convenient.
*
* IHXPrivateStreamSource:
*
* {57DFD0E2-C76E-11d1-8B5C-006008065552}
*
*/
DEFINE_GUID(IID_IHXPrivateStreamSource, 0x57dfd0e2, 0xc76e, 0x11d1, 0x8b, 0x5c,
0x0, 0x60, 0x8, 0x6, 0x55, 0x52);
#undef INTERFACE
#define INTERFACE IHXPrivateStreamSource
DECLARE_INTERFACE_(IHXPrivateStreamSource, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXPrivateStreamSource methods
*/
STDMETHOD_ (BOOL,IsSaveAllowed) (THIS) PURE;
};
// $EndPrivate.
/****************************************************************************
*
* Interface:
*
* IHXPlayer2
*
* Purpose:
*
* Extra methods in addition to IHXPlayer
*
* IID_IHXPlayer2:
*
* {00000411-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXPlayer2, 0x00000411, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXPlayer2
DECLARE_INTERFACE_(IHXPlayer2, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/************************************************************************
* Method:
* IID_IHXPlayer2::SetMinimumPreroll
* Purpose:
* Call this method to set the minimum preroll of this clip
*/
STDMETHOD(SetMinimumPreroll) (THIS_
UINT32 ulMinPreroll) PURE;
/************************************************************************
* Method:
* IID_IHXPlayer2::GetMinimumPreroll
* Purpose:
* Call this method to get the minimum preroll of this clip
*/
STDMETHOD(GetMinimumPreroll) (THIS_
REF(UINT32) ulMinPreroll) PURE;
/************************************************************************
* Method:
* IID_IHXPlayer2::OpenRequest
* Purpose:
* Call this method to open the IHXRequest
*/
STDMETHOD(OpenRequest) (THIS_
IHXRequest* pRequest) PURE;
/************************************************************************
* Method:
* IID_IHXPlayer2::GetRequest
* Purpose:
* Call this method to get the IHXRequest
*/
STDMETHOD(GetRequest) (THIS_
REF(IHXRequest*) pRequest) PURE;
};
// $Private:
/****************************************************************************
*
* Interface:
*
* IHXUpdateProperties
*
* Purpose:
*
* update any offset related stuff
*
* IID_IHXUpdateProperties:
*
* {00000413-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXUpdateProperties, 0x00000413, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXUpdateProperties
DECLARE_INTERFACE_(IHXUpdateProperties, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/************************************************************************
* Method:
* IHXUpdateProperties::UpdatePacketTimeOffset
* Purpose:
* Call this method to update the timestamp offset of cached packets
*/
STDMETHOD(UpdatePacketTimeOffset) (THIS_
INT32 lTimeOffset) PURE;
/************************************************************************
* Method:
* IHXUpdateProperties::UpdatePlayTimes
* Purpose:
* Call this method to update properties
*/
STDMETHOD(UpdatePlayTimes) (THIS_
IHXValues* pProps) PURE;
};
// $EndPrivate.
/****************************************************************************
*
* Interface:
*
* IHXPlayerNavigator
*
* Purpose:
*
* navigate player objects
*
* IID_IHXPlayerNavigator:
*
* {00000414-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXPlayerNavigator, 0x00000414, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXPlayerNavigator
DECLARE_INTERFACE_(IHXPlayerNavigator, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/************************************************************************
* Method:
* IHXPlayerNavigator::AddChildPlayer
* Purpose:
* Add child player to the current player
*/
STDMETHOD(AddChildPlayer) (THIS_
IHXPlayer* pPlayer) PURE;
/************************************************************************
* Method:
* IHXPlayerNavigator::RemoveChildPlayer
* Purpose:
* Remove child player from the current player
*/
STDMETHOD(RemoveChildPlayer) (THIS_
IHXPlayer* pPlayer) PURE;
/************************************************************************
* Method:
* IHXPlayerNavigator::GetNumChildPlayer
* Purpose:
* Get number of the child players
*/
STDMETHOD_(UINT16, GetNumChildPlayer) (THIS) PURE;
/************************************************************************
* Method:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -