|
|
//+--------------------------------------------------------------------------- // // 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 <prsht.h> #include <ras.h> #include <hnetcfg.h>
#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;
//For GetCurrentIconEntryType() // #define ICON_CONNECTION_FOLDER 0x1000 //The connection folder icon type #define ICON_NCW_WIZARD 0x1001 // Icon of the New Connection Wizard #define ICON_HNET_WIZARD 0x1002 //Icon of the Home Networking Wizard
//+--------------------------------------------------------------------------- // 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 <packon.h> typedef struct _RASSHARECONN { DWORD dwSize; BOOL fIsLanConnection; union { GUID guid; RASENTRYNAMEW name; }; } RASSHARECONN, *LPRASSHARECONN; #include <packoff.h>
// 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_
|