Dfü Verbindungen Auslesen

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:

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);
					}
	}
 
Zurück