/*++ Copyright (C) 1994-98 Microsft Corporation. All rights reserved. Module Name: rasapip.h Abstract: This file has definitions for private apis for ras connections. These apis are exported from rasapi32.dll Author: Rao Salapaka (raos) 30-Jan-1998 Revision History: --*/ #ifndef _RASAPIP_ #define _RASAPIP_ #include //for MAX_PATH #ifdef __cplusplus extern "C" { #endif #define RASAPIP_MAX_DEVICE_NAME 128 #define RASAPIP_MAX_ENTRY_NAME 256 #define RASAPIP_MAX_PHONE_NUMBER 128 // Must be same as RAS_MaxPhoneNumber #define RAS_DEVICE_TYPE(_x) ((_x) & 0x0000FFFF) #define RAS_DEVICE_CLASS(_x) ((_x) & 0xFFFF0000) enum _RASDEVICETYPE { RDT_Modem = 0, RDT_X25, RDT_Isdn, RDT_Serial, RDT_FrameRelay, RDT_Atm, RDT_Sonet, RDT_Sw56, RDT_Tunnel_Pptp, RDT_Tunnel_L2tp, RDT_Irda, RDT_Parallel, RDT_Other, RDT_PPPoE, // // The following flags when set // specify the class of the device // RDT_Tunnel = 0x00010000, RDT_Direct = 0x00020000, RDT_Null_Modem = 0x00040000, RDT_Broadband = 0x00080000 }; typedef enum _RASDEVICETYPE RASDEVICETYPE; // Private flags for RASENUMENTRYDETAILS // #define REED_F_Default 0x1 // default Internet connection typedef struct _RASENUMENTRYDETAILS { DWORD dwSize; DWORD dwFlags; // same as RASENTRYNAME.dwFlags DWORD dwType; // same as RASENTRY.dwType GUID guidId; // same as RASENTRY.guidId BOOL fShowMonitorIconInTaskBar; // same as RASENTRY.fShowMonitorIconInTaskBar RASDEVICETYPE rdt; WCHAR szDeviceName[RASAPIP_MAX_DEVICE_NAME]; WCHAR szEntryName[RASAPIP_MAX_ENTRY_NAME + 1]; WCHAR szPhonebookPath[MAX_PATH + 1]; DWORD dwFlagsPriv; // Private flags, not found in RASENTRY WCHAR szPhoneNumber[RASAPIP_MAX_PHONE_NUMBER + 1]; } RASENUMENTRYDETAILS, *LPRASENUMENTRYDETAILS; DWORD APIENTRY DwDeleteSubEntry( IN LPCWSTR lpszPhonebook, IN LPCWSTR lpszEntry, IN DWORD dwSubEntryId ); DWORD APIENTRY DwEnumEntryDetails ( IN LPCWSTR lpszPhonebookPath, OUT LPRASENUMENTRYDETAILS lprasentryname, IN OUT LPDWORD lpcb, OUT LPDWORD lpcEntries ); DWORD APIENTRY DwCloneEntry( IN LPCWSTR lpwszPhonebookPath, IN LPCWSTR lpwszSrcEntryName, IN LPCWSTR lpwszDstEntryName ); // Implemented in rasman.dll // DWORD APIENTRY RasReferenceRasman ( IN BOOL fAttach ); DWORD APIENTRY RasInitialize () ; // Implemented in netcfgx.dll // HRESULT WINAPI RasAddBindings ( IN OUT UINT* pcIpOut, IN OUT UINT* pcNbfIn, IN OUT UINT* pcNbfOut); HRESULT WINAPI RasCountBindings ( OUT UINT* pcIpOut, OUT UINT* pcNbfIn, OUT UINT* pcNbfOut); HRESULT WINAPI RasRemoveBindings ( IN OUT UINT* pcIpOutBindings, IN const GUID* pguidIpOutBindings, IN OUT UINT* pcNbfIn, IN OUT UINT* pcNbfOut); //+--------------------------------------------------------------------------- // RAS Event notifications into netman. // typedef enum _RASEVENTTYPE { ENTRY_ADDED, ENTRY_DELETED, ENTRY_MODIFIED, ENTRY_RENAMED, ENTRY_CONNECTED, ENTRY_CONNECTING, ENTRY_DISCONNECTING, ENTRY_DISCONNECTED, INCOMING_CONNECTED, INCOMING_DISCONNECTED, SERVICE_EVENT, ENTRY_BANDWIDTH_ADDED, ENTRY_BANDWIDTH_REMOVED, DEVICE_ADDED, DEVICE_REMOVED, ENTRY_AUTODIAL } RASEVENTTYPE; typedef enum _SERVICEEVENTTYPE { RAS_SERVICE_STARTED, RAS_SERVICE_STOPPED, } SERVICEEVENTTYPE; typedef enum _RASSERVICE { RASMAN, RASAUTO, REMOTEACCESS, } RASSERVICE; typedef struct _RASEVENT { RASEVENTTYPE Type; union { // ENTRY_ADDED, // ENTRY_MODIFIED, // ENTRY_CONNECTED // ENTRY_CONNECTING // ENTRY_DISCONNECTING // ENTRY_DISCONNECTED struct { RASENUMENTRYDETAILS Details; }; // ENTRY_DELETED, // INCOMING_CONNECTED, // INCOMING_DISCONNECTED, // ENTRY_BANDWIDTH_ADDED // ENTRY_BANDWIDTH_REMOVED // guidId is valid // ENTRY_RENAMED // ENTRY_AUTODIAL, struct { HANDLE hConnection; RASDEVICETYPE rDeviceType; GUID guidId; WCHAR pszwNewName [RASAPIP_MAX_ENTRY_NAME + 1]; }; // SERVICE_EVENT, struct { SERVICEEVENTTYPE Event; RASSERVICE Service; }; // DEVICE_ADDED // DEVICE_REMOVED RASDEVICETYPE DeviceType; }; } RASEVENT; typedef struct _RASENTRYHEADER { DWORD dwEntryType; WCHAR szEntryName[RASAPIP_MAX_ENTRY_NAME + 1]; } RASENTRYHEADER, *PRASENTRYHEADER; // Implemented in netman.dll // typedef VOID (APIENTRY *RASEVENTNOTIFYPROC)(const RASEVENT* pEvent); VOID APIENTRY RasEventNotify ( const RASEVENT* pEvent); DWORD APIENTRY DwEnumEntriesForAllUsers( DWORD *lpcb, DWORD *lpcEntries, RASENTRYHEADER * pRasEntryHeader); #ifdef __cplusplus } #endif #endif // _RASAPIP_