|
|
//+----------------------------------------------------------------------------
//
// 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).
|