Files
Work/proto/source/Rasiface.hpp
2024-08-07 09:16:27 -04:00

59 lines
1.3 KiB
C++

#ifndef _NNTP_RASINTERFACE_HPP_
#define _NNTP_RASINTERFACE_HPP_
#ifndef _RASAPI_RASAPI_HPP_
#include <rasapi/rasapi.hpp>
#endif
#ifndef _RASAPI_REMOTEACCESSSERVER_HPP_
#include <rasapi/rassrv.hpp>
#endif
#ifndef _RASAPI_RASDIALPARAMS_HPP_
#include <rasapi/dialparm.hpp>
#endif
class RasInterface
{
public:
RasInterface(void);
virtual ~RasInterface();
WORD login(const String &userName,const String &password,const String &entryName);
WORD enumEntries(Block<RasEntryName> &rasEntryNames);
WORD isOkay(void)const;
private:
WORD locateEntry(Block<RasEntryName> &rasEntryNames,RasEntryName &rasEntryName);
RemoteAccessServer mRemoteServerInterface;
RasConnectionStatus mRasConnectionStatus;
RasConnectionState mRasConnectionState;
HRASCONN mhRasConn;
};
inline
RasInterface::RasInterface(void)
: mhRasConn(0)
{
}
inline
RasInterface::~RasInterface()
{
if(!mhRasConn)return;
mRemoteServerInterface.rasHangUp(mhRasConn);
mhRasConn=0;
}
inline
WORD RasInterface::enumEntries(Block<RasEntryName> &rasEntryNames)
{
rasEntryNames.remove();
if(!mRemoteServerInterface.isOkay())return FALSE;
mRemoteServerInterface.rasEnumEntries(rasEntryNames);
return (rasEntryNames.size()?TRUE:FALSE);
}
inline
WORD RasInterface::isOkay(void)const
{
return mRemoteServerInterface.isOkay();
}
#endif