2025-11-28 00:35:46 +09:00

76 lines
3.7 KiB
Plaintext

THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (C) 2002 Microsoft Corporation. All Rights Reserved.
Windows 2000 RAS Custom Dial DLL Sample
---------------------------------------
Abstract:
Windows 2000 implements the AutoDial feature of RAS in a slightly different
manner then previous versions of Windows did. Windows 2000 extends the RASENTRY
structure to provide a pointer to a custom dial dll that greatly expands the
possibilities of this function for applications running on Windows 2000. The
application now can provide it's own dialing and entry dialogs in addition to
performing the custom dial features all within the normal context of a RAS
phonebook entry. This feature set provides a much more expanded functionality
then what was present in the AutoDial feature of previous versions of Windows.
The unfortunate consequence of this expanded functionality is that Windows 2000
does not support the old AutoDial entry in the RASENTRY structure and thus
Windows 2000 applications that need to provide similar functionality need to
implement functionality that this sample illustrates. The trade-offs are a much
better designed set of functionality and customization available while retaining
the the familiar look-and-feel of the Windows 2000 Dial-up components.
Supported OS:
Windows 2000, Windows XP
Building:
Build the sample using the latest Platform SDK via the MAKEFILE included.
When using the RAS API in an application it must link with rasapi32.lib.
Also, since this sample uses extensions to RAS unique to Windows 2000,
the variable WINVER needs to be set to 0x0500 prior to the statements that
include the RAS function and structure declarations.
Installation/Uninstallation:
Once the DLL has been built, a new phone entry needs to be created that contains
a path to this .DLL. You will need to also buid
<Platform SDK Root>\Samples\NetDs\RAS\CustomScript\CustomEntry
sample. It will let you create a custom entry with a path to this .DLL.
Usage:
Once you create a phone entry and set the customDLL path to point to this DLL
you will be able to dial using that entry. Simply using this entry will cause
the DLL to be used when the underlying system calls RasDial(), RasDialDlg(),
RasHangup(), RasEntryDlg(), or RasDeleteEntry() on this entry. Each of these
calls are then forwarded through the customdial DLL that is associated with
that phonebook entry. One can use the Windows 2000 user interface or the
sample programs in the Platform SDK (in the
<Platform SDK Root>\Samples\NetDs\RAS folder) to see the effects the DLL has.
This DLL simply provides a basic and generic implementation that shows how
the DLL should be setup for custom dialing on an entry.
This sample has been tested for most common situations, however, it is not
designed to be deployed as-is. This is "sample" quality and as such simply
shows the techniques needed to provide an implementation in the most
common scenarios. As in any software development project, testing should
be done to catch all potential problems that could arise.
Debugging:
The Custom Dial DLL Sample uses the OutputDebugString() API to send
strings to an attached debugger. There are several programs that can capture
this information and display it while the DLL is in use. This can be a
rudimentary technique for debugging the DLL while it is being used. The
Platform SDK contains one such program capable of displaying this information
called DBMON.EXE. Simply run DBMON.EXE before using the DLL to see the DLL's
output.