|
|
/*++
Copyright (c) 1991-1995 Microsoft Corporation
Module Name:
SmtpStub.C
Abstract:
These are the smtp service API RPC client stubs.
Author:
Johnson Apacible (johnsona) 17-Oct-1995 template used srvstub.c (Dan Lafferty)
Environment:
User Mode - Win32
Revision History:
--*/
//
// INCLUDES
//
#include <windows.h>
#include <apiutil.h>
#include <lmcons.h> // NET_API_STATUS
#include <inetinfo.h>
#include <smtpapi.h>
#include <smtpsvc.h>
NET_API_STATUS NET_API_FUNCTION SmtpQueryStatistics( IN LPWSTR servername, IN DWORD level, OUT LPBYTE *bufptr ) /*++
Routine Description:
This is the DLL entrypoint for SmtpGetStatistics
Arguments:
servername --A pointer to an ASCIIZ string containing the name of the remote server on which the function is to execute. A NULL pointer or string specifies the local machine.
level --Level of information required. 100, 101 and 102 are valid for all platforms. 302, 402, 403, 502 are valid for the appropriate platform.
bufptr --On return a pointer to the return information structure is returned in the address pointed to by bufptr.
Return Value:
--*/
{ NET_API_STATUS apiStatus;
*bufptr = NULL; // Must be NULL so RPC knows to fill it in.
RpcTryExcept
apiStatus = SmtprQueryStatistics( servername, level, (LPSTAT_INFO) bufptr);
RpcExcept( EXCEPTION_EXECUTE_HANDLER ) apiStatus = RpcExceptionCode( ); RpcEndExcept
return(apiStatus);
} // SmtpQueryStatistics
NET_API_STATUS NET_API_FUNCTION SmtpClearStatistics( IN LPWSTR Server OPTIONAL, IN DWORD dwInstance) { NET_API_STATUS status;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
status = SmtpClearStatistics( Server, dwInstance ); } RpcExcept (1) { status = RpcExceptionCode(); } RpcEndExcept
return (status);
} // SmtpClearStatistics
NET_API_STATUS NET_API_FUNCTION SmtpGetAdminInformation( IN LPWSTR pszServer OPTIONAL, OUT LPSMTP_CONFIG_INFO * ppConfig, IN DWORD dwInstance
) /*++
Routine Description:
This is the DLL entrypoint for SmtpGetAdminInformation
Arguments:
servername --A pointer to an ASCIIZ string containing the name of the remote server on which the function is to execute. A NULL pointer or string specifies the local machine.
ppConfig --Configuration information returned from the server.
Return Value:
--*/
{ NET_API_STATUS apiStatus;
*ppConfig = NULL; // Must be NULL so RPC knows to fill it in.
RpcTryExcept
apiStatus = SmtprGetAdminInformation( pszServer, (LPSMTP_CONFIG_INFO *) ppConfig, dwInstance);
RpcExcept( EXCEPTION_EXECUTE_HANDLER ) apiStatus = RpcExceptionCode( ); RpcEndExcept
return(apiStatus);
} // SmtpGetAdminInformation
NET_API_STATUS NET_API_FUNCTION SmtpSetAdminInformation( IN LPWSTR pszServer OPTIONAL, IN LPSMTP_CONFIG_INFO pConfig, IN DWORD dwInstance
) /*++
Routine Description:
This is the DLL entrypoint for SmtpSetAdminInformation
Arguments:
servername --A pointer to an ASCIIZ string containing the name of the remote server on which the function is to execute. A NULL pointer or string specifies the local machine.
pConfig --Configuration information to be set on the server.
Return Value:
--*/
{ NET_API_STATUS apiStatus;
RpcTryExcept
apiStatus = SmtprSetAdminInformation( pszServer, (LPSMTP_CONFIG_INFO) pConfig, dwInstance);
RpcExcept( EXCEPTION_EXECUTE_HANDLER ) apiStatus = RpcExceptionCode( ); RpcEndExcept
return(apiStatus);
} // SmtpSetAdminInformation
/*++
Routine Description:
SmtpGetConnectedUserList
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpGetConnectedUserList( IN LPWSTR wszServerName, OUT LPSMTP_CONN_USER_LIST *ppConnUserList, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
*ppConnUserList = NULL;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprGetConnectedUserList( wszServerName, ppConnUserList, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpDisconnectUser
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpDisconnectUser( IN LPWSTR wszServerName, IN DWORD dwUserId, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprDisconnectUser( wszServerName, dwUserId, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpCreateUser
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpCreateUser( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN LPWSTR wszForwardEmail, IN DWORD dwLocal, IN DWORD dwMailboxSize, IN DWORD dwMailboxMessageSize, IN LPWSTR wszVRoot, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprCreateUser( wszServerName, wszEmail, wszForwardEmail, dwLocal, dwMailboxSize, dwMailboxMessageSize, wszVRoot, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpDeleteUser
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpDeleteUser( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprDeleteUser( wszServerName, wszEmail, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpGetUserProps
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpGetUserProps( IN LPWSTR wszServerName, IN LPWSTR wszEmail, OUT LPSMTP_USER_PROPS *ppUserProps, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
*ppUserProps = NULL;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprGetUserProps( wszServerName, wszEmail, ppUserProps, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpSetUserProps
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpSetUserProps( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN LPSMTP_USER_PROPS pUserProps, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprSetUserProps( wszServerName, wszEmail, pUserProps, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpCreateDistList
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpCreateDistList( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN DWORD dwType, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprCreateDistList( wszServerName, wszEmail, dwType, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpDeleteDistList
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpDeleteDistList( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN DWORD dwInstance ) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprDeleteDistList( wszServerName, wszEmail, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpCreateDistListMember
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpCreateDistListMember( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN LPWSTR wszEmailMember, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprCreateDistListMember( wszServerName, wszEmail, wszEmailMember, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpDeleteDistListMember
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpDeleteDistListMember( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN LPWSTR wszEmailMember, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprDeleteDistListMember( wszServerName, wszEmail, wszEmailMember, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpGetNameList
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpGetNameList( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN DWORD dwType, IN DWORD dwRowsRequested, IN BOOL fForward, OUT LPSMTP_NAME_LIST *ppNameList, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
// Make sure RPC knows we want them to fill it in
*ppNameList = NULL;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprGetNameList( wszServerName, wszEmail, dwType, dwRowsRequested, fForward, ppNameList, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpGetNameListFromList
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpGetNameListFromList( IN LPWSTR wszServerName, IN LPWSTR wszEmailList, IN LPWSTR wszEmail, IN DWORD dwType, IN DWORD dwRowsRequested, IN BOOL fForward, OUT LPSMTP_NAME_LIST *ppNameList, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprGetNameListFromList( wszServerName, wszEmailList, wszEmail, dwType, dwRowsRequested, fForward, ppNameList, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpGetVRootSize
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpGetVRootSize( IN LPWSTR wszServerName, IN LPWSTR wszVRoot, IN LPDWORD pdwBytes, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprGetVRootSize( wszServerName, wszVRoot, pdwBytes, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
/*++
Routine Description:
SmtpBackupRoutingTable
Return Value:
API Status - NO_ERROR on success, WIN32 error code on failure.
--*/
NET_API_STATUS NET_API_FUNCTION SmtpBackupRoutingTable( IN LPWSTR wszServerName, IN LPWSTR wszPath, IN DWORD dwInstance
) { NET_API_STATUS apiStatus;
RpcTryExcept {
//
// Try RPC (local or remote) version of API.
//
apiStatus = SmtprBackupRoutingTable( wszServerName, wszPath, dwInstance ); } RpcExcept (1) { apiStatus = RpcExceptionCode(); } RpcEndExcept
return apiStatus; }
|