#include < SetupAPI.h > #include < cfgmgr32.h > #include < list > using namespace std; // cfgmgr32.h 在Microsoft Windows 2000 DDK 中. // 要用 CM_Get_DevNode_Status(...) 来查询状态. // --------------------------------------------------------------------------- typedef struct NetCardStruct ... { DWORD Id; // 网卡设备号 AnsiString Name; // 网卡名 bool Disabled; // 当前是否禁用 bool Changed; // 是否更改过 } TNetCardStruct; typedef TNetCardStruct * PNetCardStruct; typedef list < TNetCardStruct > TList; // --------------------------------------------------------------------------- // EnumNetCards 枚举出网卡 // --------------------------------------------------------------------------- void __fastcall EnumNetCards(TList * NetDeviceList) ... { AnsiString DevValue; PNetCardStruct NetCard; DWORD Status, Problem; LPTSTR Buffer = NULL; DWORD BufSize = 0; HDEVINFO hDevInfo = 0; if(INVALID_HANDLE_VALUE==(hDevInfo=SetupDiGetClassDevs(NULL,NULL,0,DIGCF_PRESENT ¦DIGCF_ALLCLASSES))) return