#define TREEVIEW_HEIGHT 250 #define TREEVIEW_WIDTH 205 #define MARGIN 5 #define INFOWINDOW_HEIGHT 70 #define MAX_WINDOW_WIDTH 1000 #define MAX_WINDOW_HEIGHT 1000 #define NUMLANG 100 #define NUM_ICONS 8 #define PAGE_ERROR 2 #define SAVE_ERROR 3 #define SAVE_CANCEL 4 #define IDM_RECENTFILELIST 100 #define UM_SAVE_COMPLETE WM_USER + 101 #define UM_INIT_TREEVIEW WM_USER + 102 typedef struct _insdlg { LPTSTR DlgId; LPTSTR szName; DLGPROC dlgproc; HTREEITEM hItem; HRESULT (WINAPI *pfnFinalCopy)(LPCTSTR psczDestDir, DWORD dwFlags, LPDWORD pdwCabState); } INSDLG, *LPINSDLG; typedef HWND (WINAPI * CREATEINSDIALOG)(HWND, int, int, int, LPTSTR, LPTSTR); typedef LPINSDLG (WINAPI * GETINSDLGSTRUCT)(int *); typedef BOOL (WINAPI * DESTROYINSDIALOG)(HWND); typedef void (WINAPI * SETDEFAULTINF)(LPCTSTR); typedef void (WINAPI * REINITIALIZEINSDIALOGPROCS)(); typedef void (WINAPI * SETPLATFORMINFO)(DWORD); typedef BOOL (WINAPI * INSDIRTY)(); typedef void (WINAPI * CLEARINSDIRTYFLAG)(); typedef BOOL (WINAPI * SAVEINSDIALOG)(HWND, BOOL); typedef BOOL (WINAPI * CHECKFOREXCHAR)(int); CREATEINSDIALOG CreateInsDialog; GETINSDLGSTRUCT GetInsDlgStruct; DESTROYINSDIALOG DestroyInsDialog; SETDEFAULTINF SetDefaultInf; REINITIALIZEINSDIALOGPROCS ReInitializeInsDialogProcs; SETPLATFORMINFO SetPlatformInfo; INSDIRTY InsDirty; CLEARINSDIRTYFLAG ClearInsDirtyFlag; SAVEINSDIALOG SaveInsDialog; CHECKFOREXCHAR CheckForExChar; extern "C" HRESULT WINAPI ExtractFiles( LPCSTR pszCabName, LPCSTR pszExpandDir, DWORD dwFlags, LPCSTR pszFileList, LPVOID lpReserved, DWORD dwReserved); BOOL IsPolicyTree(HTREEITEM hItem); void CreateCabWorkDirs(LPCTSTR szWorkDir); void DeleteCabWorkDirs(); void ExtractCabFile(); void PrepareFolderForCabbing(LPCTSTR pcszDestDir, DWORD dwFlags); BOOL CompressCabFile(); void CabUpFolder(HWND hWnd, LPTSTR szFolderPath, LPTSTR szDestDir, LPTSTR szCabname, BOOL fSubDirs = FALSE); BOOL DirectoryName(LPCTSTR lpDirectory, LPTSTR szDirectoryPath); INT_PTR CALLBACK LanguageDialogProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam ); VOID InitSysFont(HWND hDlg, INT iCtrlID); INT_PTR CALLBACK SaveAsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); LPTSTR GetCabName(LPCTSTR pcszInsFile, DWORD dwCabType, TCHAR szCabFullFileName[]); BOOL PathIsPathEmpty(LPCTSTR pcszPath); INT_PTR CALLBACK DisplaySaveDlgProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam ); void GetDefaultInf(DWORD dwPlatformId); void GetDefaultCabName(DWORD dwCabType, LPCTSTR pcszPrefix, LPTSTR pszCabName); BOOL Is8_3FileFormat(LPCTSTR pszFile); BOOL InitializePlatform(HWND hWnd, HWND hInfoWnd, WORD wPlatform); void CopyDir(LPCTSTR szSrcDir, LPCTSTR szDestDir); void IeakPageHelp(HWND hWnd, LPCTSTR pszData); void UpdateRecentFileListMenu(HWND hWnd, TCHAR pRecentFileList[5][MAX_PATH]); void ReadRecentFileList(TCHAR pRecentFileList[5][MAX_PATH]); void UpdateRecentFileList(LPCTSTR pcszFile, BOOL fAdd, TCHAR pRecentFileList[5][MAX_PATH]); void WriteRecentFileList(TCHAR pRecentFileList[5][MAX_PATH]); void DrawTrackLine(HWND hWnd, int nXPos); BOOL IsDirty(); void ClearDirtyFlag(); BOOL SaveCurrentSelItem(HWND hTreeView, DWORD dwFlags); void SetInfoWindowText(HWND hInfoWnd, LPCTSTR pcszStatusText = NULL); BOOL PlatformExists(HWND hWnd, LPTSTR pLang, DWORD dwPlatform, BOOL fShowError = FALSE); void GetLangDesc(LPTSTR szLangId, LPTSTR szLangDesc, int cchLangDescSize, LPDWORD dwLangId); BOOL EnoughDiskSpace(LPCTSTR szSrcFile, LPCTSTR szDestFile, LPDWORD pdwSpaceReq, LPDWORD pdwSpaceFree); DWORD GetCabBuildStatus(); void GetCabNameFromINS(LPCTSTR pcszInsFile, DWORD dwCabType, LPTSTR pszCabFullFileName, LPTSTR pszCabInfoLine = NULL); BOOL CabFilesExist(HWND hWnd, LPCTSTR pcszInsFile); BOOL IsWin32INSFile(LPCTSTR pcszIns); // version.cpp stuff void IncrementDotVer(LPTSTR pszVerStr); void GenerateNewVersionStr(LPCTSTR pcszInsFile, LPTSTR pszNewVersionStr); void SetOrClearVersionInfo(LPCTSTR pcszInsFile, DWORD dwCabType, LPCTSTR pcszCabName, LPCTSTR pcszCabsURLPath, LPTSTR pszNewVersionStr, BOOL fSet);