// SocketClient.idl : IDL source for SocketClient.dll
//
// This file will be processed by the MIDL tool to
// produce the type library (ClientSocket.tlb) and marshalling code.
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(726360BC-AE26-11D5-8A74-002078B038BB),
dual,
helpstring("ISktClient Interface"),
pointer_default(unique)
]
interface ISktClient : IDispatch
{
[id(1), helpstring("method Connect")] HRESULT Connect([in] BSTR bstrHostAddress, [in] long lHostPort, [in, optional, defaultvalue(0)]VARIANT_BOOL bUseMsgPump, [in, optional, defaultvalue(1)] long lSocketType, [in, optional, defaultvalue(2)] long lAddrFormat, [in, optional, defaultvalue(0)] long lProtocol, [in, optional, defaultvalue("")]BSTR bstrCallerData, [out, optional, defaultvalue(0)]BSTR *pbstrCalleeData, [in, optional, defaultvalue(0)]long lLocalPort);
[id(2), helpstring("method Disconnect")] HRESULT Disconnect();
[id(3), helpstring("method ShutDown")] HRESULT ShutDown([in, optional, defaultvalue(1)]long lHow);
[id(4), helpstring("method RecvChunk")] HRESULT RecvChunk([in, out]long *plLen, [in, optional, defaultvalue(0)]long lFlags, [out, retval]VARIANT *pvtData);
[id(5), helpstring("method RecvChunkFrom")] HRESULT RecvChunkFrom([in, out]long *plLen, [in, optional, defaultvalue(0)] long lFlags, [out, optional, defaultvalue(0)]BSTR *pbstrSrcAddr, [out, optional, defaultvalue(0)]long *plPort, [out, retval]VARIANT *pvtData);
[id(6), helpstring("method SendChunk")] HRESULT SendChunk([in]VARIANT vtData, [in, optional, defaultvalue(0)]long lFlags, [out, retval]long *plSent);
[id(7), helpstring("method SendChunkTo")] HRESULT SendChunkTo([in]VARIANT vtData, [in]long lPort, [in, optional, defaultvalue("")]BSTR bstrAddr, [in, optional, defaultvalue(0)]long lFlags, [out, retval]long *plSent);
[id(8), helpstring("method AsyncSelect")] HRESULT AsyncSelect([in]long lNewEvent);
[id(9), helpstring("method SwitchTo")] HRESULT SwitchTo([in]long lClassID);
[id(10), helpstring("method GetSockAddr")] HRESULT GetSockAddr([out, optional]long *plSocketPort, [out, retval]BSTR *pbstrSockAddress);
[id(11), helpstring("method IOCtl")] HRESULT IOCtl([in]long lCommand, [in, out]long *plArgment);
[id(12), helpstring("method GetPeerName")] HRESULT GetPeerName([out, optional]long *plPeerPort, [out, retval]BSTR *pbstrPeerName);
[id(13), helpstring("method SetSockOpt")] HRESULT SetSockOpt([in]long lOptName, [in]long lOptValue, [in, optional, defaultvalue(0xffff)]short nLevel);
[id(14), helpstring("method GetSockOpt")] HRESULT GetSockOpt([in]long lOptName, [in, optional, defaultvalue(0xffff)]short nLevel, [out, retval]long *plOptValue);
[id(15), helpstring("method GetHostByAddr")] HRESULT GetHostByAddr([in]BSTR bstrIPAddr, [in, optional, defaultvalue(2)]long lAddrFormat, [in, optional, defaultvalue(0)]VARIANT_BOOL bBlocking, [out, optional, defaultvalue(0)]long *phHandle, [out, optional, defaultvalue(0)]BSTR *pbstrAlias, [out,retval]BSTR *pbstrHostName);
[id(16), helpstring("method GetRtn")] HRESULT GetRtn([out, retval]long *plErrInfo);
[id(17), helpstring("method DisableSending")] HRESULT Disable([in, defaultvalue(-1)]VARIANT_BOOL bDisable);
[id(18), helpstring("method SendText")] HRESULT SendText([in]BSTR bstrText, [in, optional, defaultvalue(-1)]VARIANT_BOOL bW2A, [in, optional, defaultvalue(0)]long lFlags, [out, retval]long *plSent);
[id(19), helpstring("method RecvText")] HRESULT RecvText([in]long nLen, [in, optional, defaultvalue(0)]VARIANT_BOOL bWChar, [in, optional, defaultvalue(0)]long lFlags, [out, retval]BSTR *pbstrText);
[id(20), helpstring("method GetHostByName")] HRESULT GetHostByName([in]BSTR bstrHost, [in, optional, defaultvalue(0)]VARIANT_BOOL bBlocking, [out, optional, defaultvalue(0)]long *phHandle, [out, optional, defaultvalue(0)]BSTR *pbstrIPAddr, [out, optional, defaultvalue(0)]BSTR *pbstrAlias, [out,retval]BSTR *pbstrHostName);
[propget, id(21), helpstring("property LocalName")] HRESULT LocalName([out, retval] BSTR *pbstrLocalName);
[propget, id(22), helpstring("property SocketHandle")] HRESULT SocketHandle([out, retval]long *plSocketHandle);
[propget, id(23), helpstring("property SendTimeout")] HRESULT SendTimeout([out, retval] long *plSendTimeout);
[propput, id(23), helpstring("property SendTimeout")] HRESULT SendTimeout([in] long lSendTimeout);
[propget, id(24), helpstring("property Instance")] HRESULT Instance([out, retval] long *plInstance);
[propget, id(25), helpstring("property IsConnected")] HRESULT IsConnected([out, retval] VARIANT_BOOL *pbVal);
[propget, id(26), helpstring("property Events")] HRESULT Events([out, retval] long *plEvents);
[propget, id(27), helpstring("property UID")] HRESULT UID([out, retval] BSTR *pVal);
[propput, id(27), helpstring("property UID")] HRESULT UID([in] BSTR newVal);
[propget, id(28), helpstring("property Password")] HRESULT Password([out, retval] BSTR *pVal);
[propput, id(28), helpstring("property Password")] HRESULT Password([in] BSTR newVal);
[propget, id(29), helpstring("property RcvTimeout")] HRESULT RcvTimeout([out, retval] long *plRcvTimeout);
[propput, id(29), helpstring("property RcvTimeout")] HRESULT RcvTimeout([in] long lRcvTimeout);
[propget, id(30), helpstring("property ConnectTimeout")] HRESULT ConnectTimeout([out, retval] long *pConnectTimeout);
[propput, id(30), helpstring("property ConnectTimeout")] HRESULT ConnectTimeout([in] long lConnectTimeout);
[propget, id(31), helpstring("property WinHandle")] HRESULT WinHandle([out, retval] long *plWinHandle);
[propput, id(31), helpstring("property WinHandle")] HRESULT WinHandle([in] long lWinHandle);
};
[
uuid(696A50FD-B10B-11D5-8A80-002078B038BB),
version(1.0),
helpstring("ClientSocket 1.0 Type Library")
]
library CLIENTSOCKETLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
typedef enum tagClientSocketDefines
{
g_nSocketSvrSecurityCheckFailed=0x89000000,
g_nClientSock_Warning=0x08000000,
g_nMaxUIDLen=128,
g_nMaxPasswordLen=128,
g_nSockErrOffset = 0x80000000,
g_nSockErrOffsetSvr = 0x88000000,
g_nCREATE_START_SOCK_CLIENT=0xA00000AA,
}ClientSocketDefines;
typedef enum tagSockClientMsg
{
g_nSocketClientMsg = 0x0781
}SockClientMsg;
typedef enum tagSockLevel
{
g_nSockLevel=0xffff,
}SockLevel;
typedef enum tagSocketType{
SockStream = 1, /* stream socket */
SockDgram = 2, /* datagram socket */
SockRaw = 3, /* raw-protocol interface */
SockRdm = 4, /* reliably-delivered message */
SockSeqpacket = 5, /* sequenced packet stream */
} SocketType;
//client side
typedef enum tagSocketEvent
{
FdREAD = 1,
FdWRITE = 2,
FdCONNECT = 16,
FdCLOSE = 32
}SocketEvent;
typedef enum tagAddressFormat{
PfUNSPEC = 0,
PfUNIX = 1,
PfINET = 2,
PfIMPLINK = 3,
PfPUP = 4,
PfCHAOS = 5,
PfIPX = 6,
PfNS = PfIPX,
PfISO = 7,
PfOSI = PfISO,
PfECMA = 8,
PfDATAKIT = 9,
PfCCITT = 10,
PfSNA = 11,
PfDECnet = 12,
PfDLI = 13,
PfLAT = 14,
PfHYLINK = 15,
PfAPPLETALK = 16,
PfNETBIOS = 17,
PfVOICEVIEW = 18,
PfFIREFOX = 19,
PfUNKNOWN1 = 20,
PfBAN = 21,
PfMAX = 22
}AddressFormat;
[
uuid(726360BE-AE26-11D5-8A74-002078B038BB),
helpstring("_ISktClientEvents Interface")
]
dispinterface _ISktClientEvents
{
properties:
methods:
[id(1), helpstring("method OnDataAvailable")] HRESULT OnDataAvailable([in]long hSocket, [in]long lBytes, [in] long lInfo);
[id(2), helpstring("method OnOtherMessages")] HRESULT OnOtherMessages([in]long nMsg, [in]long wParam, [in]long lParam);
[id(3), helpstring("method OnSocketClosed")] HRESULT OnSocketClosed([in]long hSocket, [in]long lError);
[id(4), helpstring("method OnSocketConnected")] HRESULT OnSocketConnected([in]long hSocket, [in]long lError);
[id(5), helpstring("method OnConnecting")] HRESULT OnConnecting([in]long hSocket, [in]long hWnd);
[id(6), helpstring("method OnSendingData")] HRESULT OnSendingData([in]long hSocket, [in]long lError);
[id(7), helpstring("method OnGetHostByAddr")] HRESULT OnGetHostByAddr([in]long hHandle, [in]BSTR bstrHostName, [in]BSTR bstrHostAlias, [in]long lError);
[id(8), helpstring("method OnGetHostByName")] HRESULT OnGetHostByName([in]long hHandle, [in]BSTR bstrHostName, [in]BSTR bstrAlias, [in]BSTR bstrIPAddr, [in]long lError);
};
[
uuid(696A510C-B10B-11D5-8A80-002078B038BB),
helpstring("SktClient Class")
]
coclass SktClient
{
[default] interface ISktClient;
[default, source] dispinterface _ISktClientEvents;
};
};