2002-08-02 10:01:35 +00:00
/*
Copyright ( c ) 2002 Robert Rainwater
2002-09-19 22:38:46 +00:00
Contributors : Justin Frankel , Fritz Elfert , and Amir Szekely
2002-08-02 10:01:35 +00:00
This software is provided ' as - is ' , without any express or implied
warranty . In no event will the authors be held liable for any damages
arising from the use of this software .
Permission is granted to anyone to use this software for any purpose ,
including commercial applications , and to alter it and redistribute it
freely , subject to the following restrictions :
1. The origin of this software must not be misrepresented ; you must not
claim that you wrote the original software . If you use this software
in a product , an acknowledgment in the product documentation would be
appreciated but is not required .
2. Altered source versions must be plainly marked as such , and must not be
misrepresented as being the original software .
3. This notice may not be removed or altered from any source distribution .
*/
# ifndef MAKENSIS_H
# define MAKENSIS_H
# include <commctrl.h>
2002-09-19 22:38:46 +00:00
# include "utils.h"
2002-10-16 17:21:43 +00:00
# include "jnetlib/util.h"
# include "jnetlib/netinc.h"
# include "jnetlib/httpget.h"
2002-08-02 10:01:35 +00:00
# define _RICHEDIT_VER 0x0200
# include <RichEdit.h>
# undef _RICHEDIT_VER
// Defines
2002-10-09 17:38:24 +00:00
# define NSIS_DEV "http: //nsis.sourceforge.net/"
# define NSIS_URL "http: //www.nullsoft.com/free/nsis/"
2002-10-11 13:38:26 +00:00
# define NSIS_UPDATE "http: //nsis.sourceforge.net/update.php?version="
2002-10-17 01:26:25 +00:00
# define NSIS_DDL "http: //sourceforge.net/project/showfiles.php?group_id=22049"
2002-09-19 15:29:16 +00:00
# define USAGE "Usage:\r\n\r\n - File | Load Script...\r\n - Drag the .nsi file into this window\r\n - Right click the .nsi file and choose \"Compile NSI\""
2002-09-24 22:52:55 +00:00
# define COPYRIGHT "Copyright <20> 2002 Robert Rainwater"
2002-10-09 17:11:01 +00:00
# define CONTRIB "Fritz Elfert, Justin Frankel, Amir Szekely"
2002-10-09 20:41:37 +00:00
# define DOCPATH "http: //nsis.sourceforge.net/Docs/"
2002-09-04 00:49:51 +00:00
# define LOCALDOCS "\\docs\\index.html"
2002-09-19 22:38:46 +00:00
# define NSISERROR "Unable to intialize MakeNSIS. Please verify that makensis.exe is in the same directory as makensisw.exe."
# define DLGERROR "Unable to intialize MakeNSISW."
2002-08-02 10:01:35 +00:00
# define REGSEC HKEY_LOCAL_MACHINE
# define REGKEY "Software\\NSIS"
# define REGLOC "MakeNSISWPlacement"
2002-09-04 17:08:17 +00:00
# define EXENAME "makensis.exe"
2002-08-02 10:01:35 +00:00
# define MAX_STRING 256
2002-09-19 22:38:46 +00:00
# define TIMEOUT 100
2002-08-02 10:01:35 +00:00
# define MINWIDTH 350
# define MINHEIGHT 180
2002-09-19 22:38:46 +00:00
# define REGSEC HKEY_LOCAL_MACHINE
# define REGKEY "Software\\NSIS"
# define REGLOC "MakeNSISWPlacement"
2002-08-02 10:01:35 +00:00
# define WM_MAKENSIS_PROCESSCOMPLETE (WM_USER+1001)
// Extern Variables
2002-09-19 22:38:46 +00:00
extern const char * NSISW_VERSION ;
2002-08-02 10:01:35 +00:00
int WINAPI WinMain ( HINSTANCE hInst , HINSTANCE hPrevInst , char * cmdParam , int cmdShow ) ;
static BOOL CALLBACK DialogProc ( HWND hwndDlg , UINT uMsg , WPARAM wParam , LPARAM lParam ) ;
DWORD WINAPI MakeNSISProc ( LPVOID p ) ;
BOOL CALLBACK DialogResize ( HWND hWnd , LPARAM /* unused*/ ) ;
2002-09-20 14:37:29 +00:00
BOOL CALLBACK AboutNSISProc ( HWND hwndDlg , UINT msg , WPARAM wParam , LPARAM lParam ) ;
2002-08-02 10:01:35 +00:00
BOOL CALLBACK AboutProc ( HWND hwndDlg , UINT msg , WPARAM wParam , LPARAM lParam ) ;
void CompileNSISScript ( ) ;
2002-10-17 01:26:25 +00:00
DWORD CALLBACK UpdateThread ( LPVOID v ) ;
2002-08-02 10:01:35 +00:00
2002-10-09 20:41:37 +00:00
typedef struct NSISScriptData {
2002-11-14 20:03:07 +00:00
bool script_alloced ;
2002-10-09 20:41:37 +00:00
char * script ;
char * output_exe ;
char * input_script ;
char * branding ;
2002-11-14 20:03:07 +00:00
char * brandingv ;
2002-10-09 20:41:37 +00:00
int retcode ;
2002-10-09 20:48:33 +00:00
DWORD logLength ;
2002-10-09 20:41:37 +00:00
BOOL warnings ;
BOOL appended ;
HINSTANCE hInstance ;
HWND hwnd ;
HMENU menu ;
HMENU submenu ;
HANDLE thread ;
CHARRANGE textrange ;
} NSCRIPTDATA ;
typedef struct ResizeData {
RECT resizeRect ;
RECT griprect ;
int dx ;
int dy ;
} NRESIZEDATA ;
typedef struct FindReplaceDialog {
FINDREPLACE fr ;
UINT uFindReplaceMsg ;
HWND hwndFind ;
} NFINDREPLACE ;
typedef struct ToolTipStruct {
HWND tip ;
HWND tip_p ;
HHOOK hook ;
} NTOOLTIP ;
2002-08-02 10:01:35 +00:00
# endif