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); } }
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); }