📄 hxengin.h
字号:
void** ppvObj) PURE; STDMETHOD_(ULONG32, AddRef) (THIS) PURE; STDMETHOD_(ULONG32, Release) (THIS) PURE; /* * */ STDMETHOD(Initialize) (THIS) PURE; STDMETHOD(Shutdown) (THIS) PURE; STDMETHOD(PostConnect) (THIS_ LONG32 nSocketNumber) PURE; STDMETHOD_(LONG32, Read) (THIS_ LONG32 nSocketNumber, void* buff, LONG32 buffLen) PURE; STDMETHOD_(LONG32, Write) (THIS_ LONG32 nSocketNumber, void* buff, LONG32 buffLen) PURE; STDMETHOD(Close) (THIS_ LONG32 nSocketNumber) PURE; STDMETHOD(SetCallbacks) (THIS_ void* readCallback, void* writeCallback, void* closeCallback) PURE; };// $EndPrivate.// $Private:/**************************************************************************** * * Interface: * * IHXBufferedSocket * * Purpose: * * This provdies a method for doing for doing more optimal * TCP delivery using desired packet size and writev. * * IID_IHXTCPSocket: * * {00001402-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXBufferedSocket, 0x00001402, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXBufferedSocketDECLARE_INTERFACE_(IHXBufferedSocket, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXTCPSocket methods */ STDMETHOD(BufferedWrite) (THIS_ IHXBuffer* pBuffer) PURE; STDMETHOD(FlushWrite) (THIS) PURE; STDMETHOD(SetDesiredPacketSize) (THIS_ UINT32 ulPacketSize) PURE;};// $EndPrivate./**************************************************************************** * * Interface: * * IHXListenResponse * * Purpose: * * This is the response interface for the asynchronous TCP listening * socket interface. * * IID_IHXListenResponse: * * {00000104-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXListenResponse, 0x00000104, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXListenResponseDECLARE_INTERFACE_(IHXListenResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXListenResponse methods */ STDMETHOD(NewConnection) (THIS_ HX_RESULT status, IHXTCPSocket* pTCPSocket) PURE;};/**************************************************************************** * * Interface: * * IHXListenSocket * * Purpose: * * This interfaces allows you to asynchronously listen on a port for * TCP connections. * * IID_IHXListenSocket: * * {00000105-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXListenSocket, 0x00000105, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXListenSocketDECLARE_INTERFACE_(IHXListenSocket, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXListenSocket methods */ STDMETHOD(Init) (THIS_ UINT32 ulLocalAddr, UINT16 port, IHXListenResponse* /*IN*/ pListenResponse ) PURE;};/**************************************************************************** * * Interface: * * IHXNetworkServices * * Purpose: * * This is a factory interface for the various types of networking * interfaces described above. * * IID_IHXNetworkServices: * * {00000106-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXNetworkServices, 0x00000106, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXNetworkServicesDECLARE_INTERFACE_(IHXNetworkServices, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXNetworkServices methods */ /************************************************************************ * Method: * IHXNetworkServices::CreateTCPSocket * Purpose: * Create a new TCP socket. */ STDMETHOD(CreateTCPSocket) (THIS_ IHXTCPSocket** /*OUT*/ ppTCPSocket) PURE; /************************************************************************ * Method: * IHXNetworkServices::CreateUDPSocket * Purpose: * Create a new UDP socket. */ STDMETHOD(CreateUDPSocket) (THIS_ IHXUDPSocket** /*OUT*/ ppUDPSocket) PURE; /************************************************************************ * Method: * IHXNetworkServices::CreateListenSocket * Purpose: * Create a new TCP socket that will listen for connections on a * particular port. */ STDMETHOD(CreateListenSocket) (THIS_ IHXListenSocket** /*OUT*/ ppListenSocket ) PURE; /************************************************************************ * Method: * IHXNetworkServices::CreateResolver * Purpose: * Create a new resolver that can lookup host names */ STDMETHOD(CreateResolver) (THIS_ IHXResolver** /*OUT*/ ppResolver) PURE;};/**************************************************************************** * * Interface: * * IHXNetworkServices2 * * Purpose: * * This is a factory interface for the various types of networking * interfaces described above. * * IID_IHXNetworkServices: * * {17951551-5683-11d3-B6BA-00C0F031C237} * */// {17951551-5683-11d3-B6BA-00C0F031C237}DEFINE_GUID(IID_IHXNetworkServices2, 0x17951551, 0x5683, 0x11d3, 0xb6, 0xba, 0x0, 0xc0, 0xf0, 0x31, 0xc2, 0x37);#undef INTERFACE#define INTERFACE IHXNetworkServices2DECLARE_INTERFACE_(IHXNetworkServices2, IHXNetworkServices){ /************************************************************************ * Method: * IHXNetworkServices2::CreateLBoundTCPSocket * Purpose: * Create a new local bound TCP socket. */ STDMETHOD(CreateLBoundTCPSocket) (THIS_ IHXTCPSocket** /*OUT*/ ppTCPSocket) PURE;};/**************************************************************************** * * Interface: * * IHXUDPResponse * * Purpose: * * This is the response interface for the asynchronous UDP networking * interface. * * IID_IHXUDPResponse: * * {00000107-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXUDPResponse, 0x00000107, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXUDPResponseDECLARE_INTERFACE_(IHXUDPResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXUDPResponse methods */ STDMETHOD(ReadDone) (THIS_ HX_RESULT status, IHXBuffer* pBuffer, ULONG32 ulAddr, UINT16 nPort) PURE;};/**************************************************************************** * * Interface: * * IHXUDPSocket * * Purpose: * * Provides the user with an asynchronous UDP networking interface. * * IID_IHXUDPSocket: * * {00000108-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXUDPSocket, 0x00000108, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXUDPSocketDECLARE_INTERFACE_(IHXUDPSocket, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXUDPSocket methods * * Network addresses and ports are in native byte order */ STDMETHOD(Init) (THIS_ ULONG32 ulAddr, UINT16 nPort, IHXUDPResponse* pUDPResponse) PURE; STDMETHOD(Bind) (THIS_ UINT32 ulLocalAddr, UINT16 nPort) PURE; STDMETHOD(Read) (THIS_ UINT16 Size) PURE; STDMETHOD(Write) (THIS_ IHXBuffer* pBuffer) PURE; STDMETHOD(WriteTo) (THIS_ ULONG32 ulAddr, UINT16 nPort, IHXBuffer* pBuffer) PURE; STDMETHOD(GetLocalPort) (THIS_ REF(UINT16) port) PURE; STDMETHOD(JoinMulticastGroup) (THIS_ ULONG32 ulMulticastAddr, ULONG32 ulInterfaceAddr) PURE; STDMETHOD(LeaveMulticastGroup) (THIS_ ULONG32 ulMulticastAddr, ULONG32 ulInterfaceAddr) PURE;};/**************************************************************************** * * Interface: * * IHXResolver * * Purpose: * * This interface allows you to asynchronously resolve hostnames. * * IID_IHXResolver: * * {00000109-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXResolver, 0x00000109, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXResolverDECLARE_INTERFACE_(IHXResolver, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXResolver methods */ STDMETHOD(Init) (THIS_ IHXResolverResponse* pResponse) PURE; STDMETHOD(GetHostByName) (THIS_ const char* pHostName) PURE;};/**************************************************************************** * * Interface: * * IHXResolverResponse * * Purpose: * * This is the response interface for the asynchronous DNS hostname * resolver. * * IID_IHXResolverResponse: * * {0000010A-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXResolverResponse, 0x0000010A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXResolverResponseDECLARE_INTERFACE_(IHXResolverResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -