103 lines
6 KiB
C++
103 lines
6 KiB
C++
|
//+----------------------------------------------------------------------------
|
||
|
//
|
||
|
// File: raslink.cpp
|
||
|
//
|
||
|
// Module: CMDIAL32.DLL AND CMUTOA.DLL
|
||
|
//
|
||
|
// Synopsis: Declaration of the function name lists that are used for RAS
|
||
|
// linkage.
|
||
|
//
|
||
|
// Copyright (c) 1999 Microsoft Corporation
|
||
|
//
|
||
|
// Author: quintinb Created Header 08/19/99
|
||
|
//
|
||
|
//+----------------------------------------------------------------------------
|
||
|
|
||
|
// The RAS linkage system in CM is somewhat complicated. Unfortunately, RAS is different
|
||
|
// on pretty much every version of the OS we have ever shipped. There are APIs on the NT
|
||
|
// family that don't exist on the Win9x side and vice versa. In order for CM to dynamically
|
||
|
// allocate the correct functions without too much work, we have created the following
|
||
|
// arrays of function names used by LinkToRas. To further complicate matters, we have
|
||
|
// the ANSI versus Unicode problem. Thus you will notice that we have three sets of
|
||
|
// function lists. The c_ArrayOfRasFuncsA is actually used by Cmutoa.dll to load the
|
||
|
// real ANSI RAS functions that it calls after converting the parameters from Unicode to
|
||
|
// ANSI in its UA functions, which is why we have the c_ArrayOfRasFuncsUA list. These
|
||
|
// functions are the wrappers exported by cmutoa.dll that cmdial32.dll links to on Win9x
|
||
|
// instead of the W APIs located in c_ArrayOfRasFuncsW that it uses on NT. Please look
|
||
|
// at LinkToRas in cmdial\ras.cpp and InitCmRasUtoA in uapi\cmutoa.cpp. If you change
|
||
|
// anything here you will probably have to change the structs in raslink.h and probably
|
||
|
// even the code in the two functions above. Changer Beware!
|
||
|
|
||
|
#ifdef _CMUTOA_MODULE
|
||
|
static LPCSTR c_ArrayOfRasFuncsA[] = { "RasDeleteEntryA",
|
||
|
"RasGetEntryPropertiesA",
|
||
|
"RasSetEntryPropertiesA",
|
||
|
"RasGetEntryDialParamsA",
|
||
|
"RasSetEntryDialParamsA",
|
||
|
"RasEnumDevicesA",
|
||
|
"RasDialA",
|
||
|
"RasHangUpA",
|
||
|
"RasGetErrorStringA",
|
||
|
"RasGetConnectStatusA",
|
||
|
"RasSetSubEntryPropertiesA",
|
||
|
"RasDeleteSubEntryA",
|
||
|
NULL, //"RasSetCustomAuthDataA",
|
||
|
NULL, //"RasGetEapUserIdentityA",
|
||
|
NULL, //"RasFreeEapUserIdentityA",
|
||
|
NULL, //"RasInvokeEapUI",
|
||
|
NULL, //"RasGetCredentials",
|
||
|
NULL, //"RasSetCredentials",
|
||
|
NULL
|
||
|
};
|
||
|
|
||
|
#else
|
||
|
static LPCSTR c_ArrayOfRasFuncsUA[] = { "RasDeleteEntryUA",
|
||
|
"RasGetEntryPropertiesUA",
|
||
|
"RasSetEntryPropertiesUA",
|
||
|
"RasGetEntryDialParamsUA",
|
||
|
"RasSetEntryDialParamsUA",
|
||
|
"RasEnumDevicesUA",
|
||
|
"RasDialUA",
|
||
|
"RasHangUpUA",
|
||
|
"RasGetErrorStringUA",
|
||
|
"RasGetConnectStatusUA",
|
||
|
"RasSetSubEntryPropertiesUA",
|
||
|
"RasDeleteSubEntryUA",
|
||
|
NULL, //"RasSetCustomAuthDataUA",
|
||
|
NULL, //"RasGetEapUserIdentityUA",
|
||
|
NULL, //"RasFreeEapUserIdentityUA",
|
||
|
NULL, //"RasInvokeEapUI",
|
||
|
NULL, //"RasGetCredentials",
|
||
|
NULL, //"RasSetCredentials",
|
||
|
NULL
|
||
|
};
|
||
|
|
||
|
static LPCSTR c_ArrayOfRasFuncsW[] = { "RasDeleteEntryW",
|
||
|
"RasGetEntryPropertiesW",
|
||
|
"RasSetEntryPropertiesW",
|
||
|
"RasGetEntryDialParamsW",
|
||
|
"RasSetEntryDialParamsW",
|
||
|
"RasEnumDevicesW",
|
||
|
"RasDialW",
|
||
|
"RasHangUpW",
|
||
|
"RasGetErrorStringW",
|
||
|
"RasGetConnectStatusW",
|
||
|
"RasSetSubEntryPropertiesW",
|
||
|
"RasDeleteSubEntryW",
|
||
|
"RasSetCustomAuthDataW",
|
||
|
"RasGetEapUserIdentityW",
|
||
|
"RasFreeEapUserIdentityW",
|
||
|
"RasInvokeEapUI",
|
||
|
"RasGetCredentialsW",
|
||
|
"RasSetCredentialsW",
|
||
|
NULL
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
// Regarding DwDeleteSubEntry and RasDeleteSubEntry - NT5 shipped first
|
||
|
// with DwDeleteSubEntry, a private API. Millennium shipped next, by
|
||
|
// which time it looked like this was going to have to be made public,
|
||
|
// so it was prefixed with Ras. NT5.1 made the corresponding name change
|
||
|
// on the NT side, which we handle within LinkToRas (along with all other such
|
||
|
// cases).
|