Panda Cabrio
Grünschnabel
Moin!
Ich wollte wie in der MSDN beschrieben mit Hilfe der Funktion RasEnumEntries die vorhandenen Dfü Verbindungen aus einer Telefonbuchdatei auslesen!
Es funktioniert auch alles ganz Super solange das Telefonbuch nur einen Eintrag enthält!
Ist mehr als ein Eintrag vorhanden meldet die Funktion den Fehler Falsche Strukturgröße
Weiß jemand was ich Falsch mache?
Hier mein Quellcode:
Ich wollte wie in der MSDN beschrieben mit Hilfe der Funktion RasEnumEntries die vorhandenen Dfü Verbindungen aus einer Telefonbuchdatei auslesen!
Es funktioniert auch alles ganz Super solange das Telefonbuch nur einen Eintrag enthält!
Ist mehr als ein Eintrag vorhanden meldet die Funktion den Fehler Falsche Strukturgröße
Weiß jemand was ich Falsch mache?
Hier mein Quellcode:
Code:
LPRASENTRYNAME lpRasEntry;
DWORD cbBuf;
DWORD cEntry;
DWORD dwRet;
UINT ndx;
char szMessage[256];
m_CBox_Provider.ResetContent();
cbBuf = sizeof(RASENTRYNAME);
lpRasEntry = (LPRASENTRYNAME) new char[cbBuf];
if (NULL == lpRasEntry) return FALSE;
ZeroMemory(lpRasEntry, cbBuf);
lpRasEntry->dwSize = cbBuf;
CString strPhonebook = "d:\\test.pbk";
dwRet = RasEnumEntries(NULL, strPhonebook, lpRasEntry, &cbBuf, &cEntry);
if (ERROR_BUFFER_TOO_SMALL == dwRet)
{
delete lpRasEntry;
lpRasEntry = NULL;
lpRasEntry = (LPRASENTRYNAME) new char[cbBuf];
if (NULL != lpRasEntry)
{
ZeroMemory(lpRasEntry, cbBuf);
lpRasEntry->dwSize = cbBuf;
dwRet = RasEnumEntries(NULL, NULL, lpRasEntry, &cbBuf, &cEntry);
}
else
dwRet = ERROR_NOT_ENOUGH_MEMORY;
}
if (0 != dwRet) // other error
{
if (0 != RasGetErrorString((UINT)dwRet, szMessage, 256))
{
CString sss; sss.LoadString(IDS_RASCS_25);
wsprintf((LPSTR)szMessage, sss);
}
m_Status.SetWindowText(szMessage);
UpdateData(FALSE);
}
if (0 == cEntry)
{
delete lpRasEntry ;
return FALSE;
}
if (0 == dwRet) // No errors
{
for (ndx = 0; ndx < cEntry; ndx++)
{
m_CBox_Provider.InsertString(ndx, lpRasEntry[ndx].szEntryName);
}
}