michael@0: // michael@0: // Copyright (C) Anders Kjersem. Licensed under the zlib/libpng license michael@0: // michael@0: michael@0: #if (defined(_MSC_VER) && !defined(_DEBUG)) michael@0: #pragma comment(linker,"/opt:nowin98") michael@0: #pragma comment(linker,"/ignore:4078") michael@0: #pragma comment(linker,"/merge:.rdata=.text") michael@0: #endif michael@0: michael@0: #ifdef UNICODE michael@0: # ifndef _UNICODE michael@0: # define _UNICODE michael@0: # endif michael@0: #endif michael@0: michael@0: #define _WIN32_WINNT 0x0400 michael@0: #include michael@0: #include michael@0: #include michael@0: michael@0: #if defined(_DEBUG) || 0 michael@0: # define PLUGIN_DEBUG 1 michael@0: void MYTRACE(LPCTSTR fmt, ...) michael@0: { michael@0: va_list argptr; michael@0: va_start(argptr, fmt); michael@0: TCHAR buffer[2048] = { _T('\0') }; michael@0: wvsprintf(buffer, fmt, argptr); michael@0: buffer[(sizeof(buffer)/sizeof(*buffer)) - 1] = _T('\0'); michael@0: OutputDebugString(buffer); michael@0: va_end(argptr); michael@0: } michael@0: #else michael@0: void MYTRACE(...) { } michael@0: #endif michael@0: # define TRACE MYTRACE michael@0: michael@0: #ifndef ASSERT michael@0: # define ASSERT(x) michael@0: #endif michael@0: michael@0: #define NSISPIEXPORTFUNC EXTERN_C void __declspec(dllexport) __cdecl michael@0: michael@0: namespace NSIS { michael@0: michael@0: #define NSISCALL __stdcall michael@0: typedef struct _xparams_t { michael@0: LPVOID xx1;//exec_flags_type *exec_flags; michael@0: int (NSISCALL *ExecuteCodeSegment)(int, HWND); michael@0: void (NSISCALL *validate_filename)(TCHAR*); michael@0: int (NSISCALL *RegisterPluginCallback)(HMODULE,LPVOID); michael@0: } xparams_t; michael@0: typedef struct _stack_t { michael@0: struct _stack_t *next; michael@0: TCHAR text[1]; michael@0: } stack_t; michael@0: michael@0: } // namespace NSIS michael@0: michael@0: enum NSPIM michael@0: { michael@0: NSPIM_UNLOAD, michael@0: NSPIM_GUIUNLOAD, michael@0: };