📄 createwiz.cpp
字号:
strcat(szSetupIni, "setup.ini");
wsprintf(szVersion, "%s %s", PGPPRODUCTNAME, PGPVERSIONSTRING);
WritePrivateProfileString("Startup", "AppName",
szVersion, szSetupIni);
WritePrivateProfileString("Startup", "FreeDiskSpace",
"181", szSetupIni);
// Modify the setup.ini file to let the installer know if it
// needs to ask for the license number or not
if (Config.szLicenseNum != NULL)
strcpy(szLicNum, "1");
else
strcpy(szLicNum, "0");
WritePrivateProfileString("Startup", "CompanyName",
Config.szLicenseNum, szSetupIni);
// Write the installation options if applicable
if (Config.bPreselectInstall)
{
char szPrograms[3];
char szCmdLine[3];
char szNet[3];
char szDisk[3];
char szEudora[3];
char szExchangeOutlook[3];
char szOutlookExpress[3];
char szManual[3];
char szUninstallOld[3];
WritePrivateProfileString("Startup", "EasyInstall", "1",
szSetupIni);
WritePrivateProfileString("Startup", "InstallDir",
Config.szUserInstallDir, szSetupIni);
wsprintf(szPrograms, "%d", Config.bInstallPrograms);
wsprintf(szCmdLine, "%d", Config.bInstallCmdLine);
wsprintf(szNet, "%d", Config.bInstallNet);
wsprintf(szDisk, "%d", Config.bInstallDisk);
wsprintf(szEudora, "%d", Config.bInstallEudora);
wsprintf(szExchangeOutlook, "%d", Config.bInstallOutlook);
wsprintf(szOutlookExpress, "%d", Config.bInstallOutExpress);
wsprintf(szManual, "%d", Config.bInstallManual);
wsprintf(szUninstallOld, "%d", Config.bUninstallOld);
WritePrivateProfileString("Startup", "ProgramFiles",
szPrograms, szSetupIni);
WritePrivateProfileString("Startup", "NTcmdln",
szCmdLine, szSetupIni);
WritePrivateProfileString("Startup", "PGPnet",
szNet, szSetupIni);
WritePrivateProfileString("Startup", "PGPdisk",
szDisk, szSetupIni);
WritePrivateProfileString("Startup", "EudoraPlugin",
szEudora, szSetupIni);
WritePrivateProfileString("Startup", "ExchangeOutlookPlugin",
szExchangeOutlook, szSetupIni);
WritePrivateProfileString("Startup", "OutlookExpressPlugin",
szOutlookExpress, szSetupIni);
WritePrivateProfileString("Startup", "UserManual",
szManual, szSetupIni);
WritePrivateProfileString("Startup", "UninstallOld",
szUninstallOld, szSetupIni);
}
else
WritePrivateProfileString("Startup", "EasyInstall", "0",
szSetupIni);
// On windows 95, we must flush the ini file by using three
// nulls -wjb
WritePrivateProfileString(NULL,NULL,NULL,
szSetupIni);
hFile = CreateFile(szSetupIni, GENERIC_READ, 0, NULL, OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
nSetupBufferSize = GetFileSize(hFile, NULL);
szSetupBuffer = (char *) PGPNewData(Config.memoryMgr,
nSetupBufferSize,
kPGPMemoryMgrFlags_Clear);
ReadFile(hFile, szSetupBuffer, nSetupBufferSize,
&dwBytesRead, NULL);
CloseHandle(hFile);
DeleteFile(szSetupIni);
}
if (CopyFile(Config.szAdminInstaller, Config.szClientInstaller,
FALSE))
{
if (SetFileAttributes(Config.szClientInstaller,
FILE_ATTRIBUTE_NORMAL))
{
AddPrefsToSEA(Config.szClientInstaller, szAdminBuffer,
nAdminBufferSize, szClientBuffer, nClientBufferSize,
szNetBuffer, nNetBufferSize, szSetupBuffer,
nSetupBufferSize);
// We're done!
DestroyWindow(hwndDlg);
LoadString(g_hInstance, IDS_DONE, szMsg, 254);
LoadString(g_hInstance, IDS_TITLE, szTitle, 254);
MessageBox(hwndMain, szMsg, szTitle, MB_ICONINFORMATION);
}
else
{
// Setting attributes failed
DestroyWindow(hwndDlg);
LoadString(g_hInstance, IDS_FAILED, szMsg, 254);
LoadString(g_hInstance, IDS_TITLE, szTitle, 254);
MessageBox(hwndMain, szMsg, szTitle, MB_ICONEXCLAMATION);
}
}
else
{
// Copying file failed
DestroyWindow(hwndDlg);
LoadString(g_hInstance, IDS_FAILED, szMsg, 254);
LoadString(g_hInstance, IDS_TITLE, szTitle, 254);
MessageBox(hwndMain, szMsg, szTitle, MB_ICONEXCLAMATION);
}
if (szAdminBuffer != NULL)
PGPFreeData(szAdminBuffer);
if (szClientBuffer != NULL)
PGPFreeData(szClientBuffer);
if (szNetBuffer != NULL)
PGPFreeData(szNetBuffer);
if (szSetupBuffer != NULL)
PGPFreeData(szSetupBuffer);
}
error:
// Free allocated memory and objects
if (Config.szLicenseNum)
{
PGPFreeData(Config.szLicenseNum);
Config.szLicenseNum = NULL;
}
if (Config.szComments)
{
PGPFreeData(Config.szComments);
Config.szComments = NULL;
}
if (Config.szOutgoingADKID)
{
pgpFree(Config.szOutgoingADKID);
Config.szOutgoingADKID = NULL;
}
if (Config.szOutgoingADK)
{
pgpFree(Config.szOutgoingADK);
Config.szOutgoingADK = NULL;
}
if (Config.szIncomingADKID)
{
pgpFree(Config.szIncomingADKID);
Config.szIncomingADKID = NULL;
}
if (Config.szIncomingADK)
{
pgpFree(Config.szIncomingADK);
Config.szIncomingADK = NULL;
}
if (Config.szDiskADKID)
{
pgpFree(Config.szDiskADKID);
Config.szDiskADKID = NULL;
}
if (Config.szDiskADK)
{
pgpFree(Config.szDiskADK);
Config.szDiskADK = NULL;
}
if (Config.szCorpKeyID)
{
pgpFree(Config.szCorpKeyID);
Config.szCorpKeyID = NULL;
}
if (Config.szCorpKey)
{
pgpFree(Config.szCorpKey);
Config.szCorpKey = NULL;
}
if (Config.szRevokerKeyID)
{
pgpFree(Config.szRevokerKeyID);
Config.szRevokerKeyID = NULL;
}
if (Config.szRevokerKey)
{
pgpFree(Config.szRevokerKey);
Config.szRevokerKey = NULL;
}
if (Config.defaultKeySet != NULL)
{
PGPFreeKeySet(Config.defaultKeySet);
Config.defaultKeySet = NULL;
}
if (Config.szAdminInstaller)
{
PGPFreeData(Config.szAdminInstaller);
Config.szAdminInstaller = NULL;
}
if (Config.szClientInstaller)
{
PGPFreeData(Config.szClientInstaller);
Config.szClientInstaller = NULL;
}
if (Config.szUserInstallDir)
{
PGPFreeData(Config.szUserInstallDir);
Config.szUserInstallDir = NULL;
}
if (Config.pAVList)
{
PGPclFreeCACertRequestAVList(Config.pAVList, Config.nNumAVs);
Config.pAVList = NULL;
Config.nNumAVs = 0;
}
PGPclCloseLibrary();
PGPFreeContext(Config.pgpContext);
DeleteObject(Config.hBitmap);
return;
}
//-------------------------------------------------------------------|
// Load DIB bitmap and associated palette
static HPALETTE
CreateDIBPalette (LPBITMAPINFO lpbmi,
LPINT lpiNumColors)
{
LPBITMAPINFOHEADER lpbi;
LPLOGPALETTE lpPal;
HANDLE hLogPal;
HPALETTE hPal = NULL;
INT i;
lpbi = (LPBITMAPINFOHEADER)lpbmi;
if (lpbi->biBitCount <= 8) {
*lpiNumColors = (1 << lpbi->biBitCount);
}
else
*lpiNumColors = 0; // No palette needed for 24 BPP DIB
if (*lpiNumColors) {
hLogPal = GlobalAlloc (GHND, sizeof (LOGPALETTE) +
sizeof (PALETTEENTRY) * (*lpiNumColors));
lpPal = (LPLOGPALETTE) GlobalLock (hLogPal);
lpPal->palVersion = 0x300;
lpPal->palNumEntries = *lpiNumColors;
for (i = 0; i < *lpiNumColors; i++) {
lpPal->palPalEntry[i].peRed = lpbmi->bmiColors[i].rgbRed;
lpPal->palPalEntry[i].peGreen = lpbmi->bmiColors[i].rgbGreen;
lpPal->palPalEntry[i].peBlue = lpbmi->bmiColors[i].rgbBlue;
lpPal->palPalEntry[i].peFlags = 0;
}
hPal = CreatePalette (lpPal);
GlobalUnlock (hLogPal);
GlobalFree (hLogPal);
}
return hPal;
}
static HBITMAP
LoadResourceBitmap (HINSTANCE hInstance,
LPSTR lpString,
HPALETTE FAR* lphPalette)
{
HRSRC hRsrc;
HGLOBAL hGlobal;
HBITMAP hBitmapFinal = NULL;
LPBITMAPINFOHEADER lpbi;
HDC hdc;
INT iNumColors;
if (hRsrc = FindResource (hInstance, lpString, RT_BITMAP)) {
hGlobal = LoadResource (hInstance, hRsrc);
lpbi = (LPBITMAPINFOHEADER)LockResource (hGlobal);
hdc = GetDC(NULL);
*lphPalette = CreateDIBPalette ((LPBITMAPINFO)lpbi, &iNumColors);
if (*lphPalette) {
SelectPalette (hdc,*lphPalette,FALSE);
RealizePalette (hdc);
}
hBitmapFinal = CreateDIBitmap (hdc,
(LPBITMAPINFOHEADER)lpbi,
(LONG)CBM_INIT,
(LPSTR)lpbi + lpbi->biSize + iNumColors * sizeof(RGBQUAD),
(LPBITMAPINFO)lpbi,
DIB_RGB_COLORS );
ReleaseDC (NULL,hdc);
UnlockResource (hGlobal);
FreeResource (hGlobal);
}
return (hBitmapFinal);
}
BOOL CALLBACK WaitProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
{
RECT rc;
// center dialog on screen
GetWindowRect(GetParent(hwndDlg), &rc);
SetWindowPos(GetParent(hwndDlg), NULL,
(GetSystemMetrics(SM_CXSCREEN) - (rc.right - rc.left))/2,
(GetSystemMetrics(SM_CYSCREEN) - (rc.bottom - rc.top))/2,
0, 0, SWP_NOSIZE | SWP_NOZORDER);
break;
}
}
return 0;
}
/*__Editor_settings____
Local Variables:
tab-width: 4
End:
vi: ts=4 sw=4
vim: si
_____________________*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -