You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
189 lines
4.0 KiB
189 lines
4.0 KiB
//=================================================================
|
|
|
|
//
|
|
|
|
// Wsock32Api.h
|
|
|
|
//
|
|
|
|
// Copyright (c) 1999-2001 Microsoft Corporation, All Rights Reserved
|
|
//
|
|
//=================================================================
|
|
|
|
#ifndef _WSOCK32API_H_
|
|
#define _WSOCK32API_H_
|
|
|
|
#include <winsock.h>
|
|
#include <tdiinfo.h>
|
|
#include <llinfo.h>
|
|
#include <tdistat.h>
|
|
#include <ipinfo.h>
|
|
|
|
/******************************************************************************
|
|
* #includes to Register this class with the CResourceManager.
|
|
*****************************************************************************/
|
|
#include "DllWrapperBase.h"
|
|
|
|
extern const GUID g_guidWsock32Api;
|
|
extern const TCHAR g_tstrWsock32[];
|
|
|
|
|
|
/******************************************************************************
|
|
* Function pointer typedefs. Add new functions here as required.
|
|
*****************************************************************************/
|
|
typedef DWORD (CALLBACK *PFN_WSOCK32_WSCONTROL)
|
|
(
|
|
DWORD,
|
|
DWORD,
|
|
LPVOID,
|
|
LPDWORD,
|
|
LPVOID,
|
|
LPDWORD
|
|
);
|
|
|
|
typedef INT (APIENTRY *PFN_WSOCK32_ENUMPROTOCOLS)
|
|
(
|
|
LPINT lpiProtocols,
|
|
LPVOID lpProtocolBuffer,
|
|
LPDWORD lpdwBufferLength
|
|
) ;
|
|
|
|
typedef INT (APIENTRY *PFN_WSOCK32_STARTUP)
|
|
(
|
|
IN WORD wVersionRequired,
|
|
OUT LPWSADATA lpWSAData
|
|
) ;
|
|
|
|
typedef INT (APIENTRY *PFN_WSOCK32_CLEANUP)
|
|
(
|
|
) ;
|
|
|
|
typedef INT (APIENTRY *PFN_WSOCK32_CLOSESOCKET)
|
|
(
|
|
SOCKET s
|
|
) ;
|
|
|
|
typedef int ( PASCAL FAR *PFN_WSOCK32_GETSOCKOPT )
|
|
(
|
|
SOCKET s,
|
|
int level,
|
|
int optname,
|
|
char FAR * optval,
|
|
int FAR *optlen
|
|
);
|
|
|
|
typedef int ( PASCAL FAR *PFN_WSOCK32_BIND )
|
|
(
|
|
SOCKET s,
|
|
const struct sockaddr FAR *addr,
|
|
int namelen
|
|
);
|
|
|
|
typedef SOCKET ( PASCAL FAR *PFN_WSOCK32_SOCKET )
|
|
(
|
|
int af,
|
|
int type,
|
|
int protocol
|
|
);
|
|
|
|
typedef int ( PASCAL FAR *PFN_WSOCK32_WSAGETLASTERROR ) (void);
|
|
|
|
typedef char * ( PASCAL FAR *PFN_WSOCK32_INET_NTOA )
|
|
(
|
|
IN struct in_addr in
|
|
);
|
|
|
|
/******************************************************************************
|
|
* Wrapper class for Wsock32 load/unload, for registration with CResourceManager.
|
|
******************************************************************************/
|
|
class CWsock32Api : public CDllWrapperBase
|
|
{
|
|
private:
|
|
// Member variables (function pointers) pointing to kernel32 functions.
|
|
// Add new functions here as required.
|
|
PFN_WSOCK32_WSCONTROL m_pfnWsControl;
|
|
PFN_WSOCK32_ENUMPROTOCOLS m_pfnWsEnumProtocols;
|
|
PFN_WSOCK32_STARTUP m_pfnWsStartup;
|
|
PFN_WSOCK32_CLEANUP m_pfnWsCleanup;
|
|
PFN_WSOCK32_CLOSESOCKET m_pfnWsCloseSocket;
|
|
PFN_WSOCK32_GETSOCKOPT m_pfnWsGetSockopt ;
|
|
PFN_WSOCK32_BIND m_pfnWsBind ;
|
|
PFN_WSOCK32_SOCKET m_pfnWsSocket ;
|
|
PFN_WSOCK32_WSAGETLASTERROR m_pfnWsWSAGetLastError ;
|
|
PFN_WSOCK32_INET_NTOA m_pfnWsInet_NtoA ;
|
|
|
|
public:
|
|
|
|
// Constructor and destructor:
|
|
CWsock32Api(LPCTSTR a_tstrWrappedDllName);
|
|
~CWsock32Api();
|
|
|
|
// Inherrited initialization function.
|
|
virtual bool Init();
|
|
|
|
// Member functions wrapping Wsock32 functions.
|
|
// Add new functions here as required:
|
|
bool WsControl
|
|
(
|
|
DWORD a_dw1,
|
|
DWORD a_dw2,
|
|
LPVOID a_lpv1,
|
|
LPDWORD a_lpdw1,
|
|
LPVOID a_lpv2,
|
|
LPDWORD a_lpdw2,
|
|
DWORD *a_pdwRetval
|
|
);
|
|
|
|
INT WsEnumProtocols (
|
|
|
|
LPINT lpiProtocols,
|
|
LPVOID lpProtocolBuffer,
|
|
LPDWORD lpdwBufferLength
|
|
);
|
|
|
|
INT WsWSAStartup (
|
|
|
|
IN WORD wVersionRequired,
|
|
OUT LPWSADATA lpWSAData
|
|
) ;
|
|
|
|
INT WsWSACleanup () ;
|
|
|
|
INT Wsclosesocket ( SOCKET s ) ;
|
|
|
|
int Wsbind (
|
|
|
|
SOCKET s,
|
|
const struct sockaddr FAR *addr,
|
|
int namelen
|
|
);
|
|
|
|
int Wsgetsockopt (
|
|
|
|
SOCKET s,
|
|
int level,
|
|
int optname,
|
|
char FAR * optval,
|
|
int FAR *optlen
|
|
);
|
|
|
|
SOCKET Wssocket (
|
|
|
|
int af,
|
|
int type,
|
|
int protocol
|
|
);
|
|
|
|
int WsWSAGetLastError(void);
|
|
|
|
char * Wsinet_ntoa (
|
|
|
|
struct in_addr in
|
|
) ;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|