1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/other-licenses/7zstub/src/Windows/ResourceString.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,53 @@ 1.4 +// Windows/ResourceString.cpp 1.5 + 1.6 +#include "StdAfx.h" 1.7 + 1.8 +#include "Windows/ResourceString.h" 1.9 +#ifndef _UNICODE 1.10 +#include "Common/StringConvert.h" 1.11 +#endif 1.12 + 1.13 +extern HINSTANCE g_hInstance; 1.14 +#ifndef _UNICODE 1.15 +extern bool g_IsNT; 1.16 +#endif 1.17 + 1.18 +namespace NWindows { 1.19 + 1.20 +CSysString MyLoadString(UINT resourceID) 1.21 +{ 1.22 + CSysString s; 1.23 + int size = 256; 1.24 + int len; 1.25 + do 1.26 + { 1.27 + size += 256; 1.28 + len = ::LoadString(g_hInstance, resourceID, s.GetBuffer(size - 1), size); 1.29 + } 1.30 + while (size - len <= 1); 1.31 + s.ReleaseBuffer(); 1.32 + return s; 1.33 +} 1.34 + 1.35 +#ifndef _UNICODE 1.36 +UString MyLoadStringW(UINT resourceID) 1.37 +{ 1.38 + if (g_IsNT) 1.39 + { 1.40 + UString s; 1.41 + int size = 256; 1.42 + int len; 1.43 + do 1.44 + { 1.45 + size += 256; 1.46 + len = ::LoadStringW(g_hInstance, resourceID, s.GetBuffer(size - 1), size); 1.47 + } 1.48 + while (size - len <= 1); 1.49 + s.ReleaseBuffer(); 1.50 + return s; 1.51 + } 1.52 + return GetUnicodeString(MyLoadString(resourceID)); 1.53 +} 1.54 +#endif 1.55 + 1.56 +}