Windows: Build afs_shl_ext.dll with talocaleU.lib
authorJeffrey Altman <jaltman@your-file-system.com>
Sat, 4 Dec 2010 23:03:21 +0000 (18:03 -0500)
committerJeffrey Altman <jaltman@openafs.org>
Sun, 5 Dec 2010 19:48:52 +0000 (11:48 -0800)
Use the Unicode version of talocale to properly read
resource strings.

Change-Id: Ifb373a3b405922ecbdce4edb2ec86c31551d4dfa
Reviewed-on: http://gerrit.openafs.org/3442
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

src/WINNT/client_exp/NTMakefile
src/WINNT/client_exp/afs_shl_ext.cpp
src/WINNT/client_exp/msgs.cpp
src/WINNT/client_exp/shell_ext.cpp
src/WINNT/client_exp/shell_ext.h

index 216b139..ba62a6a 100644 (file)
@@ -69,7 +69,7 @@ DLLLIBS =\
        $(DESTDIR)\lib\libafsconf.lib \
        $(DESTDIR)\lib\libosi.lib \
         $(DESTDIR)\lib\afs\afsreg.lib  \
-       $(DESTDIR)\lib\afs\TaLocale.lib \
+       $(DESTDIR)\lib\afs\TaLocaleU.lib \
        $(DESTDIR)\lib\afs\afsutil.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
index 2d06444..88166df 100644 (file)
@@ -24,6 +24,7 @@ extern "C" {
 extern "C" {
 #include "WINNT\afsreg.h"
 }
+#include "WINNT\talocale.h"
 #define STRSAFE_NO_DEPRECATE
 #include <strsafe.h>
 
@@ -82,10 +83,8 @@ HINSTANCE g_hInstance;
 
 BOOL CAfsShlExt::InitInstance()
 {
-    extern EXPORTED HINSTANCE TaLocale_LoadCorrespondingModuleByName (HINSTANCE hInstance, LPSTR pszFilename, WORD wSearchPriority = MODULE_PRIORITY_BOOSTED);
-
     // Load our translated resources
-    TaLocale_LoadCorrespondingModuleByName (m_hInstance, "afs_shl_ext.dll");
+    TaLocale_LoadCorrespondingModuleByName (m_hInstance, TEXT("afs_shl_ext.dll"));
 
     // Register all OLE server (factories) as running.  This enables the
     //  OLE libraries to create objects from other applications.
@@ -218,7 +217,7 @@ STDAPI DllRegisterServer(void)
     if(VER_PLATFORM_WIN32_NT == osvi.dwPlatformId)
     {
         wsprintf(szSubKey, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"));
-        if ((lResult=DoRegCLSID(HKEY_LOCAL_MACHINE,szSubKey,_TEXT(STR_EXT_TITLE),szCLSID))!=NOERROR)
+        if ((lResult=DoRegCLSID(HKEY_LOCAL_MACHINE,szSubKey,STR_EXT_TITLE,szCLSID))!=NOERROR)
             return lResult;
     }
     wsprintf(szSubKey, TEXT("*\\shellex\\ContextMenuHandlers\\%s"),STR_EXT_TITLE);
@@ -294,7 +293,7 @@ STDAPI DllRegisterServer(void)
            TCHAR szData[MAX_PATH];
 
            //Create the value string.
-           lstrcpy(szData, _TEXT(STR_EXT_TITLE));
+           lstrcpy(szData, STR_EXT_TITLE);
 
            lResult = RegSetValueEx( hKey,
                                     szCLSID,
@@ -360,7 +359,7 @@ STDAPI DllRegisterServer(void)
     if(VER_PLATFORM_WIN32_NT == osvi.dwPlatformId)
     {
         wsprintf(szSubKey, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"));
-        if ((lResult=DoRegCLSID(HKEY_LOCAL_MACHINE,szSubKey,_TEXT(STR_EXT_TITLE2),szCLSID))!=NOERROR)
+        if ((lResult=DoRegCLSID(HKEY_LOCAL_MACHINE,szSubKey,STR_EXT_TITLE2,szCLSID))!=NOERROR)
             return lResult;
     }
 
index 5ec7109..2fa7d32 100644 (file)
@@ -20,6 +20,7 @@ extern "C" {
 #include <stdarg.h>
 
 #include "msgs.h"
+#include <WINNT\talocale.h>
 
 
 
@@ -404,9 +405,7 @@ CString GetMessageString(UINT Id, ...)
 
 void LoadString (CString &Str, UINT id)
 {
-    extern EXPORTED void GetString (LPSTR pszTarget, int idsSource, int cchMax = cchRESOURCE);
-
-    char szString[ 256 ];
+    TCHAR szString[ 256 ];
     GetString (szString, id);
 #ifdef UNICODE
     CString wstr(szString);
index 12c134d..9715ff2 100644 (file)
@@ -155,12 +155,12 @@ END_INTERFACE_MAP()
 
 #ifndef _WIN64
     // 32-bit
-IMPLEMENT_OLECREATE(CShellExt, STR_EXT_TITLE, 0xdc515c27, 0x6cac, 0x11d1, 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2)
-IMPLEMENT_OLECREATE(CShellExt2, STR_EXT_TITLE, 0xdc515c27, 0x6cac, 0x11d1, 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd3)
+IMPLEMENT_OLECREATE(CShellExt, _STR_EXT_TITLE, 0xdc515c27, 0x6cac, 0x11d1, 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2)
+IMPLEMENT_OLECREATE(CShellExt2, _STR_EXT_TITLE, 0xdc515c27, 0x6cac, 0x11d1, 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd3)
 #else
     // 64-bit
-IMPLEMENT_OLECREATE(CShellExt, STR_EXT_TITLE, 0x5f820ca1, 0x3dde, 0x11db, 0xb2, 0xce, 0x0, 0x15, 0x58, 0x09, 0x2d, 0xb5)
-IMPLEMENT_OLECREATE(CShellExt2, STR_EXT_TITLE, 0x5f820ca1, 0x3dde, 0x11db, 0xb2, 0xce, 0x0, 0x15, 0x58, 0x09, 0x2d, 0xb6)
+IMPLEMENT_OLECREATE(CShellExt, _STR_EXT_TITLE, 0x5f820ca1, 0x3dde, 0x11db, 0xb2, 0xce, 0x0, 0x15, 0x58, 0x09, 0x2d, 0xb5)
+IMPLEMENT_OLECREATE(CShellExt2, _STR_EXT_TITLE, 0x5f820ca1, 0x3dde, 0x11db, 0xb2, 0xce, 0x0, 0x15, 0x58, 0x09, 0x2d, 0xb6)
 #endif
 
 
index 46f21bb..9e0a9c7 100644 (file)
@@ -24,8 +24,10 @@ extern ULONG nICRefCount;    // IContextMenu ref count
 extern ULONG nTPRefCount;      // IQueryInfo ref count
 extern ULONG nXPRefCount;      // IPersistFile ref count
 
-#define STR_EXT_TITLE   "AfsClientContextMenu"
-#define STR_EXT_TITLE2  "AfsClientOverlayHandler"
+#define _STR_EXT_TITLE   "AfsClientContextMenu"
+#define _STR_EXT_TITLE2  "AfsClientOverlayHandler"
+#define STR_EXT_TITLE   TEXT(_STR_EXT_TITLE)
+#define STR_EXT_TITLE2  TEXT(_STR_EXT_TITLE2)
 #define STR_REG_PATH    TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellIconOverlayIdentifiers")
 
 /////////////////////////////////////////////////////////////////////////////