Article: Q160321
Product(s): Microsoft C Compiler
Version(s): WINNT:4.2;
Operating System(s):
Keyword(s): kbnetwork kbdocerr
Last Modified: 31-JUL-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual C++, 32-bit Enterprise Edition, version 4.2
- Microsoft Visual C++, 32-bit Professional Edition, version 4.2
-------------------------------------------------------------------------------
SUMMARY
=======
On the Microsoft Developers Network (MSDN) CD-ROM, the four user callback
function entry points in the RASAdmin.dll (supplied by the user) in Windows NT
4.0 must have _stdcall in their function declarations. The declarations in these
files should include CALLBACK or WINAPI or __stdcall as is specified for other
callback functions. Look at the page for EnumICMProfilesProc for an example of a
callback function declaration. The documentation errors are located in the
following files:
MSDN/Products/Win32SDK/Win32 Programmer's Reference/Reference/
Functions/RASGetIpAddressForUser
MSDN/Products/Win32SDK/Win32 Programmer's Reference/Reference/
Functions/RASReleaseIpAddress
MSDN/Products/Win32SDK/Win32 Programmer's Reference/Reference/
Functions/RASAcceptNewConnection
MSDN/Products/Win32SDK/Win32 Programmer's Reference/Reference/
Functions/RASHangupConnection
MORE INFORMATION
================
Third-party RAS server administration DLLs have four entry points declared in
the WIN32SDK programmer's reference. The declarations do not include the
_stdcall calling sequence specifier. If you build your DLL using Visual C++ 4.x
defaults, your DLL does not work correctly. You can either set your project to
use __stdcall as the default by choosing:
"Build\Settings\C/C++:Category Code Generation:Calling Convention __stdcall"
(without the quotation marks)
-or-
you can change your code and Rassapi.h to use the following function
declarations:
DWORD APIENTRY RasAdminGetIpAddressForUser(
WCHAR *lpszUserName, // pointer to the name of the remote user
WCHAR *lpszPortName, // pointer to the name of the port
IPADDR *pipAddress, // pointer to the IP address
BOOL *bNotifyRelease // indicates whether RAS should call
RasAdminReleaseIpAddress
);
VOID APIENTRY RasAdminReleaseIpAddress(
WCHAR *lpszUserName, // pointer to the name of the remote user
WCHAR *lpszPortName, // pointer to the name of the port
IPADDR *pipAddress // pointer to the IP address
);
BOOL APIENTRY RasAdminAcceptNewConnection(
RAS_PORT_1 *pRasPort1, // pointer to connection information
RAS_PORT_STATISTICS *pRasStats, // pointer to port statistics
RAS_PARAMETERS *pRasParams // pointer to an array of parameters
);
VOID APIENTRY RasAdminConnectionHangupNotification(
RAS_PORT_1 *pRasPort1, // pointer to connection information
RAS_PORT_STATISTICS *pRasStats, // pointer to port statistics
RAS_PARAMETERS *pRasParams // pointer to an array of parameters
);
NOTE: The remaining RasAdmin... functions are correctly declared in rassapi.h
using APIENTRY.
Additional query words: MSDN
======================================================================
Keywords : kbnetwork kbdocerr
Technology : kbVCsearch kbAudDeveloper kbVC420 kbVC32bitSearch
Version : WINNT:4.2;
=============================================================================