rasapi32.dll,目標機無需預裝 RAS 組件Initialize() → GetEntryCount()/GetEntry() → Dial()/HangUp()class CRAS {
public:
BOOL Initialize(); // 載入 RAS DLL,傳回成功與否
BOOL GetEntryCount(); // 取得電話簿項目數
CString GetEntry(ULONG index); // 取得指定項目名稱(填充 ComboBox 用)
BOOL Dial(CString entry, CString user, CString pwd,
CRASCallback callback, CString domain);
BOOL HangUp();
};
typedef void (CALLBACK* CRASCallback)(UINT msg, LPARAM param);
// msg: 狀態變更訊息(如 RASCS_Connected, RASCS_Disconnected 等)
CRAS ras;
if (!ras.Initialize()) {
AfxMessageBox(L"RAS 未安裝或初始化失敗");
return;
}
int count = ras.GetEntryCount();
for (int i = 0; i < count; ++i)
m_combo.AddString(ras.GetEntry(i));
// 使用者選擇項目後
ras.Dial(entryName, userName, password, MyCallback, domain);
// ...
ras.HangUp();
單一 CRAS.cpp/h 加入專案即可,無額外依賴,適合需內建撥號功能的輕量級應用程式。