//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: R A S U I P . H // // Contents: Private RAS APIs used by the NT5 Connections UI. These // APIs are exported by rasdlg.dll. // // Notes: // // Author: shaunco 10 Nov 1997 // //---------------------------------------------------------------------------- #ifndef _RASUIP_ #define _RASUIP_ #if defined (_MSC_VER) #if ( _MSC_VER >= 1200 ) #pragma warning(push) #endif #if ( _MSC_VER >= 800 ) #pragma warning(disable:4001) #pragma warning(disable:4201) #pragma warning(disable:4214) #pragma warning(disable:4514) #endif #if (_MSC_VER >= 1020) #pragma once #endif #endif #include #include #include #ifdef __cplusplus extern "C" { #endif //+--------------------------------------------------------------------------- // RASENTRYDLG.reserved2 argument block valid when RASENTRYDLG.dwFlags // RASEDFLAG_ShellOwned is set. // typedef struct _RASEDSHELLOWNEDR2 { // Add page routine to be called by RasEntryDlg before returning. // Callback returns context 'lparam'. // LPFNADDPROPSHEETPAGE pfnAddPage; LPARAM lparam; // When RASEDFLAG_NewEntry and RASEDFLAG_ShellOwned are set, // pvWizardCtx is filled in by RasEntryDlg so that the shell has // context information with which to pass to the NccXXX APIs below. // LPVOID pvWizardCtx; } RASEDSHELLOWNEDR2; //+--------------------------------------------------------------------------- // RAS Connection wizard APIs // // Flags returned from RasWizCreateNewEntry // #define NCC_FLAG_ALL_USERS 0x1 // Create connection for all users #define NCC_FLAG_CREATE_INCOMING 0x2 // Create incoming connection instead #define NCC_FLAG_SHARED 0x4 #define NCC_FLAG_FIREWALL 0x8 // If turn on Firewall #define NCC_FLAG_GLOBALCREDS 0x10 // If the credentials is for all users #define NCC_FLAG_DEFAULT_INTERNET 0x20 // If this is a default internet connection // Types of connections to be used in calls to RasWizXXX #define RASWIZ_TYPE_DIALUP 0x1 #define RASWIZ_TYPE_DIRECT 0x2 #define RASWIZ_TYPE_INCOMING 0x3 #define RASWIZ_TYPE_BROADBAND 0x4 DWORD APIENTRY RasWizCreateNewEntry( IN DWORD dwRasWizType, IN LPVOID pvData, OUT LPWSTR pszwPbkFile, OUT LPWSTR pszwEntryName, OUT DWORD* pdwFlags); DWORD APIENTRY RasWizGetNCCFlags( IN DWORD dwRasWizType, IN LPVOID pvData, OUT DWORD * pdwFlags); DWORD APIENTRY RasWizGetUserInputConnectionName ( IN LPVOID pvData, OUT LPWSTR pszwInputName); DWORD APIENTRY RasWizGetSuggestedEntryName( IN DWORD dwRasWizType, IN LPVOID pvData, OUT LPWSTR pszwSuggestedName); DWORD APIENTRY RasWizQueryMaxPageCount( IN DWORD dwRasWizType); DWORD APIENTRY RasWizSetEntryName( IN DWORD dwRasWizType, IN LPVOID pvData, IN LPCWSTR pszwName); DWORD APIENTRY RasWizIsEntryRenamable( IN DWORD dwRasWizType, IN LPVOID pvData, OUT BOOL* pfRenamable); //+--------------------------------------------------------------------------- // Inbound connection APIs // typedef HANDLE HRASSRVCONN; #define RASSRV_MaxName 256 // Types of ras server connections (RASSRVCONN.dwType values) // #define RASSRVUI_MODEM 0 #define RASSRVUI_VPN 1 #define RASSRVUI_DCC 2 // Defines a structure that identifies a client connection // typedef struct _RASSRVCONN { DWORD dwSize; // Size of the structure (used for versioning) HRASSRVCONN hRasSrvConn; // Handle of the connection DWORD dwType; WCHAR szEntryName [RASSRV_MaxName + 1]; WCHAR szDeviceName [RASSRV_MaxName + 1]; GUID Guid; } RASSRVCONN, *LPRASSRVCONN; // Starts the remote access service and marks it as autostart. // If the remoteaccess service is not installed, this function // returns an error. DWORD APIENTRY RasSrvInitializeService ( VOID); // Stops the remote access service and marks it as disabled. DWORD APIENTRY RasSrvCleanupService ( VOID); DWORD APIENTRY RasSrvIsServiceRunning ( OUT BOOL* pfIsRunning); // // Returns whether is it ok to display the "Incoming Connections" // connection. // DWORD APIENTRY RasSrvAllowConnectionsConfig ( OUT BOOL* pfAllow); DWORD APIENTRY RasSrvAddPropPages ( IN HRASSRVCONN hRasSrvConn, IN HWND hwndParent, IN LPFNADDPROPSHEETPAGE pfnAddPage, IN LPARAM lParam, IN OUT PVOID * ppvContext); DWORD APIENTRY RasSrvAddWizPages ( IN LPFNADDPROPSHEETPAGE pfnAddPage, IN LPARAM lParam, IN OUT PVOID * ppvContext); // context should be passed in as pvData // subsequent calls to RasWizXXX // Function behaves anagolously to the WIN32 function RasEnumConnections but // for client connections instead of dialout connections. DWORD APIENTRY RasSrvEnumConnections ( IN OUT LPRASSRVCONN pRasSrvConn, // Buffer of array of connections. IN LPDWORD pcb, // size in bytes of buffer OUT LPDWORD pcConnections); // number of connections written to buffer // Gets the status of a Ras Server Connection DWORD APIENTRY RasSrvIsConnectionConnected ( IN HRASSRVCONN hRasSrvConn, // The connection in question OUT BOOL* pfConnected); // Buffer to hold the type // Hang up the given connection DWORD APIENTRY RasSrvHangupConnection ( IN HRASSRVCONN hRasSrvConn); // The connection in question // Has "show icons in taskbar" been checked? DWORD APIENTRY RasSrvQueryShowIcon ( OUT BOOL* pfShowIcon); // Allows the editing of ras user preferences DWORD APIENTRY RasUserPrefsDlg ( HWND hwndParent); // Enables or disables having the user manually dial // his/her remote access server. DWORD APIENTRY RasUserEnableManualDial ( IN HWND hwndParent, // parent for error dialogs IN BOOL bLogon, // whether a user is logged in IN BOOL bEnable ); // whether to enable or not DWORD APIENTRY RasUserGetManualDial ( IN HWND hwndParent, // parent for error dialogs IN BOOL bLogon, // whether a user is logged in IN PBOOL pbEnabled ); // whether to enable or not //+--------------------------------------------------------------------------- // Connection sharing API routines // // Defines the structure used to store information about the shared connection. // This structure is stored as binary data in the registry, and any changes // to it must be made with this in mind. // #include typedef struct _RASSHARECONN { DWORD dwSize; BOOL fIsLanConnection; union { GUID guid; RASENTRYNAMEW name; }; } RASSHARECONN, *LPRASSHARECONN; #include // Flag set by 'RasQueryLanConnTable' for private LAN connections // #define NCCF_PRIVATE_LAN 0x1000 // Name of secure event object shared with rasauto service. // #define RAS_AUTO_DIAL_SHARED_CONNECTION_EVENT \ "RasAutoDialSharedConnectionEvent" // VOID // RasEntryToSharedConnection( // IN LPCWSTR pszPhonebookPath, // IN LPCWSTR pszEntryName, // OUT LPRASSHARECONN pConn ); // // Macro for conversion of phonebook/entry to 'RASSHARECONN'. // #define RasEntryToSharedConnection( _pszPhonebookPath, _pszEntryName, _pConn ) \ ( \ ZeroMemory((_pConn), sizeof(RASSHARECONN)), \ (_pConn)->dwSize = sizeof(RASSHARECONN), \ (_pConn)->fIsLanConnection = FALSE, \ (_pConn)->name.dwSize = sizeof((_pConn)->name), \ (_pConn)->name.dwFlags = REN_AllUsers, \ lstrcpynW((_pConn)->name.szPhonebookPath, _pszPhonebookPath, MAX_PATH), \ lstrcpynW((_pConn)->name.szEntryName, _pszEntryName, RAS_MaxEntryName) \ ) // VOID // RasGuidToSharedConnection( // IN REFGUID guid, // OUT LPRASSHARECONN pConn ); // // Macro for conversion of LAN GUID to 'RASSHARECONN' // #define RasGuidToSharedConnection( _guid, _pConn ) \ ( \ ZeroMemory((_pConn), sizeof(RASSHARECONN)), \ (_pConn)->dwSize = sizeof(RASSHARECONN), \ (_pConn)->fIsLanConnection = TRUE, \ CopyMemory(&(_pConn)->guid, (_guid), sizeof(GUID)) \ ) // VOID // RasIsEqualSharedConnection( // IN LPRASSHARECONN pConn1, // IN LPRASSHARECONN pConn2 ); // // Macro for comparison of 'RASSHARECONN' values // #define RasIsEqualSharedConnection( _pConn1, _pConn2 ) \ ( \ ((_pConn1)->fIsLanConnection == (_pConn2)->fIsLanConnection) && \ ((_pConn1)->fIsLanConnection \ ? !memcmp(&(_pConn1)->guid, &(_pConn2)->guid, sizeof(GUID)) \ : (!lstrcmpiW( \ (_pConn1)->name.szPhonebookPath, \ (_pConn2)->name.szPhonebookPath) && \ !lstrcmpiW( \ (_pConn1)->name.szEntryName, \ (_pConn2)->name.szEntryName))) \ ) DWORD APIENTRY RasAutoDialSharedConnection( VOID ); DWORD APIENTRY RasIsSharedConnection( IN LPRASSHARECONN pConn, OUT PBOOL pfShared ); DWORD APIENTRY RasQuerySharedAutoDial( IN PBOOL pfEnabled ); DWORD APIENTRY RasQuerySharedConnection( OUT LPRASSHARECONN pConn ); DWORD APIENTRY RasSetSharedAutoDial( IN BOOL fEnable ); //+--------------------------------------------------------------------------- // Internal RAS APIs // DWORD APIENTRY DwRasUninitialize(); #ifdef __cplusplus } // extern "C" #endif #if defined (_MSC_VER) #if ( _MSC_VER >= 1200 ) #pragma warning(pop) #elif ( _MSC_VER >= 800 ) #pragma warning(default:4001) #pragma warning(default:4201) #pragma warning(default:4214) #pragma warning(default:4514) #endif #endif #endif // _RASUIP_