|
|
//+---------------------------------------------------------------------------
//
// 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_
|