|
|
#include "precomp.h"
static BOOL importLDAPBitmapHelper(LPCTSTR pcszIns, LPCTSTR pcszWorkDir, BOOL fImport); static BOOL importOEInfoHelper(LPCTSTR pcszIns, LPCTSTR pcszWorkDir, BOOL fImport); static BOOL encodeSignatureHelper(LPCTSTR pcszFrom, LPTSTR pszTo, BOOL fEncode); static void decodeSig(LPCTSTR pcszFrom, LPTSTR pszTo); static void encodeSig(LPCTSTR pcszFrom, LPTSTR pszTo);
BOOL WINAPI ImportLDAPBitmapA(LPCSTR pcszIns, LPCSTR pcszWorkDir, BOOL fImport) { USES_CONVERSION;
return importLDAPBitmapHelper(A2CT(pcszIns), A2CT(pcszWorkDir), fImport); }
BOOL WINAPI ImportLDAPBitmapW(LPCWSTR pcwszIns, LPCWSTR pcwszWorkDir, BOOL fImport) { USES_CONVERSION;
return importLDAPBitmapHelper(W2CT(pcwszIns), W2CT(pcwszWorkDir), fImport); }
BOOL WINAPI ImportOEInfoA(LPCSTR pcszIns, LPCSTR pcszWorkDir, BOOL fImport) { USES_CONVERSION;
return importOEInfoHelper(A2CT(pcszIns), A2CT(pcszWorkDir), fImport); }
BOOL WINAPI ImportOEInfoW(LPCWSTR pcwszIns, LPCWSTR pcwszWorkDir, BOOL fImport) { USES_CONVERSION;
return importOEInfoHelper(W2CT(pcwszIns), W2CT(pcwszWorkDir), fImport); }
BOOL WINAPI EncodeSignatureA(LPCSTR pcszFrom, LPSTR pszTo, BOOL fEncode) { LPTSTR pszBuf = (LPTSTR)LocalAlloc(LPTR, 1024 * sizeof(TCHAR)); BOOL fRet = FALSE;
USES_CONVERSION;
if (pszBuf != NULL) { fRet = encodeSignatureHelper(A2CT(pcszFrom), pszBuf, fEncode); T2Abux(pszBuf, pszTo); }
return fRet; }
BOOL WINAPI EncodeSignatureW(LPCWSTR pcwszFrom, LPWSTR pwszTo, BOOL fEncode) { LPTSTR pszBuf = (LPTSTR)LocalAlloc(LPTR, 1024 * sizeof(TCHAR)); BOOL fRet = FALSE;
USES_CONVERSION;
if (pszBuf != NULL) { fRet = encodeSignatureHelper(W2CT(pcwszFrom), pszBuf, fEncode); T2Wbux(pszBuf, pwszTo); }
LocalFree(pszBuf); //bug 14001, forgot to free temp buffer
return fRet; }
static BOOL importLDAPBitmapHelper(LPCTSTR pcszIns, LPCTSTR pcszWorkDir, BOOL fImport) { TCHAR szLDAPBitmap[MAX_PATH]; BOOL fSuccess = TRUE;
if (pcszIns == NULL || pcszWorkDir == NULL) return FALSE;
if (fImport) PathRemovePath(pcszWorkDir);
GetPrivateProfileString(IS_LDAP, IK_BITMAP, TEXT(""), szLDAPBitmap, countof(szLDAPBitmap), pcszIns); if (szLDAPBitmap[0] != TEXT('\0')) { if (fImport) { ASSERT(PathFileExists(szLDAPBitmap)); fSuccess = CopyFileToDir(szLDAPBitmap, pcszWorkDir); } else { DeleteFileInDir(szLDAPBitmap, pcszWorkDir); WritePrivateProfileString(IS_LDAP, IK_BITMAP, NULL, pcszIns); } }
return fSuccess; }
static BOOL importOEInfoHelper(LPCTSTR pcszIns, LPCTSTR pcszWorkDir, BOOL fImport) { TCHAR szInfopane[INTERNET_MAX_URL_LENGTH], szInfopaneBmp[MAX_PATH], szHTMLPath[MAX_PATH]; BOOL fSuccess;
if (pcszIns == NULL || pcszWorkDir == NULL) return FALSE;
if (fImport) PathRemovePath(pcszWorkDir);
fSuccess = TRUE;
GetPrivateProfileString(IS_INTERNETMAIL, IK_INFOPANE, TEXT(""), szInfopane, countof(szInfopane), pcszIns); if (szInfopane[0] != TEXT('\0') && !PathIsURL(szInfopane)) { if (fImport) { ASSERT(PathFileExists(szInfopane)); if (CopyFileToDir(szInfopane, pcszWorkDir)) CopyHtmlImgs(szInfopane, pcszWorkDir, NULL, NULL); else fSuccess = FALSE; } else { TCHAR szTemp[MAX_PATH];
PathCombine(szTemp, pcszWorkDir, PathFindFileName(szInfopane)); if (PathFileExists(szTemp)) { DeleteHtmlImgs(szTemp, pcszWorkDir, NULL, NULL); DeleteFileInDir(szTemp, pcszWorkDir); } } }
GetPrivateProfileString(IS_INTERNETMAIL, IK_INFOPANEBMP, TEXT(""), szInfopaneBmp, countof(szInfopaneBmp), pcszIns); if (szInfopaneBmp[0] != TEXT('\0')) { if (fImport) { ASSERT(PathFileExists(szInfopaneBmp)); fSuccess = CopyFileToDir(szInfopaneBmp, pcszWorkDir) && fSuccess; } else DeleteFileInDir(szInfopaneBmp, pcszWorkDir); }
GetPrivateProfileString(IS_INTERNETMAIL, IK_WELCOMEMESSAGE, TEXT(""), szHTMLPath, countof(szHTMLPath), pcszIns); if (szHTMLPath[0] != TEXT('\0')) { if (fImport) { ASSERT(PathFileExists(szHTMLPath)); if (CopyFileToDir(szHTMLPath, pcszWorkDir)) CopyHtmlImgs(szHTMLPath, pcszWorkDir, NULL, NULL); else fSuccess = FALSE; } else { TCHAR szTemp[MAX_PATH];
PathCombine(szTemp, pcszWorkDir, PathFindFileName(szHTMLPath)); if (PathFileExists(szTemp)) { DeleteHtmlImgs(szTemp, pcszWorkDir, NULL, NULL); DeleteFileInDir(szTemp, pcszWorkDir); } } }
if (!fImport) { WritePrivateProfileString(IS_INTERNETMAIL, IK_INFOPANE, NULL, pcszIns); WritePrivateProfileString(IS_INTERNETMAIL, IK_INFOPANEBMP, NULL, pcszIns); WritePrivateProfileString(IS_INTERNETMAIL, IK_WELCOMEMESSAGE, NULL, pcszIns); }
return fSuccess; }
static BOOL encodeSignatureHelper(LPCTSTR pcszFrom, LPTSTR pszTo, BOOL fEncode) { if (fEncode) encodeSig(pcszFrom, pszTo); else decodeSig(pcszFrom, pszTo);
return TRUE; }
static void decodeSig(LPCTSTR pszFrom, LPTSTR pszTo) { if (pszFrom == NULL || pszTo == NULL) return;
while (*pszFrom != TEXT('\0')) #ifndef UNICODE
if (IsDBCSLeadByte(*pszFrom)) { *pszTo++ = *pszFrom++; *pszTo++ = *pszFrom++; } else #endif
if (*pszFrom != TEXT('\\')) *(pszTo++) = *(pszFrom++); else { pszFrom++; if (*pszFrom == TEXT('n')) { *pszTo++ = (TCHAR)0x0D; *pszTo++ = (TCHAR)0x0A; pszFrom++; } else if (*pszFrom == TEXT('\\')) { *pszTo++ = TEXT('\\'); pszFrom++; } else *pszTo++ = *pszFrom++; }
*pszTo = TEXT('\0'); }
static void encodeSig(LPCTSTR pszFrom, LPTSTR pszTo) { if (pszFrom == NULL || pszTo == NULL) return;
while (*pszFrom != TEXT('\0')) #ifndef UNICODE
if (IsDBCSLeadByte(*pszFrom)) { *pszTo++ = *pszFrom++; *pszTo++ = *pszFrom++; } else #endif
if ((*pszFrom == TEXT('\r')) || (*pszFrom == TEXT('\n'))) { *pszTo++ = TEXT('\\'); *pszTo++ = TEXT('n'); pszFrom++;
if ((*pszFrom == TEXT('\r')) || (*pszFrom == TEXT('\n'))) pszFrom++; } else { if (*pszFrom == TEXT('\\')) *pszTo++ = TEXT('\\');
*pszTo++ = *pszFrom++; }
*pszTo = TEXT('\0'); }
|