home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / wsnetbs.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  2KB  |  76 lines

  1. /*
  2.  *   wsnetbs.h
  3.  *   Copyright (c) 1994-1999, 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. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  13. #define _WSNETBS_
  14.  
  15. #if _MSC_VER > 1000
  16. #pragma once
  17. #endif
  18.  
  19. /*
  20.  *   This is the structure of the SOCKADDR structure for NETBIOS.
  21.  *
  22.  */
  23.  
  24. #define NETBIOS_NAME_LENGTH 16
  25.  
  26. typedef struct sockaddr_nb {
  27.     short   snb_family;
  28.     u_short snb_type;
  29.     char    snb_name[NETBIOS_NAME_LENGTH];
  30. } SOCKADDR_NB, *PSOCKADDR_NB,FAR *LPSOCKADDR_NB;
  31.  
  32. /*
  33.  * Bit values for the snb_type field of SOCKADDR_NB.
  34.  *
  35.  */
  36.  
  37. #define NETBIOS_UNIQUE_NAME         (0x0000)
  38. #define NETBIOS_GROUP_NAME          (0x0001)
  39. #define NETBIOS_TYPE_QUICK_UNIQUE   (0x0002)
  40. #define NETBIOS_TYPE_QUICK_GROUP    (0x0003)
  41.  
  42. /*
  43.  * A macro convenient for setting up NETBIOS SOCKADDRs.
  44.  *
  45.  */
  46.  
  47. #define SET_NETBIOS_SOCKADDR(_snb,_type,_name,_port)                          \
  48.     {                                                                         \
  49.         int _i;                                                               \
  50.         (_snb)->snb_family = AF_NETBIOS;                                      \
  51.         (_snb)->snb_type = (_type);                                           \
  52.         for (_i=0; _i<NETBIOS_NAME_LENGTH-1; _i++) {                          \
  53.             (_snb)->snb_name[_i] = ' ';                                       \
  54.         }                                                                     \
  55.         for (_i=0; *((_name)+_i) != '\0' && _i<NETBIOS_NAME_LENGTH-1; _i++) { \
  56.             (_snb)->snb_name[_i] = *((_name)+_i);                             \
  57.         }                                                                     \
  58.         (_snb)->snb_name[NETBIOS_NAME_LENGTH-1] = (_port);                    \
  59.     }
  60.  
  61. /*
  62.  *   To open a NetBIOS socket, call the socket() function as follows:
  63.  *
  64.  *       s = socket( AF_NETBIOS, {SOCK_SEQPACKET|SOCK_DGRAM}, -Lana );
  65.  *
  66.  *   where Lana is the NetBIOS Lana number of interest.  For example, to
  67.  *   open a socket for Lana 2, specify -2 as the "protocol" parameter
  68.  *   to the socket() function.
  69.  *
  70.  */
  71.  
  72.  
  73. #pragma option pop /*P_O_Pop*/
  74. #endif
  75.  
  76.