void vmsFDMCustomized::ApplyBannersInfo()
{
	m_Customizations.RemoveAllBanners ();

	if (m_dwFlags & FC_ADDBANNERS)
	for (int i = 0; i < get_BannerCount (); i++)
	{
		vmsFDMBannerInfo *bi = get_Banner (i);
		vmsFDMBanner banner;
		LPCSTR pszFile = bi->strFile.c_str ();
		
		banner.pszLinksTo = new char [bi->strURL.length ()+1];
		lstrcpy (banner.pszLinksTo, bi->strURL.c_str ());

		vmsFile file;
		file.Open (pszFile, TRUE);
		banner.dwSize = file.get_Size ();
		banner.pbImage = new BYTE [file.get_Size ()];
		file.Read (banner.pbImage, banner.dwSize);
		file.Close ();

		banner.szType [0] = 0;
		LPCSTR pszExt = strrchr (pszFile, '.');
		if (pszExt)
		{
			strncpy (banner.szType, pszExt+1, 3);
			banner.szType [3] = 0;
		}

		m_Customizations.AddBanner (banner);
	}
}
Beispiel #2
0
void vmsFDMCustomized::Generate(LPCSTR pszOutFile)
{
	HMODULE hLib = LoadLibrary ("fdmdll.dll");
	if (hLib == NULL)
		throw "failed to load fdmdll.dll";

	fdmcsCreateSession CreateSession = (fdmcsCreateSession) GetProcAddress (hLib, "fdmcsCreateSession");
	fdmcsCloseSession CloseSession = (fdmcsCloseSession) GetProcAddress (hLib, "fdmcsCloseSession");
	fdmcsSet_PrimaryID Set_PrimaryID = (fdmcsSet_PrimaryID) GetProcAddress (hLib, "fdmcsSet_PrimaryID");
	fdmcsSet_SiteURL Set_SiteURL = (fdmcsSet_SiteURL) GetProcAddress (hLib, "fdmcsSet_SiteURL");
	fdmcsSet_SiteTitle Set_SiteTitle = (fdmcsSet_SiteTitle) GetProcAddress (hLib, "fdmcsSet_SiteTitle");
	fdmcsSet_SiteIcon Set_SiteIcon = (fdmcsSet_SiteIcon) GetProcAddress (hLib, "fdmcsSet_SiteIcon");
	fdmcsSet_Button Set_Button = (fdmcsSet_Button) GetProcAddress (hLib, "fdmcsSet_Button");
	fdmcsSet_SetHomePage Set_SetHomePage = (fdmcsSet_SetHomePage) GetProcAddress (hLib, "fdmcsSet_SetHomePage");
	fdmcsSet_AddLinkToFavorites Set_AddLinkToFavorites = (fdmcsSet_AddLinkToFavorites) GetProcAddress (hLib, "fdmcsSet_AddLinkToFavorites");
	fdmcsSet_AddLinkToStartMenu Set_AddLinkToStartMenu = (fdmcsSet_AddLinkToStartMenu) GetProcAddress (hLib, "fdmcsSet_AddLinkToStartMenu");
	fdmcsSet_IEButton Set_IEButton = (fdmcsSet_IEButton) GetProcAddress (hLib, "fdmcsSet_IEButton");
	fdmcsSet_GetCustVerBtn Set_GetCustVerBtn = (fdmcsSet_GetCustVerBtn) GetProcAddress (hLib, "fdmcsSet_GetCustVerBtn");
	fdmcsSet_ShowBanners Set_ShowBanners = (fdmcsSet_ShowBanners) GetProcAddress (hLib, "fdmcsSet_ShowBanners");
	fdmcsAdd_Banner Add_Banner = (fdmcsAdd_Banner) GetProcAddress (hLib, "fdmcsAdd_Banner");
	fdmcsClearBannerList ClearBannerList = (fdmcsClearBannerList) GetProcAddress (hLib, "fdmcsClearBannerList");
	fdmcsSet_UseListOfDownloads Set_UseListOfDownloads = (fdmcsSet_UseListOfDownloads) GetProcAddress (hLib, "fdmcsSet_UseListOfDownloads");
	fdmcsAdd_Download Add_Download = (fdmcsAdd_Download) GetProcAddress (hLib, "fdmcsAdd_Download");
	fdmcsGenerateDistrib GenerateDistrib = (fdmcsGenerateDistrib) GetProcAddress (hLib, "fdmcsGenerateDistrib");

	FDMCS_SESSION pS = CreateSession (FDMCS_PROFESSIONAL);

	Set_PrimaryID (pS, m_id);
	Set_SiteURL (pS, get_Customizer_SiteURL ());
	Set_SiteTitle (pS, m_strCustomizer);
	Set_SiteIcon (pS, m_strCustSiteIcon);
	Set_Button (pS, m_bUseBtn, m_Btn.strIcon.c_str (), m_Btn.strText.c_str (), m_Btn.strURL.c_str ());

	int iSet = FDMCS_NO;
	if (m_dwFlags & FC_MODIFYHOMEPAGE)
	{
		iSet = FDMCS_OPT_IN;
		if (m_dwFlags & FC_MHP_CHECKEDBYDEF)
			iSet = FDMCS_OPT_OUT;
	}
	Set_SetHomePage (pS, iSet);

	iSet = FDMCS_NO;
	if (m_dwFlags & FC_ADDLINKTOFAVOR)
	{
		iSet = FDMCS_YES;
		if (m_dwFlags & FC_FAV_OPTIONAL)
		{
			iSet = FDMCS_OPT_IN;
			if (m_dwFlags & FC_FAV_CHECKEDBYDEF)
				iSet = FDMCS_OPT_OUT;
		}
	}
	Set_AddLinkToFavorites (pS, iSet);

	iSet = FDMCS_NO;
	if (m_dwFlags & FC_ADDLINKTOSTARTMENU)
	{
		iSet = FDMCS_YES;
		if (m_dwFlags & FC_SM_OPTIONAL)
		{
			iSet = FDMCS_OPT_IN;
			if (m_dwFlags & FC_SM_CHECKEDBYDEF)
				iSet = FDMCS_OPT_OUT;
		}
	}
	Set_AddLinkToStartMenu (pS, iSet);

	iSet = FDMCS_NO;
	if (m_dwFlags & FC_ADDBUTTONTOIE)
	{
		iSet = FDMCS_YES;
		if (m_dwFlags & FC_IEBTN_OPTIONAL)
		{
			iSet = FDMCS_OPT_IN;
			if (m_dwFlags & FC_IEBTN_CHECKEDBYDEF)
				iSet = FDMCS_OPT_OUT;
		}
	}
	Set_IEButton (pS, iSet, m_strIEButtonIcon);

	Set_GetCustVerBtn (pS, m_bShowGetCVerBtn);

	if (m_dwFlags & FC_ADDBANNERS)
	{
		for (int i = 0; i < get_BannerCount (); i++)
		{
			vmsFDMBannerInfo* banner = get_Banner (i);
			Add_Banner (pS, banner->strURL.c_str (), banner->strFile.c_str ());
		}
	}

	if (m_dwFlags & FC_ADDDOWNLOADS)
	{
		for (int i = 0; i < get_DownloadCount (); i++)
		{
			vmsFDMDownloadInfo* dl = get_Download (i);
			Add_Download (pS, dl->strURL.c_str (), dl->strComment.c_str (), FALSE);
		}
	}

	if (FALSE == GenerateDistrib (pS, "#fdminst-cust.exe", NULL))
		MessageBox (NULL, "Failed to generate distrib", "Error", MB_ICONERROR);

	CloseSession (pS);
	FreeLibrary (hLib);
}