00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "fsRASMgr.h"
00009
00010 #ifdef _DEBUG
00011 #undef THIS_FILE
00012 static char THIS_FILE[]=__FILE__;
00013 #define new DEBUG_NEW
00014 #endif
00015
00016 fsRASMgr::fsRASMgr()
00017 {
00018
00019 }
00020
00021 fsRASMgr::~fsRASMgr()
00022 {
00023
00024 }
00025
00026 BOOL fsRASMgr::EnumEntries()
00027 {
00028 LPRASENTRYNAME pREN;
00029 fsnew (pREN, RASENTRYNAME, 1);
00030 UINT nRet;
00031 ULONG cb = sizeof(RASENTRYNAME);
00032 ULONG cEntries;
00033
00034 pREN->dwSize = sizeof(RASENTRYNAME);
00035
00036 nRet = fsRasEnumEntries (NULL, NULL, pREN, &cb, &cEntries);
00037
00038 if (nRet)
00039 {
00040 delete [] pREN;
00041
00042 if (nRet == ERROR_BUFFER_TOO_SMALL)
00043 {
00044 BYTE *pb;
00045 fsnew (pb, BYTE, cb);
00046 pREN = (LPRASENTRYNAME) pb;
00047 pREN->dwSize = sizeof(RASENTRYNAME);
00048
00049
00050 nRet = fsRasEnumEntries (NULL, NULL, pREN, &cb, &cEntries);
00051
00052 if (nRet != ERROR_SUCCESS)
00053 {
00054 delete [] pREN;
00055 return FALSE;
00056 }
00057 }
00058 else
00059 {
00060 return FALSE;
00061 }
00062 }
00063
00064 m_vEntries.clear ();
00065
00066 for (UINT i=0; i < cEntries; i++)
00067 m_vEntries.add (pREN [i].szEntryName);
00068
00069 delete [] pREN;
00070
00071 return TRUE;
00072 }
00073
00074 UINT fsRASMgr::GetEntriesCount()
00075 {
00076 return m_vEntries.size ();
00077 }
00078
00079 LPCSTR fsRASMgr::GetEntry(UINT nEntry)
00080 {
00081 ASSERT (nEntry < (UINT)m_vEntries.size ());
00082
00083 return m_vEntries [nEntry];
00084 }
00085
00086 BOOL fsRASMgr::EnumConnections()
00087 {
00088 LPRASCONN pRC;
00089 fsnew (pRC, RASCONN, 1);
00090 DWORD sz = sizeof (RASCONN);
00091 DWORD cConns;
00092
00093 pRC->dwSize = sizeof (RASCONN);
00094
00095 DWORD dwRet = fsRasEnumConnections (pRC, &sz, &cConns);
00096
00097 if (dwRet != ERROR_SUCCESS)
00098 {
00099 delete [] pRC;
00100
00101 if (dwRet == ERROR_BUFFER_TOO_SMALL)
00102 {
00103 BYTE *pb;
00104 fsnew (pb, BYTE, sz);
00105 pRC = (LPRASCONN) pb;
00106 pRC->dwSize = sizeof (RASCONN);
00107 dwRet = fsRasEnumConnections (pRC, &sz, &cConns);
00108
00109 if (dwRet != ERROR_SUCCESS)
00110 {
00111 delete [] pRC;
00112 return FALSE;
00113 }
00114 }
00115 else
00116 {
00117 return FALSE;
00118 }
00119 }
00120
00121 m_vConns.clear ();
00122
00123 for (DWORD i = 0; i < cConns; i++)
00124 m_vConns.add (pRC [i]);
00125
00126 delete [] pRC;
00127
00128 return TRUE;
00129 }
00130
00131 int fsRASMgr::GetConnectionCount()
00132 {
00133 return m_vConns.size ();
00134 }
00135
00136 LPRASCONN fsRASMgr::GetConnection(int iIndex)
00137 {
00138 return &m_vConns [iIndex];
00139 }