📄 hxengin.h
字号:
STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXResolverResponse methods */ STDMETHOD(GetHostByNameDone) (THIS_ HX_RESULT status, ULONG32 ulAddr) PURE;};/**************************************************************************** * * Interface: * * IHXInterruptSafe * * Purpose: * * This interface is used in Macintosh implementations of callback * functions, renderers, etc... to determine if interrupt time execution * is supported. If this interface is not implemented then it is assumed * that interrupt time execution is NOT supported. There are restrictions * on what may be executed at interrupt time; please consult the Macintosh * Deferred Task Manager tech notes from Apple. * * IID_IHXInterruptSafe: * * {0000010B-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXInterruptSafe, 0x0000010B, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXInterruptSafeDECLARE_INTERFACE_(IHXInterruptSafe, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXInterruptSafe methods */ /************************************************************************ * Method: * IHXInterruptSafe::IsInterruptSafe * Purpose: * This is the function that will be called to determine if * interrupt time execution is supported. */ STDMETHOD_(BOOL,IsInterruptSafe) (THIS) PURE;};/**************************************************************************** * * Interface: * * IHXAsyncIOSelection * * Purpose: * * This interface is implemented by the server/player context on Unix * platforms. This interface allows your plugin to get callbacks based * I/O events that are normally handled by select(). This interface * allows you to setup callbacks which will be executed when a file * descriptor is ready for reading, writing, or has an exception. * * IID_IHXAsyncIOSelection: * * {0000010C-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXAsyncIOSelection, 0x0000010C, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXAsyncIOSelectionDECLARE_INTERFACE_(IHXAsyncIOSelection, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXAsyncIOSelection methods */ /************************************************************************ * Method: * IHXAsyncIOSelection::Add * Purpose: * This function will allow you to receive a callback when the * given descriptor is ready for read, write, or has an * exception. This function is only available on Unix, and is * intended to replace the functionality of select(). */ STDMETHOD(Add) (THIS_ IHXCallback* pCallback, INT32 lFileDescriptor, UINT32 ulType) PURE; /************************************************************************ * Method: * IHXAsyncIOSelection::Remove * Purpose: * This function will allow you remove the callback associated * with the given descriptor from the event handler. * This function is only available on Unix, and is intended to * replace the functionality of select(). */ STDMETHOD(Remove) (THIS_ INT32 lFileDescriptor, UINT32 ulType) PURE;};/**************************************************************************** * * Interface: * * IHXUDPMulticastInit * * Purpose: * * Provides the user with a way to set the TTL for outgoing multicast * UDP packets. Usually shared with IHXUDPSocket. * * IID_IHXUDPMulticastInit: * * {0000010D-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXUDPMulticastInit, 0x0000010D, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXUDPMulticastInitDECLARE_INTERFACE_(IHXUDPMulticastInit, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXUDPMulticastInit methods * */ /************************************************************************ * Method: * IHXUDPMulticastInit::InitMulticast * Purpose: * This function will set the TTL (time to live) for the UDP socket * so it can be used as a multicast socket, sending packets across * the number of routers specified in the ulTTL parameter. */ STDMETHOD(InitMulticast) (THIS_ UINT8 chTTL) PURE;};/**************************************************************************** * * Interface: * * IHXInterruptState * * Purpose: * * This interface is used in Macintosh implementations to inform the * the client engine when entering & leaving an interupt task. It is * also used to determine if it is currently at interrupt time. * Please consult the Macintosh Deferred Task Manager tech notes from Apple * for information on interrupt tasks. * * IID_IHXInterruptState: * * {0000010E-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXInterruptState, 0x0000010E, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXInterruptStateDECLARE_INTERFACE_(IHXInterruptState, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXInterruptState methods */ /************************************************************************ * Method: * IHXInterruptState::AtInterruptTime * Purpose: * This function is called to determine if we are currently at * interrupt task time. */ STDMETHOD_(BOOL,AtInterruptTime) (THIS) PURE; /************************************************************************ * Method: * IHXInterruptState::EnterInterruptState * Purpose: * This function is called when starting a deferred/interrupt task */ STDMETHOD(EnterInterruptState) (THIS) PURE; /************************************************************************ * Method: * IHXInterruptState::LeaveInterruptState * Purpose: * This function is called when leaving a deferred/interrupt task */ STDMETHOD(LeaveInterruptState) (THIS) PURE; /************************************************************************ * Method: * IHXInterruptState::EnableInterrupt * Purpose: * This function can be called to enable/disable interrupt time * processsing */ STDMETHOD(EnableInterrupt) (THIS_ BOOL bEnable) PURE; /************************************************************************ * Method: * IHXInterruptState::IsInterruptEnabled * Purpose: * This function can be called to find if the core is currently * interrupt enabled. */ STDMETHOD_(BOOL, IsInterruptEnabled) (THIS) PURE;};/**************************************************************************** * * Interface: * * IHXOptimizedScheduler * * Purpose: * * This interface provides the user with a way of scheduling callbacks * that will be executed at some time in the future. * * This interface should ONLY be used if you need accurately timed * callbacks. These callbacks should be efficient and should not consume * much time/CPU. This is not a thread safe interface. The user has to * take care of synchronization in their callbacks. * * IID_IHXOptimizedScheduler: * * {0000010F-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXOptimizedScheduler, 0x0000010F, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXOptimizedSchedulerDECLARE_INTERFACE_(IHXOptimizedScheduler, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXOptimizedScheduler methods */ /************************************************************************ * Method: * IHXOptimizedScheduler::RelativeEnter * Purpose: * Schedule a callback to be executed "ms" milliseconds from now * This function is less percise then AbsoluteEnter and should only * be used when accurate timing is not critical. */ STDMETHOD_(CallbackHandle,RelativeEnter) (THIS_ IHXCallback* pCallback, UINT32 ms) PURE; /************************************************************************ * Method: * IHXOptimizedScheduler::AbsoluteEnter * Purpose: * Schedule a callback to be executed at time "tVal". */ STDMETHOD_(CallbackHandle,AbsoluteEnter) (THIS_ IHXCallback* pCallback, HXTimeval tVal) PURE; /************************************************************************ * Method: * IHXOptimizedScheduler::Remove * Purpose: * Remove a callback from the scheduler. */ STDMETHOD(Remove) (THIS_ CallbackHandle Handle) PURE; /************************************************************************ * Method: * IHXOptimizedScheduler::GetCurrentSchedulerTime * Purpose: * Gives the current time (in the timeline of the scheduler). */ STDMETHOD_(HXTimeval,GetCurrentSchedulerTime) (THIS) PURE;};/**************************************************************************** * * Interface: * * IHXThreadSafeScheduler * * Purpose: * * This interface provides the user with a way of scheduling callbacks * that will be executed at some time in the future. This is identical * to IHXScheduler except the scheduler events are considered thread-safe. * * IID_IHXThreadSafeScheduler: * * {00000120-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXThreadSafeScheduler, 0x00000120, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXThreadSafeSchedulerDECLARE_INTERFACE_(IHXThreadSafeScheduler, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXThreadSafeScheduler methods */ /************************************************************************ * Method: * IHXThreadSafeScheduler::RelativeEnter * Purpose: * Schedule a callback to be executed "ms" milliseconds from now * This function is less percise then AbsoluteEnter and should only * be used when accurate timing is not critical. */ STDMETHOD_(CallbackHandle,RelativeEnter) (THIS_ IHXCallback* pCallback, UINT32 ms) PURE; /************************************************************************ * Method: * IHXThreadSafeScheduler::AbsoluteEnter * Purpose: * Schedule a callback to be executed at time "tVal". */ STDMETHOD_(CallbackHandle,AbsoluteEnter) (THIS_ IHXCallback* pCallback, HXTimeval tVal) PURE; /************************************************************************ * Method: * IHXThreadSafeScheduler::Remove * Purpose: * Remove a callback from the scheduler. */ STDMETHOD(Remove) (THIS_ CallbackHandle Handle) PURE;};/**************************************************************************** * * Interface: * * IHXProcessEntryPoint * * Purpose: * * This interface is the entry point for an IHXProcess * * IID_IHXProcessEntryPoint * * {00000123-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXProcessEntryPoint, 0x00000123, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXProcessEntryPointDECLARE_INTERFACE_(IHXProcessEntryPoint, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; STDMETHOD(Func) (THIS_ IUnknown* pContext) PURE;};/**************************************************************************** * * Interface: * * IHXProcess * * Purpose: * * This interface allows you to create new server processes and specify * an entry point. It is queried off the context. * * IID_IHXProcess * * {00000122-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXProcess, 0x00000122, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXProcess
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -