419 lines
14 KiB
C++
419 lines
14 KiB
C++
|
/**************************************************************************
|
||
|
Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
|
||
|
|
||
|
MODULE: FILECFG.CPP
|
||
|
|
||
|
PURPOSE: Source module reading/writing PM config sets from a file
|
||
|
|
||
|
FUNCTIONS:
|
||
|
|
||
|
COMMENTS:
|
||
|
|
||
|
**************************************************************************/
|
||
|
|
||
|
/**************************************************************************
|
||
|
Include Files
|
||
|
**************************************************************************/
|
||
|
|
||
|
#include "pmcfg.h"
|
||
|
|
||
|
#define MAX_EXT 10
|
||
|
#define MAX_FILTER 256
|
||
|
|
||
|
TCHAR g_szPassportManager[] = "PassportManager";
|
||
|
|
||
|
/**************************************************************************
|
||
|
|
||
|
PMAdmin_GetFileName
|
||
|
|
||
|
*******************************************************************************/
|
||
|
BOOL PMAdmin_GetFileName
|
||
|
(
|
||
|
HWND hWnd,
|
||
|
BOOL fOpen,
|
||
|
LPTSTR lpFileName,
|
||
|
DWORD cbFileName
|
||
|
)
|
||
|
{
|
||
|
UINT TitleStringID, FilterID;
|
||
|
TCHAR szTitle[MAX_TITLE];
|
||
|
TCHAR szDefaultExtension[MAX_EXT];
|
||
|
TCHAR szFilter[MAX_FILTER];
|
||
|
LPTSTR lpFilterChar;
|
||
|
OPENFILENAME OpenFileName;
|
||
|
BOOL fSuccess;
|
||
|
|
||
|
//
|
||
|
// Load various strings that will be displayed and used by the common open
|
||
|
// or save dialog box. Note that if any of these fail, the error is not
|
||
|
// fatal-- the common dialog box may look odd, but will still work.
|
||
|
//
|
||
|
|
||
|
if (fOpen)
|
||
|
{
|
||
|
TitleStringID = IDS_OPENFILETITLE;
|
||
|
FilterID = IDS_PMOPENFILEFILTER;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
TitleStringID = IDS_SAVEFILETITLE;
|
||
|
FilterID = IDS_PMSAVEFILEFILTER;
|
||
|
}
|
||
|
|
||
|
LoadString(g_hInst, TitleStringID, szTitle, sizeof(szTitle));
|
||
|
LoadString(g_hInst, IDS_PMCONFIGDEFEXT, szDefaultExtension, sizeof(szDefaultExtension));
|
||
|
|
||
|
if (LoadString(g_hInst, FilterID, szFilter, sizeof(szFilter)))
|
||
|
{
|
||
|
//
|
||
|
// The common dialog library requires that the substrings of the
|
||
|
// filter string be separated by nulls, but we cannot load a string
|
||
|
// containing nulls. So we use some dummy character in the resource
|
||
|
// that we now convert to nulls.
|
||
|
//
|
||
|
for (lpFilterChar = szFilter;
|
||
|
*lpFilterChar != 0;
|
||
|
lpFilterChar = CharNext(lpFilterChar))
|
||
|
{
|
||
|
|
||
|
if (*lpFilterChar == TEXT('#'))
|
||
|
*lpFilterChar++ = 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ZeroMemory(&OpenFileName, sizeof(OPENFILENAME));
|
||
|
|
||
|
OpenFileName.lStructSize = sizeof(OPENFILENAME);
|
||
|
OpenFileName.hwndOwner = hWnd;
|
||
|
OpenFileName.hInstance = g_hInst;
|
||
|
OpenFileName.lpstrFilter = szFilter;
|
||
|
OpenFileName.lpstrFile = lpFileName;
|
||
|
OpenFileName.nMaxFile = cbFileName;
|
||
|
OpenFileName.lpstrTitle = szTitle;
|
||
|
OpenFileName.lpstrDefExt = szDefaultExtension;
|
||
|
if (fOpen)
|
||
|
{
|
||
|
OpenFileName.Flags = OFN_HIDEREADONLY | OFN_EXPLORER | OFN_FILEMUSTEXIST;
|
||
|
fSuccess = GetOpenFileName(&OpenFileName);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
OpenFileName.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |
|
||
|
OFN_EXPLORER | OFN_NOREADONLYRETURN | OFN_PATHMUSTEXIST;
|
||
|
fSuccess = GetSaveFileName(&OpenFileName);
|
||
|
}
|
||
|
return fSuccess;
|
||
|
}
|
||
|
|
||
|
/**************************************************************************
|
||
|
|
||
|
ReadFileConfigSet
|
||
|
|
||
|
Read the current passport manager config set from the specified file
|
||
|
|
||
|
**************************************************************************/
|
||
|
BOOL ReadFileConfigSet
|
||
|
(
|
||
|
LPPMSETTINGS lpPMConfig,
|
||
|
LPCTSTR lpszFileName
|
||
|
)
|
||
|
{
|
||
|
DWORD dwTemp;
|
||
|
TCHAR achTemp[INTERNET_MAX_URL_LENGTH];
|
||
|
|
||
|
// makesure the specified file exists.
|
||
|
if (!PathFileExists(lpszFileName))
|
||
|
{
|
||
|
ReportError(NULL, IDS_FILENOTFOUND);
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
// Read the Time Window Number
|
||
|
dwTemp = GetPrivateProfileInt(g_szPassportManager,
|
||
|
g_szTimeWindow,
|
||
|
-1,
|
||
|
lpszFileName);
|
||
|
if(dwTemp != -1)
|
||
|
lpPMConfig->dwTimeWindow = dwTemp;
|
||
|
|
||
|
// Read the value for Forced Signin
|
||
|
dwTemp = GetPrivateProfileInt(g_szPassportManager,
|
||
|
g_szForceSignIn,
|
||
|
-1,
|
||
|
lpszFileName);
|
||
|
if(dwTemp != -1)
|
||
|
lpPMConfig->dwForceSignIn = dwTemp;
|
||
|
|
||
|
// Read the default language ID
|
||
|
dwTemp = GetPrivateProfileInt(g_szPassportManager,
|
||
|
g_szLanguageID,
|
||
|
-1,
|
||
|
lpszFileName);
|
||
|
if(dwTemp != -1)
|
||
|
lpPMConfig->dwLanguageID = dwTemp;
|
||
|
|
||
|
// Get the co-branding template
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szCoBrandTemplate,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szCoBrandTemplate, achTemp);
|
||
|
|
||
|
|
||
|
// Get the SiteID
|
||
|
dwTemp = GetPrivateProfileInt(g_szPassportManager,
|
||
|
g_szSiteID,
|
||
|
-1,
|
||
|
lpszFileName);
|
||
|
if(dwTemp != -1)
|
||
|
lpPMConfig->dwSiteID = dwTemp;
|
||
|
|
||
|
// Get the return URL template
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szReturnURL,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szReturnURL, achTemp);
|
||
|
|
||
|
// Get the ticket cookie domain
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szTicketDomain,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szTicketDomain, achTemp);
|
||
|
|
||
|
// Get the ticket cookie path
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szTicketPath,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szTicketPath, achTemp);
|
||
|
|
||
|
// Get the profile cookie domain
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szProfileDomain,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szProfileDomain, achTemp);
|
||
|
|
||
|
// Get the profile cookie path
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szProfilePath,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szProfilePath, achTemp);
|
||
|
|
||
|
// Get the secure cookie domain
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szSecureDomain,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szSecureDomain, achTemp);
|
||
|
|
||
|
// Get the secure cookie path
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szSecurePath,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szSecurePath, achTemp);
|
||
|
|
||
|
// Get the DisasterURL
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szDisasterURL,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szDisasterURL, achTemp);
|
||
|
|
||
|
// Get Standalone mode setting
|
||
|
dwTemp = GetPrivateProfileInt(g_szPassportManager,
|
||
|
g_szStandAlone,
|
||
|
-1,
|
||
|
lpszFileName);
|
||
|
if(dwTemp != -1)
|
||
|
lpPMConfig->dwStandAlone = dwTemp;
|
||
|
|
||
|
// Get DisableCookies mode setting
|
||
|
dwTemp = GetPrivateProfileInt(g_szPassportManager,
|
||
|
g_szDisableCookies,
|
||
|
-1,
|
||
|
lpszFileName);
|
||
|
if(dwTemp != -1)
|
||
|
lpPMConfig->dwDisableCookies = dwTemp;
|
||
|
|
||
|
// Get the HostName
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szHostName,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szHostName, achTemp);
|
||
|
|
||
|
// Get the HostIP
|
||
|
GetPrivateProfileString(g_szPassportManager,
|
||
|
g_szHostIP,
|
||
|
(LPTSTR)TEXT("\xFF"),
|
||
|
achTemp,
|
||
|
sizeof(achTemp),
|
||
|
lpszFileName);
|
||
|
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
|
||
|
lstrcpy(lpPMConfig->szHostIP, achTemp);
|
||
|
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**************************************************************************
|
||
|
|
||
|
WriteFileConfigSet
|
||
|
|
||
|
Writes the current passport manager config set to the specified file
|
||
|
|
||
|
**************************************************************************/
|
||
|
BOOL WriteFileConfigSet
|
||
|
(
|
||
|
LPPMSETTINGS lpPMConfig,
|
||
|
LPCTSTR lpszFileName
|
||
|
)
|
||
|
{
|
||
|
TCHAR szTemp[MAX_PATH];
|
||
|
|
||
|
// Write the Time Window Number
|
||
|
wsprintf (szTemp, "%d", lpPMConfig->dwTimeWindow);
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szTimeWindow,
|
||
|
szTemp,
|
||
|
lpszFileName);
|
||
|
|
||
|
// write the value for Forced Signin
|
||
|
wsprintf (szTemp, "%d", lpPMConfig->dwForceSignIn);
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szForceSignIn,
|
||
|
szTemp,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Read the default language ID
|
||
|
wsprintf (szTemp, "%d", lpPMConfig->dwLanguageID);
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szLanguageID,
|
||
|
szTemp,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the co-branding template
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szCoBrandTemplate,
|
||
|
lpPMConfig->szCoBrandTemplate,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the SiteID
|
||
|
wsprintf (szTemp, "%d",lpPMConfig->dwSiteID);
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szSiteID,
|
||
|
szTemp,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the return URL template
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szReturnURL,
|
||
|
lpPMConfig->szReturnURL,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the ticket cookie domain
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szTicketDomain,
|
||
|
lpPMConfig->szTicketDomain,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the ticket cookie path
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szTicketPath,
|
||
|
lpPMConfig->szTicketPath,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the profile cookie domain
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szProfileDomain,
|
||
|
lpPMConfig->szProfileDomain,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the profile cookie path
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szProfilePath,
|
||
|
lpPMConfig->szProfilePath,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the secure cookie domain
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szSecureDomain,
|
||
|
lpPMConfig->szSecureDomain,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the secure profile cookie path
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szSecurePath,
|
||
|
lpPMConfig->szSecurePath,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the Disaster URL
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szDisasterURL,
|
||
|
lpPMConfig->szDisasterURL,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write Standalone mode setting
|
||
|
wsprintf (szTemp, "%d", lpPMConfig->dwStandAlone);
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szStandAlone,
|
||
|
szTemp,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write DisableCookies mode setting
|
||
|
wsprintf (szTemp, "%d", lpPMConfig->dwDisableCookies);
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szDisableCookies,
|
||
|
szTemp,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the Host Name
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szHostName,
|
||
|
lpPMConfig->szHostName,
|
||
|
lpszFileName);
|
||
|
|
||
|
// Write the Host IP
|
||
|
WritePrivateProfileString(g_szPassportManager,
|
||
|
g_szHostIP,
|
||
|
lpPMConfig->szHostIP,
|
||
|
lpszFileName);
|
||
|
|
||
|
return TRUE;
|
||
|
}
|