hxengin.h
来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C头文件 代码 · 共 2,615 行 · 第 1/5 页
H
2,615 行
* 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_(HXBOOL,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_ HXBOOL bEnable) PURE; /************************************************************************ * Method: * IHXInterruptState::IsInterruptEnabled * Purpose: * This function can be called to find if the core is currently * interrupt enabled. */ STDMETHOD_(HXBOOL, 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 IHXProcessDECLARE_INTERFACE_(IHXProcess, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; STDMETHOD(Start) (THIS_ const char* pProcessName, IHXProcessEntryPoint* pEntryPoint) PURE;};/**************************************************************************** * * Interface: * * IHXLoadBalancedListen * * Purpose: * * This interface is queried off of IHXListenSocket. It allows * a plugin to specify that it wants the server to load balance * multiple instances of itself. The server will instantiate multiple * instances of the plugin as needed based on socket / descriptor limits. * Each plugin instance should attempt to listen on the same port as * other instances (they will share the port). * * IID_IHXLoadBalancedListen: * * {00000110-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXLoadBalancedListen, 0x00000110, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXLoadBalancedListenDECLARE_INTERFACE_(IHXLoadBalancedListen, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXLoadBalancedListen methods */ /************************************************************************ * Method: * IHXLoadBalancedListen::SetID * Purpose: * This function set's the unique ID for this listen socket. This * ID is used to determine whether or not different instances of * a plugin trying to listen on a single port are actually the * same plugin. Without this function, it would be possible for * two completely different plugins to listen on the same port using * the load balanced listener. */ STDMETHOD(SetID) (THIS_ REFIID ID) PURE; /************************************************************************ * Method: * IHXLoadBalancedListen::SetReserveLimit * Purpose: * Sets the reserve limit for descriptors / sockets. If less * than reserve limit descriptors / sockets are left then a new * instance of the plugin will be created. */ STDMETHOD(SetReserveLimit) (THIS_ UINT32 ulDescriptors, UINT32 ulSockets) PURE;};/**************************************************************************** * * Interface: * * IHXOverrideDefaultServices * * Purpose: * * This interface is queried off of the context. It allows * a plugin to override any default services provided by the G2 system. * Currently, it is supported only on the client side. * You may currently override IHXNetworkServices using this interface * You can use the same interface to later restore back the overridden services. * This is done by calling the same OverrideServices() function with the * original service QIed before the initial override. *
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?