home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / WSNETBS.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  2KB  |  72 lines

  1. /*
  2.  *   wsnetbs.h
  3.  *   Copyright (c) 1994-1995, Microsoft Corp. All rights reserved.
  4.  *
  5.  *   Windows Sockets include file for NETBIOS.  This file contains all
  6.  *   standardized NETBIOS information.  Include this header file after
  7.  *   winsock.h.
  8.  *
  9.  */
  10.  
  11. #ifndef _WSNETBS_
  12. #define _WSNETBS_
  13. #pragma option -b
  14.  
  15. /*
  16.  *   This is the structure of the SOCKADDR structure for NETBIOS.
  17.  *
  18.  */
  19.  
  20. #define NETBIOS_NAME_LENGTH 16
  21.  
  22. typedef struct sockaddr_nb {
  23.     short   snb_family;
  24.     u_short snb_type;
  25.     char    snb_name[NETBIOS_NAME_LENGTH];
  26. } SOCKADDR_NB, *PSOCKADDR_NB,FAR *LPSOCKADDR_NB;
  27.  
  28. /*
  29.  * Bit values for the snb_type field of SOCKADDR_NB.
  30.  *
  31.  */
  32.  
  33. #define NETBIOS_UNIQUE_NAME         (0x0000)
  34. #define NETBIOS_GROUP_NAME          (0x0001)
  35. #define NETBIOS_TYPE_QUICK_UNIQUE   (0x0002)
  36. #define NETBIOS_TYPE_QUICK_GROUP    (0x0003)
  37.  
  38. /*
  39.  * A macro convenient for setting up NETBIOS SOCKADDRs.
  40.  *
  41.  */
  42.  
  43. #define SET_NETBIOS_SOCKADDR(_snb,_type,_name,_port)                          \
  44.     {                                                                         \
  45.         int _i;                                                               \
  46.         (_snb)->snb_family = AF_NETBIOS;                                      \
  47.         (_snb)->snb_type = (_type);                                           \
  48.         for (_i=0; _i<NETBIOS_NAME_LENGTH-1; _i++) {                          \
  49.             (_snb)->snb_name[_i] = ' ';                                       \
  50.         }                                                                     \
  51.         for (_i=0; *((_name)+_i) != '\0' && _i<NETBIOS_NAME_LENGTH-1; _i++) { \
  52.             (_snb)->snb_name[_i] = *((_name)+_i);                             \
  53.         }                                                                     \
  54.         (_snb)->snb_name[NETBIOS_NAME_LENGTH-1] = (_port);                    \
  55.     }
  56.  
  57. /*
  58.  *   To open a NetBIOS socket, call the socket() function as follows:
  59.  *
  60.  *       s = socket( AF_NETBIOS, {SOCK_SEQPACKET|SOCK_DGRAM}, -Lana );
  61.  *
  62.  *   where Lana is the NetBIOS Lana number of interest.  For example, to
  63.  *   open a socket for Lana 2, specify -2 as the "protocol" parameter
  64.  *   to the socket() function.
  65.  *
  66.  */
  67.  
  68.  
  69. #pragma option -b.
  70. #endif
  71.  
  72.