📄 hxengin.h
字号:
* * Purpose: * * Notifier for EWOULDBLOCK conditions. * * IID_IHXWouldBlock: * * {00000119-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXWouldBlock, 0x00000119, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXWouldBlockDECLARE_INTERFACE_(IHXWouldBlock, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXWouldBlock methods * */ STDMETHOD(WantWouldBlock) (THIS_ IHXWouldBlockResponse*, UINT32 id) PURE;};/**************************************************************************** * * Interface: * * IHXSharedUDPServices * * Purpose: * * Private interface for tying a UDP socket (via IHXUDPSocketContext) to * a shared UDP resend port. Used to send UDP packet resend requests to one * shared UDP port per streamer. * * IID_IHXSharedUDPServices * * {00000123-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXSharedUDPServices, 0x00000124, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXSharedUDPServicesDECLARE_INTERFACE_(IHXSharedUDPServices, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXSharedUDPServices methods */ STDMETHOD(RegisterSharedResponse) (THIS_ IHXUDPResponse* response, UINT16 sPortEnum) PURE; STDMETHOD(UnregisterSharedResponse) (THIS) PURE; STDMETHOD_(UINT16, GetSharedPort) (THIS) PURE;};/**************************************************************************** * * Interface: * * IHXThreadLocal * * Purpose: * * Thread-local information, namely the procnum. * * IID_IHXThreadLocal * * {00000125-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXThreadLocal, 0x00000125, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXThreadLocal#define CLSID_IHXThreadLocal IID_IHXThreadLocalDECLARE_INTERFACE_(IHXThreadLocal, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXThreadLocal methods */ /* * IHXThreadLocal::GetMaxThreads() * * Maximum number of threads on the system (MAX_THREADS on server) */ STDMETHOD_(int, GetMaxThreads) (THIS) PURE; /* * IHXThreadLocal::GetThreadNumber() * * This thread's number (< MAX_THREADS) */ STDMETHOD_(int, GetThreadNumber) (THIS) PURE;};/**************************************************************************** * * Interface: * * IHXMemoryServices * * Purpose: * * Exposes server memory functions * * IID_IHXMemoryServices * * {00000126-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXMemoryServices, 0x00000126, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXMemoryServices#define CLSID_IHXMemoryServices IID_IHXMemoryServicesDECLARE_INTERFACE_(IHXMemoryServices, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXMemoryServices methods */ /* * IHXMemoryServices::ValidateMemory() * * Make consistency checks on the server shared memory space. * * lStartPage, lPages * * Specifies a page range to allow smaller searches, if you have a * repro case and want to fail as soon as possible after the scribble. * Use lPages == 0 to check to the last page. (Pages in the shared * space are numbered starting from zero. You can decide on a range * based on the printout of previous errors.) * * ulFlags * * 0x00000001 fail -- abort() -- on finding an error. * 0x00000002 do rudimentary checks on internal SharedMemory data arrays. * */ STDMETHOD(ValidateMemory) (THIS_ INT32 lStartPage, INT32 lPages, UINT32 ulFlags) PURE;};typedef enum _HX_PRIVATE_SOCKET_OPTION{ HX_PRIVATE_SOCKOPT_IGNORE_WSAECONNRESET} HX_PRIVATE_SOCKET_OPTION;/**************************************************************************** * * Interface: * * IHXSetPrivateSocketOption * * Purpose: * * Set private sockt option * * IID_IHXSetPrivateSocketOption: * * {00000127-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXSetPrivateSocketOption, 0x00000127, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59); #undef INTERFACE#define INTERFACE IHXSetPrivateSocketOptionDECLARE_INTERFACE_(IHXSetPrivateSocketOption, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXSetPrivateSocketOption methods */ STDMETHOD(SetOption) (THIS_ HX_PRIVATE_SOCKET_OPTION option, UINT32 ulValue) PURE; };/**************************************************************************** * * Interface: * * IHXNetInterfaces * * Purpose: * * Network Interfaces * * IID_IHXNetInterfaces: * * {00000128-0901-11d1-8B06-00A024406D59} * */typedef enum{ UNKNOWN, LOOPBACK, POINTTOPOINT, BROADCAST} NIType;typedef struct _NIInfo{ NIType type; BOOL bActive; UINT32 ulNetAddress; UINT32 ulNetMask;} NIInfo;DEFINE_GUID(IID_IHXNetInterfaces, 0x00000128, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59); #undef INTERFACE#define INTERFACE IHXNetInterfacesDECLARE_INTERFACE_(IHXNetInterfaces, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXNetworkInterfaces methods */ STDMETHOD(UpdateNetInterfaces) (THIS) PURE; STDMETHOD_(UINT32, GetNumOfNetInterfaces) (THIS) PURE; STDMETHOD(GetNetInterfaces) (THIS_ UINT16 lIndex, REF(NIInfo*) pNIInfo) PURE; STDMETHOD(AddAdviseSink) (THIS_ IHXNetInterfacesAdviseSink* pSink) PURE; STDMETHOD(RemoveAdviseSink) (THIS_ IHXNetInterfacesAdviseSink* pSink) PURE;};/**************************************************************************** * * Interface: * * IHXNetInterfacesAdviseSink * * Purpose: * * Network Interfaces Advise Sink * * IID_IHXNetInterfaces: * * {00000129-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXNetInterfacesAdviseSink, 0x00000129, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59); #undef INTERFACE#define INTERFACE IHXNetInterfacesAdviseSinkDECLARE_INTERFACE_(IHXNetInterfacesAdviseSink, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXNetInterfacesAdviseSink methods */ STDMETHOD(NetInterfacesUpdated) (THIS) PURE;};// $EndPrivate./**************************************************************************** * * Interface: * * IHXNetworkInterfaceEnumerator * * Purpose: * * Enumerate interfaces on a box. * * IID_IHXNetworkInterfaceEnumerator; * * {00000121-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXNetworkInterfaceEnumerator, 0x00000121, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXNetworkInterfaceEnumeratorDECLARE_INTERFACE_(IHXNetworkInterfaceEnumerator, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /************************************************************************ * Method: * IHXNetworkInterfaceEnumerator::EnumerateInterfaces * Purpose: * returns a list of local interfaces * Usage: * If a buffer passed in is too small, it will return * HXR_BUFFERTOOSMALL with ulNumInterfaces updated. */ STDMETHOD(EnumerateInterfaces) (THIS_ REF(UINT32*) pulInterfaces, REF(UINT32) ulNumInterfaces) PURE;};/**************************************************************************** * * Interface: * * IHXUDPConnectedSocket * * Purpose: * * Connect and disconnect a UDP socket * * IID_IHXUDPConnectedSocket; * * {0000012A-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXUDPConnectedSocket, 0x0000012a, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXUDPConnectedSocketDECLARE_INTERFACE_(IHXUDPConnectedSocket, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /************************************************************************ * Method: * IHXUDPConnectedSocket::UDPConnect * Purpose: * Connect the udp socket * Usage: * Connect to the foreign addr and port the socket already knows * about; this is implementation-dependent. */ STDMETHOD(UDPConnect) (THIS) PURE; /************************************************************************ * Method: * IHXUDPConnectedSocket::UDPConnect(ULONG32 ulAddr, UINT16 nPort); * Purpose: * Connect the udp socket * Usage: * Specify the host-ordered foreign addr and port to connect to. */ STDMETHOD(UDPConnect) (THIS_ ULONG32 ulAddr, UINT16 nPort) PURE; /************************************************************************ * Method: * IHXUDPConnectedSocket::UDPDisconnect * Purpose: * Disconnect the udp socket */ STDMETHOD(UDPDisconnect) (THIS) PURE; /************************************************************************ * Method: * IHXUDPConnectedSocket::IsUDPConnected * Purpose: * Return whether the socket is connected. */ STDMETHOD_(BOOL, IsUDPConnected) (THIS) PURE; /************************************************************************ * Method: * IHXUDPConnectedSocket::IsUDPConnected(REF(ULONG32) ulAddr, * REF(UINT16) nPort) * Purpose: * Return whether the socket is connected, and the connected addr/port. * Usage: * Return the foreign addr/port the socket knows about, regardless of * whether it's connected. This is the foreign addr that is connected * to (if TRUE) or that will be used if Connect(void) called (if FALSE). */ STDMETHOD_(BOOL, IsUDPConnected) (THIS_ REF(ULONG32) ulAddr, REF(UINT16) nPort) PURE;};#endif /* _HXENGIN_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -