|
1 // Windows/ResourceString.cpp |
|
2 |
|
3 #include "StdAfx.h" |
|
4 |
|
5 #include "Windows/ResourceString.h" |
|
6 #ifndef _UNICODE |
|
7 #include "Common/StringConvert.h" |
|
8 #endif |
|
9 |
|
10 extern HINSTANCE g_hInstance; |
|
11 #ifndef _UNICODE |
|
12 extern bool g_IsNT; |
|
13 #endif |
|
14 |
|
15 namespace NWindows { |
|
16 |
|
17 CSysString MyLoadString(UINT resourceID) |
|
18 { |
|
19 CSysString s; |
|
20 int size = 256; |
|
21 int len; |
|
22 do |
|
23 { |
|
24 size += 256; |
|
25 len = ::LoadString(g_hInstance, resourceID, s.GetBuffer(size - 1), size); |
|
26 } |
|
27 while (size - len <= 1); |
|
28 s.ReleaseBuffer(); |
|
29 return s; |
|
30 } |
|
31 |
|
32 #ifndef _UNICODE |
|
33 UString MyLoadStringW(UINT resourceID) |
|
34 { |
|
35 if (g_IsNT) |
|
36 { |
|
37 UString s; |
|
38 int size = 256; |
|
39 int len; |
|
40 do |
|
41 { |
|
42 size += 256; |
|
43 len = ::LoadStringW(g_hInstance, resourceID, s.GetBuffer(size - 1), size); |
|
44 } |
|
45 while (size - len <= 1); |
|
46 s.ReleaseBuffer(); |
|
47 return s; |
|
48 } |
|
49 return GetUnicodeString(MyLoadString(resourceID)); |
|
50 } |
|
51 #endif |
|
52 |
|
53 } |