text: /*
      File    netcfgdb.h
  
      Implements a database abstraction on top of the net config
      items needed by the ras server ui for connections.
  
      Paul Mayfield, 12/15/97
  */
  
  #ifndef _rassrvui_netcfg_h
  #define _rassrvui_netcfg_h
  
  //
  // Network component types
  //
  #define NETCFGDB_SERVICE        0x1
  #define NETCFGDB_CLIENT         0x2
  #define NETCFGDB_PROTOCOL       0x4
  
  //
  // Identifiers for net components.
  //
  // These will be sorted in numerical order
  // of these identifiers.
  //
  #define NETCFGDB_ID_IP          0x1
  #define NETCFGDB_ID_IPX         0x2
  #define NETCFGDB_ID_NETBUI      0x4
  #define NETCFGDB_ID_ARAP        0x8
  #define NETCFGDB_ID_FILEPRINT   0x10
  #define NETCFGDB_ID_OTHER       0xf0000000
  
  //
  // Parameters that can be set for tcpip on the dialin
  // server.
  //
  #define TCPIP_ADDR_LEN 20
  typedef struct _TCPIP_PARAMS 
  {
      DWORD dwPoolStart;  // Start ip addr of the static pool (host order)
      DWORD dwPoolEnd;    // End ip addr of the static pool (host order)
      BOOL bCaller;       // Whether caller can specify addr
      BOOL bUseDhcp;      // TRUE =  Use dhcp to assign addr
                          // FALSE = Use a pool to assign addr
  } TCPIP_PARAMS;
  
  // Parameters that can be set for Ipx on the dialin
  // server.
  //
  typedef struct _IPX_PARAMS 
  {
      DWORD dwIpxAddress;   // Beginning ipx address to allocate        
      BOOL bCaller;         // Whether to allow the caller to specify addr
      BOOL bAutoAssign;     // Whether to automatically assign node nums
      BOOL bGlobalWan;      // Whether to assign same net node to all clients
      
  } IPX_PARAMS;
  
  DWORD 
  netDbOpen (
      OUT HANDLE * phNetCompDatabase, 
      IN  PWCHAR pszClientName);
      
  DWORD 
  netDbClose (
      IN HANDLE hNetCompDatabase);
  
  DWORD 
  netDbFlush (
      IN HANDLE hNetCompDatabase);
      
  DWORD 
  netDbLoad (
      IN HANDLE hNetCompDatabase);
      
  DWORD 
  netDbReload (
      IN HANDLE hNetCompDatabase);
  
  DWORD
  netDbReloadComponent (
      IN HANDLE hNetCompDatabase,
      IN DWORD dwComponentId);
      
  DWORD 
  netDbRollback (
      IN HANDLE hNetCompDatabase);
  
  BOOL 
  netDbIsLoaded(
      IN HANDLE hNetCompDatabase);
  
  DWORD 
  netDbGetCompCount(
      IN HANDLE hNetCompDatabase, 
      OUT LPDWORD lpdwCount);
  
  DWORD 
  netDbGetName(
      IN  HANDLE hNetCompDatabase, 
      IN  DWORD dwIndex, 
      OUT PWCHAR* pszName);
  
  DWORD 
  netDbGetDesc(
      IN  HANDLE hNetCompDatabase, 
      IN  DWORD dwIndex, 
      OUT PWCHAR* pszName);
  
  DWORD 
  netDbGetType(
      IN  HANDLE hNetCompDatabase, 
      IN  DWORD dwIndex, 
      OUT LPDWORD lpdwType);
  
  DWORD
  netDbGetId(
      IN  HANDLE hNetCompDatabase,
      IN  DWORD dwIndex,
      OUT LPDWORD lpdwId);
  
  DWORD 
  netDbGetEnable(
      IN  HANDLE hNetCompDatabase, 
      IN  DWORD dwIndex, 
      OUT PBOOL pbEnabled);
  
  DWORD 
  netDbSetEnable(
      IN HANDLE hNetCompDatabase, 
      IN DWORD dwIndex, 
      IN BOOL bEnabled);
  
  DWORD 
  netDbIsRasManipulatable(
      IN  HANDLE hNetCompDatabase, 
      IN  DWORD dwIndex, 
      OUT PBOOL pbManip);
  
  //For whistler bug 347355
  //
  DWORD
  netDbHasRemovePermission(
      IN HANDLE hNetCompDatabase,
      IN DWORD dwIndex,
      OUT PBOOL pbHasPermit);
  
  DWORD 
  netDbHasPropertiesUI(
      IN  HANDLE hNetCompDatabase, 
      IN  DWORD dwIndex, 
      OUT PBOOL pbHasUi);
  
  DWORD 
  netDbRaisePropertiesDialog(
      IN HANDLE hNetCompDatabase, 
      IN DWORD dwIndex, 
      IN HWND hwndParent);
  
  DWORD 
  netDbRaiseInstallDialog(
      IN HANDLE hNetCompDatabase, 
      IN HWND hwndParent);
  
  DWORD 
  netDbRaiseRemoveDialog(
      IN HANDLE hNetCompDatabase, 
      IN DWORD dwIndex, 
      IN HWND hwndParent);
  
  #endif
  