|
|
/*++ BUILD Version: 0000 // Increment this if a change has global effects
Copyright (c) 1996 Microsoft Corporation
Module Name:
sockeye.h
Abstract:
Header file for the winsock browser util
Author:
Dan Knudson (DanKn) 29-Jul-1996
Revision History:
--*/
#include "windows.h"
#include "winsock2.h"
#include "ws2spi.h"
//
// Symbolic constants
//
#define DS_NONZEROFIELDS 0x00000001
#define DS_ZEROFIELDS 0x00000002
#define DS_BYTEDUMP 0x00000004
#define WT_SOCKET 1
#define PT_DWORD 1
#define PT_FLAGS 2
#define PT_POINTER 3
#define PT_STRING 4
#define PT_ORDINAL 5
#define PT_WSAPROTOCOLINFO 6
#define PT_QOS 7
#define PT_PTRNOEDIT 8
#define FT_DWORD 1
#define FT_FLAGS 2
#define FT_ORD 3
#define FT_SIZE 4
#define FT_OFFSET 5
#define MAX_STRING_PARAM_SIZE 96
#define MAX_USER_BUTTONS 6
#define MAX_USER_BUTTON_TEXT_SIZE 8
#define TABSIZE 4
#define WM_ASYNCREQUESTCOMPLETED WM_USER+0x55
#define WM_NETWORKEVENT WM_USER+0x56
//
//
//
typedef LONG (WSAAPI *PFN0)(void); typedef LONG (WSAAPI *PFN1)(ULONG_PTR); typedef LONG (WSAAPI *PFN2)(ULONG_PTR, ULONG_PTR); typedef LONG (WSAAPI *PFN3)(ULONG_PTR, ULONG_PTR, ULONG_PTR); typedef LONG (WSAAPI *PFN4)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR); typedef LONG (WSAAPI *PFN5)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR); typedef LONG (WSAAPI *PFN6)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR); typedef LONG (WSAAPI *PFN7)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR); typedef LONG (WSAAPI *PFN8)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR); typedef LONG (WSAAPI *PFN9)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR); typedef LONG (WSAAPI *PFN10)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR); typedef LONG (WSAAPI *PFN12)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR);
typedef struct _MYSOCKET { SOCKET Sock;
BOOL bWSASocket;
DWORD dwAddressFamily;
DWORD dwSocketType;
DWORD dwFlags;
} MYSOCKET, *PMYSOCKET;
typedef struct _LOOKUP { DWORD dwVal;
char *lpszVal;
} LOOKUP, *PLOOKUP;
typedef enum { ws_accept, ws_bind, ws_closesocket, ws_connect, ws_gethostbyaddr, ws_gethostbyname, ws_gethostname, ws_getpeername, ws_getprotobyname, ws_getprotobynumber, ws_getservbyname, ws_getservbyport, ws_getsockname, ws_getsockopt, ws_htonl, ws_htons, ws_inet_addr, ws_inet_ntoa, ws_ioctlsocket, ws_listen, ws_ntohl, ws_ntohs, ws_recv, ws_recvfrom, ws_select, ws_send, ws_sendto, ws_setsockopt, ws_shutdown, ws_socket, ws_WSAAccept, ws_WSAAddressToStringA, ws_WSAAddressToStringW, ws_WSAAsyncGetHostByAddr, ws_WSAAsyncGetHostByName, ws_WSAAsyncGetProtoByName, ws_WSAAsyncGetProtoByNumber, ws_WSAAsyncGetServByName, ws_WSAAsyncGetServByPort, ws_WSAAsyncSelect, ws_WSACancelAsyncRequest, // ws_WSACancelBlockingCall,
ws_WSACleanup, ws_WSACloseEvent, ws_WSAConnect, ws_WSACreateEvent, ws_WSADuplicateSocketA, ws_WSADuplicateSocketW, ws_WSAEnumNameSpaceProvidersA, ws_WSAEnumNameSpaceProvidersW, ws_WSAEnumNetworkEvents, ws_WSAEnumProtocolsA, ws_WSAEnumProtocolsW, ws_WSAEventSelect, ws_WSAGetLastError, ws_WSAGetOverlappedResult, ws_WSAGetQOSByName, ws_WSAGetServiceClassInfoA, ws_WSAGetServiceClassInfoW, ws_WSAGetServiceClassNameByClassIdA, ws_WSAGetServiceClassNameByClassIdW, ws_WSAHtonl, ws_WSAHtons, ws_WSAInstallServiceClassA, ws_WSAInstallServiceClassW, ws_WSAIoctl, // ws_WSAIsBlocking,
ws_WSAJoinLeaf, ws_WSALookupServiceBeginA, ws_WSALookupServiceBeginW, ws_WSALookupServiceEnd, ws_WSALookupServiceNextA, ws_WSALookupServiceNextW, ws_WSANtohl, ws_WSANtohs, ws_WSARecv, ws_WSARecvDisconnect, ws_WSARecvFrom, ws_WSARemoveServiceClass, ws_WSAResetEvent, ws_WSASend, ws_WSASendDisconnect, ws_WSASendTo, // ws_WSASetBlockingHook,
ws_WSASetEvent, ws_WSASetLastError, ws_WSASetServiceA, ws_WSASetServiceW, ws_WSASocketA, ws_WSASocketW, ws_WSAStartup, ws_WSAStringToAddressA, ws_WSAStringToAddressW, // ws_WSAUnhookBlockingHook,
ws_WSAWaitForMultipleEvents,
ws_WSCEnumProtocols, ws_WSCGetProviderPath,
ws_EnumProtocolsA, ws_EnumProtocolsW, ws_GetAddressByNameA, ws_GetAddressByNameW, ws_GetNameByTypeA, ws_GetNameByTypeW, ws_GetServiceA, ws_GetServiceW, ws_GetTypeByNameA, ws_GetTypeByNameW, ws_SetServiceA, ws_SetServiceW,
// CloseHandl,
// DumpBuffer,
MiscBegin,
DefValues, WSAProtoInfo, ws_QOS
} FUNC_INDEX;
typedef struct _MYOVERLAPPED { WSAOVERLAPPED WSAOverlapped;
FUNC_INDEX FuncIndex;
DWORD dwFuncSpecific1;
} MYOVERLAPPED, *PMYOVERLAPPED;
typedef struct _FUNC_PARAM { char far *szName;
DWORD dwType;
ULONG_PTR dwValue;
union { LPVOID pLookup;
char far *buf;
LPVOID ptr;
ULONG_PTR dwDefValue;
} u;
} FUNC_PARAM, *PFUNC_PARAM;
typedef struct _FUNC_PARAM_HEADER { DWORD dwNumParams;
FUNC_INDEX FuncIndex;
PFUNC_PARAM aParams;
union { PFN0 pfn0; PFN1 pfn1; PFN2 pfn2; PFN3 pfn3; PFN4 pfn4; PFN5 pfn5; PFN6 pfn6; PFN7 pfn7; PFN8 pfn8; PFN9 pfn9; PFN10 pfn10; PFN12 pfn12;
} u;
} FUNC_PARAM_HEADER, *PFUNC_PARAM_HEADER;
typedef struct _STRUCT_FIELD { char far *szName;
DWORD dwType;
DWORD dwValue;
LPVOID pLookup;
} STRUCT_FIELD, *PSTRUCT_FIELD;
typedef struct _STRUCT_FIELD_HEADER { LPVOID pStruct;
char far *szName;
DWORD dwNumFields;
PSTRUCT_FIELD aFields;
} STRUCT_FIELD_HEADER, *PSTRUCT_FIELD_HEADER;
typedef struct _ASYNC_REQUEST_INFO { HANDLE hRequest;
char FAR *pszFuncName;
FUNC_INDEX FuncIndex;
struct _ASYNC_REQUEST_INFO *pPrev;
struct _ASYNC_REQUEST_INFO *pNext;
} ASYNC_REQUEST_INFO, *PASYNC_REQUEST_INFO;
//
// Func prototypes
//
INT_PTR CALLBACK MainWndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
void FAR ShowStr( LPCSTR format, ... );
INT_PTR CALLBACK ParamsDlgProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
INT_PTR CALLBACK AboutDlgProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
INT_PTR CALLBACK IconDlgProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
LONG DoFunc( PFUNC_PARAM_HEADER pHeader );
BOOL LetUserMungeParams( PFUNC_PARAM_HEADER pParamsHeader );
void ShowLineFuncResult( LPSTR lpFuncName, LONG lResult );
void FuncDriver( FUNC_INDEX funcIndex );
INT_PTR CALLBACK UserButtonsDlgProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
void FAR ShowHostEnt( struct hostent *phe );
void FAR ShowProtoEnt( struct protoent *ppe );
void FAR ShowServEnt( struct servent *pse );
void PASCAL QueueAsyncRequestInfo( PASYNC_REQUEST_INFO pAsyncReqInfo );
PASYNC_REQUEST_INFO PASCAL DequeueAsyncRequestInfo( HANDLE hRequest );
void PASCAL ShowBytes( DWORD dwSize, LPVOID lp, DWORD dwNumTabs );
void PASCAL ShowFlags( DWORD dwValue, char FAR *pszValueName, PLOOKUP pLookup );
void UpdateResults( BOOL bBegin );
LPSTR PASCAL GetStringFromOrdinalValue( DWORD dwValue, PLOOKUP pLookup );
VOID PASCAL ShowProtoInfo( LPWSAPROTOCOL_INFOA pInfo, DWORD dwIndex, BOOL bAscii );
|