[PING]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 12 Jan 2011 15:31:20 +0000 (15:31 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 12 Jan 2011 15:31:20 +0000 (15:31 +0000)
Implement small helper MyLoadString, using FindResource, LoadResource, LockResource and replacing LoadString, so we don't need to link to user32 anymore.

svn path=/trunk/; revision=50372

reactos/base/applications/network/ping/ping.c
reactos/base/applications/network/ping/ping.rbuild

index 58c4c53..40ebefb 100644 (file)
@@ -109,6 +109,24 @@ static VOID DisplayBuffer(
 }
 #endif /* !NDEBUG */
 
+LPWSTR
+MyLoadString(UINT uID)
+{
+    HRSRC hres;
+    HGLOBAL hResData;
+    LPWSTR pwsz;
+
+    hres = FindResourceW(NULL, MAKEINTRESOURCEW((LOWORD(uID) >> 4) + 1), RT_STRING);
+    if (!hres) return NULL;
+
+    hResData = LoadResource(NULL, hres);
+    if (!hResData) return NULL;
+
+    pwsz = LockResource(hResData);
+    if (!pwsz) return NULL;
+    return pwsz + 1;
+}
+
 void FormatOutput(UINT uID, ...)
 {
     va_list valist;
@@ -121,8 +139,8 @@ void FormatOutput(UINT uID, ...)
 
     va_start(valist, uID);
 
-    if(!LoadString(NULL, uID, (LPWSTR)&Format, 0))
-        return;
+    Format = MyLoadString(uID);
+    if (!Format) return;
 
     DataLength = FormatMessage(FORMAT_MESSAGE_FROM_STRING, Format, 0, 0, Buf,\
                   sizeof(Buf) / sizeof(WCHAR), &valist);
@@ -459,7 +477,7 @@ static VOID TimeToMsString(LPWSTR String, LARGE_INTEGER Time)
 
     _i64tow(LargeTime.QuadPart, Convstr, 10);
     wcscpy(String, Convstr);
-    LoadString(NULL, IDS_MS, (LPWSTR)&ms, 0);
+    ms = MyLoadString(IDS_MS);
     wcscat(String, ms);
 }
 
@@ -523,7 +541,7 @@ static BOOL DecodeResponse(PCHAR buffer, UINT size, PSOCKADDR_IN from)
         LPWSTR ms1;
 
         wcscpy(Sign, L"<");
-        LoadString(NULL, IDS_1MS, (LPWSTR)&ms1, 0);
+        ms1 = MyLoadString(IDS_1MS);
         wcscpy(Time, ms1);
     }
     else
index dee9207..72dacc1 100644 (file)
@@ -4,7 +4,6 @@
        <include base="ping">.</include>
        <define name="__USE_W32_SOCKETS" />
        <library>ws2_32</library>
-       <library>user32</library>
        <file>ping.c</file>
        <file>ping.rc</file>
 </module>