--- /dev/null
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+STRINGTABLE DISCARDABLE
+BEGIN
+IDS_USAGE, "\nConfigure a WLAN adapter.\n\n\
+WLANCONF [-c SSID [-w WEP] [-a]] [-d] [-s]\n\n\
+\t-c SSID\t\tConnects to a supplied SSID,\n\
+\t-w WEP\t\tSpecifies a WEP key to use.\n\
+\t-a\t\tSpecifies the target network is ad-hoc\n\
+\t-d\t\tDisconnects from the current AP.\n\
+\t-s\t\tScans and displays a list of access points\n\
+\t\t\tin range.\n\n\
+Passing no parameters will print information about the current WLAN connection\n"
+/* === */
+IDS_NO_NETWORK, "No networks found in range\n"
+IDS_NO_WLAN_ADAPTER, "Unable to find a WLAN adapter on the system\n"
+IDS_SUCCESS, "The operation completed successfully.\n"
+IDS_WLAN_DISCONNECT, "\nWLAN disconnected\n"
+/* === */
+IDS_MSG_WEP_ENABLED, "WEP enabled: %s\n"
+IDS_MSG_NETWORK_MODE, "Network mode: %s\n"
+IDS_MSG_CURRENT_WIRELESS, "\nCurrent wireless configuration information:\n\n"
+IDS_MSG_ENCRYPTED, "Encrypted: %s\n"
+IDS_MSG_NETWORK_TYPE, "Network Type: %s\n"
+IDS_MSG_RSSI, "RSSI: %i dBm\n"
+IDS_MSG_SUPPORT_RATE, "Supported Rates (Mbps): "
+IDS_MSG_TRANSMISSION_POWER, "Transmission power: %d mW\n"
+IDS_MSG_ANTENNA_COUNT, "Antenna count: %d\n"
+IDS_MSG_TRANSMIT_ANTENNA, "Transmit antenna: %d\n"
+IDS_MSG_TRANSMIT_ANTENNA_ANY, "Transmit antenna: Any\n"
+IDS_MSG_RECEIVE_ANTENNA, "Receive antenna: %d\n"
+IDS_MSG_RECEIVE_ANTENNA_ANY, "Receive antenna: Any\n"
+IDS_MSG_FRAGMENT_THRESHOLD, "Fragmentation threshold: %d bytes\n"
+IDS_MSG_RTS_THRESHOLD, "RTS threshold: %d bytes\n"
+/* === */
+IDS_YES, "Yes"
+IDS_NO, "No"
+IDS_ADHOC, "Adhoc"
+IDS_INFRASTRUCTURE, "Infrastructure"
+END
#include <nuiouser.h>
#include <iphlpapi.h>
+#include "resource.h"
+
+#define COUNT_OF(a) (sizeof(a) / sizeof(a[0]))
+#define MAX_BUFFER_SIZE 5024
+
BOOL bScan = FALSE;
BOOL bConnect = FALSE;
-char* sSsid = NULL;
-char* sWepKey = NULL;
+char *sSsid = NULL;
+char *sWepKey = NULL;
BOOL bAdhoc = FALSE;
BOOL bDisconnect = FALSE;
+/* This takes strings from a resource stringtable and outputs it to
+the command prompt. */
+VOID PrintResourceString(INT resID, ...)
+{
+ TCHAR szMsgBuf[MAX_BUFFER_SIZE];
+ va_list arg_ptr;
+
+ va_start(arg_ptr, resID);
+ LoadString(GetModuleHandle(NULL), resID, szMsgBuf, MAX_BUFFER_SIZE);
+ _vtprintf(szMsgBuf, arg_ptr);
+ va_end(arg_ptr);
+}
+
DWORD DoFormatMessage(DWORD ErrorCode)
{
LPVOID lpMsgBuf;
if (!bSuccess)
return FALSE;
- _tprintf(_T("The operation completed successfully.\n"));
+ PrintResourceString(IDS_SUCCESS);
return TRUE;
}
PNDIS_802_11_SSID SsidInfo;
CHAR SsidBuffer[NDIS_802_11_LENGTH_SSID + 1];
DWORD i;
+ TCHAR szMsgBuf[128];
QueryOidSize = FIELD_OFFSET(NDISUIO_QUERY_OID, Data) + sizeof(NDIS_802_11_SSID);
QueryOid = HeapAlloc(GetProcessHeap(), 0, QueryOidSize);
NULL);
if (SsidInfo->SsidLength == 0 || !bSuccess)
{
- _tprintf(_T("\nWLAN disconnected\n"));
+ PrintResourceString(IDS_WLAN_DISCONNECT);
HeapFree(GetProcessHeap(), 0, QueryOid);
return TRUE;
}
else
{
- _tprintf(_T("\nCurrent wireless configuration information:\n\n"));
+ PrintResourceString(IDS_MSG_CURRENT_WIRELESS);
}
- _tprintf(_T("SSID: %s\n"), SsidBuffer);
+ _tprintf(_T("SSID: %hs\n"), SsidBuffer);
_tprintf(_T("BSSID: "));
for (i = 0; i < sizeof(NDIS_802_11_MAC_ADDRESS); i++)
return FALSE;
}
- _tprintf(_T("Network mode: %s\n"), (*(PUINT)QueryOid->Data == Ndis802_11IBSS) ? "Adhoc" : "Infrastructure");
+ LoadString(GetModuleHandle(NULL),
+ *(PUINT)QueryOid->Data == Ndis802_11IBSS ? IDS_ADHOC : IDS_INFRASTRUCTURE,
+ szMsgBuf,
+ COUNT_OF(szMsgBuf));
+ PrintResourceString(IDS_MSG_NETWORK_MODE, szMsgBuf);
QueryOid->Oid = OID_802_11_WEP_STATUS;
return FALSE;
}
- _tprintf(_T("WEP enabled: %s\n"), (*(PUINT)QueryOid->Data == Ndis802_11WEPEnabled) ? "Yes" : "No");
+ LoadString(GetModuleHandle(NULL),
+ *(PUINT)QueryOid->Data == Ndis802_11WEPEnabled ? IDS_YES : IDS_NO,
+ szMsgBuf,
+ COUNT_OF(szMsgBuf));
+ PrintResourceString(IDS_MSG_WEP_ENABLED, szMsgBuf);
- _tprintf("\n");
+ _tprintf(_T("\n"));
QueryOid->Oid = OID_802_11_RSSI;
bSuccess = DeviceIoControl(hAdapter,
if (bSuccess)
{
/* This OID is optional */
- _tprintf(_T("Transmission power: %d mW\n"), *(PUINT)QueryOid->Data);
+ PrintResourceString(IDS_MSG_TRANSMISSION_POWER, *(PUINT)QueryOid->Data);
}
_tprintf(_T("\n"));
if (bSuccess)
{
/* This OID is optional */
- _tprintf(_T("Antenna count: %d\n"), *(PUINT)QueryOid->Data);
+ PrintResourceString(IDS_MSG_ANTENNA_COUNT, *(PUINT)QueryOid->Data);
}
QueryOid->Oid = OID_802_11_TX_ANTENNA_SELECTED;
UINT TransmitAntenna = *(PUINT)QueryOid->Data;
if (TransmitAntenna != 0xFFFFFFFF)
- _tprintf(_T("Transmit antenna: %d\n"), TransmitAntenna);
+ PrintResourceString(IDS_MSG_TRANSMIT_ANTENNA, TransmitAntenna);
else
- _tprintf(_T("Transmit antenna: Any\n"));
+ PrintResourceString(IDS_MSG_TRANSMIT_ANTENNA_ANY);
}
QueryOid->Oid = OID_802_11_RX_ANTENNA_SELECTED;
UINT ReceiveAntenna = *(PUINT)QueryOid->Data;
if (ReceiveAntenna != 0xFFFFFFFF)
- _tprintf(_T("Receive antenna: %d\n"), ReceiveAntenna);
+ PrintResourceString(IDS_MSG_RECEIVE_ANTENNA, ReceiveAntenna);
else
- _tprintf(_T("Receive antenna: Any\n"));
+ PrintResourceString(IDS_MSG_RECEIVE_ANTENNA_ANY);
}
_tprintf(_T("\n"));
if (bSuccess)
{
/* This OID is optional */
- _tprintf(_T("Fragmentation threshold: %d bytes\n"), *(PUINT)QueryOid->Data);
+ PrintResourceString(IDS_MSG_FRAGMENT_THRESHOLD, *(PUINT)QueryOid->Data);
}
QueryOid->Oid = OID_802_11_RTS_THRESHOLD;
if (bSuccess)
{
/* This OID is optional */
- _tprintf(_T("RTS threshold: %d bytes\n"), *(PUINT)QueryOid->Data);
+ PrintResourceString(IDS_MSG_RTS_THRESHOLD, *(PUINT)QueryOid->Data);
}
HeapFree(GetProcessHeap(), 0, QueryOid);
if (!bSuccess)
return FALSE;
- _tprintf(_T("The operation completed successfully.\n"));
+ PrintResourceString(IDS_SUCCESS);
return TRUE;
}
DWORD QueryOidSize;
PNDIS_802_11_BSSID_LIST BssidList;
DWORD i, j;
+ TCHAR szMsgBuf[128];
SetOid.Oid = OID_802_11_BSSID_LIST_SCAN;
if (BssidList->NumberOfItems == 0)
{
- _tprintf(_T("No networks found in range\n"));
+ PrintResourceString(IDS_NO_NETWORK);
}
else
{
RtlCopyMemory(SsidBuffer, Ssid->Ssid, Ssid->SsidLength);
SsidBuffer[Ssid->SsidLength] = 0;
- _tprintf(_T("\n"));
-
- _tprintf(_T("SSID: %s\n"), SsidBuffer);
+ _tprintf(_T("\nSSID: %hs\n"), SsidBuffer);
_tprintf(_T("BSSID: "));
for (j = 0; j < sizeof(NDIS_802_11_MAC_ADDRESS); j++)
}
_tprintf(_T("\n"));
- _tprintf(_T("Encrypted: %s\n"
- "Network Type: %s\n"
- "RSSI: %i dBm\n"
- "Supported Rates (Mbps): "),
- BssidInfo->Privacy == 0 ? "No" : "Yes",
- NetworkType == Ndis802_11IBSS ? "Adhoc" : "Infrastructure",
- (int)Rssi);
+ LoadString(GetModuleHandle(NULL),
+ BssidInfo->Privacy == 0 ? IDS_NO : IDS_YES,
+ szMsgBuf,
+ COUNT_OF(szMsgBuf));
+ PrintResourceString(IDS_MSG_ENCRYPTED, szMsgBuf);
+ LoadString(GetModuleHandle(NULL),
+ NetworkType == Ndis802_11IBSS ? IDS_ADHOC : IDS_INFRASTRUCTURE,
+ szMsgBuf,
+ COUNT_OF(szMsgBuf));
+ PrintResourceString(IDS_MSG_NETWORK_TYPE, szMsgBuf);
+ PrintResourceString(IDS_MSG_RSSI, (int)Rssi);
+ PrintResourceString(IDS_MSG_SUPPORT_RATE);
for (j = 0; j < NDIS_802_11_LENGTH_RATES; j++)
{
return bSuccess;
}
-VOID Usage()
-{
- _tprintf(_T("\nConfigures a WLAN adapter.\n\n"
- "WLANCONF [-c SSID [-w WEP] [-a]] [-d] [-s]\n\n"
- " -c SSID Connects to a supplied SSID.\n"
- " -w WEP Specifies a WEP key to use.\n"
- " -a Specifies the target network is ad-hoc\n"
- " -d Disconnects from the current AP.\n"
- " -s Scans and displays a list of access points in range.\n\n"
- " Passing no parameters will print information about the current WLAN connection\n"));
-}
-
-
-BOOL ParseCmdline(int argc, char* argv[])
+BOOL ParseCmdline(int argc, char *argv[])
{
INT i;
case 'c':
if (i == argc - 1)
{
- Usage();
+ PrintResourceString(IDS_USAGE);
return FALSE;
}
bConnect = TRUE;
case 'w':
if (i == argc - 1)
{
- Usage();
+ PrintResourceString(IDS_USAGE);
return FALSE;
}
sWepKey = argv[++i];
bAdhoc = TRUE;
break;
default :
- Usage();
+ PrintResourceString(IDS_USAGE);
return FALSE;
}
}
else
{
- Usage();
+ PrintResourceString(IDS_USAGE);
return FALSE;
}
}
return TRUE;
}
-int main(int argc, char* argv[])
+int main(int argc, char *argv[])
{
HANDLE hAdapter;
IP_ADAPTER_INDEX_MAP IpInfo;
if (!OpenWlanAdapter(&hAdapter, &IpInfo))
{
- _tprintf(_T("Unable to find a WLAN adapter on the system\n"));
+ PrintResourceString(IDS_NO_WLAN_ADAPTER);
return -1;
}