* PageEx - every page can be used everywhere and as many times as needed

* DirVar - easy way to add another dir page
* default strings in the language file (Page directory is enough, no need for DirText)
* strings from the language file are now LangStrings that can be used in the script
* no more /LANG - one string for all languages
* any lang strings can be used everywhere, installer or uninstaller (no un.)
* no more unprocessed strings - variables can be used almost everywhere (except in licenseData and InstallDirRegKey)
* DirText parm for browse dialog text
* SetBkColor -> SetCtlColors - can now set text color too
* fixed SetOutPath and File /r bug
* fixed File /a /oname bug
* added $_CLICK for pages
* added quotes support in lang files (patch #752620)
* extraction progress
* separate RTL dialogs for RTL langs (improved RTL too)
* InstallOptions RTL
* StartMenu RTL
* fixed RegDLL?
* added IfSilent and SetSilent (SetSilent only works from .onInit)
* fixed verify window (it never showed) (bug #792494)
* fixed ifnewer readonly file problem (patch #783782)
* fixed wininit.ini manipulation when there is another section after [rename]
* fixed some ClearType issues
* fixed a minor bug in the resource editor
* fixed !ifdef/!endif stuff, rewritten
* lots of code and comments clean ups
* got rid of some useless exceptions handling and STL classes (still much more to go)
* lots of optimizations, of course ;)
* updated system.dll with support for GUID, WCHAR, and fast VTable calling (i.e. COM ready)
* minor bug fixes


git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2823 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2003-09-04 18:25:57 +00:00
parent bb8879b7ae
commit 74ea2dc585
91 changed files with 5180 additions and 4101 deletions

View file

@ -29,6 +29,17 @@ static int popstring(char *str)
return 0;
}
#define CC_TEXT 1
#define CC_BK 4
typedef struct {
COLORREF text;
LOGBRUSH bk;
HBRUSH bkb;
int bkmode;
int flags;
} ctlcolors;
#define strcpy(x,y) lstrcpy(x,y)
#define strncpy(x,y,z) lstrcpyn(x,y,z)
#define strdup(x) STRDUP(x)
@ -164,6 +175,8 @@ int bBackEnabled = FALSE;
int bCancelEnabled = FALSE; // by ORTIM: 13-August-2002
int bCancelShow = FALSE; // by ORTIM: 13-August-2002
int bRTL = FALSE;
FieldType *pFields = NULL;
#define DEFAULT_RECT 1018
int nRectId = 0;
@ -468,6 +481,8 @@ int ReadSettings(void) {
bCancelEnabled = GetPrivateProfileInt("Settings", "CancelEnabled", 0xFFFF0000, pszFilename);
bCancelShow = GetPrivateProfileInt("Settings", "CancelShow", 0xFFFF0000, pszFilename);
bRTL = GetPrivateProfileInt("Settings", "RTL", 0, pszFilename);
if (nNumFields > 0) {
// make this twice as large for the worst case that every control is a browse button.
// the structure is small enough that this won't waste much memory.
@ -621,21 +636,21 @@ int ReadSettings(void) {
pFields[nIdx].hImage = (HANDLE)GetPrivateProfileInt(szField, "TxtColor", RGB(0,0,255), pszFilename);
pFields[nIdx].nControlID = 1200 + nIdx;
if ( pFields[nIdx].nType == FIELD_FILEREQUEST || pFields[nIdx].nType == FIELD_DIRREQUEST )
if (pFields[nIdx].nType == FIELD_FILEREQUEST || pFields[nIdx].nType == FIELD_DIRREQUEST)
{
FieldType *pNewField = &pFields[nIdx+1];
pNewField->nControlID = 1200 + nIdx + 1;
pNewField->nParentIdx = nIdx;
pNewField->nType = FIELD_BROWSEBUTTON;
pNewField->nFlags = pFields[nIdx].nFlags & (FLAG_DISABLED | FLAG_NOTABSTOP);
pNewField->pszText = STRDUP(szBrowseButtonCaption); // needed for generic FREE
pNewField->rect.right = pFields[nIdx].rect.right;
pNewField->rect.left = pNewField->rect.right - BROWSE_WIDTH;
pNewField->rect.bottom = pFields[nIdx].rect.bottom;
pNewField->rect.top = pFields[nIdx].rect.top;
pFields[nIdx].rect.right = pNewField->rect.left - 3;
nNumFields++;
nIdx++;
FieldType *pNewField = &pFields[nIdx+1];
pNewField->nControlID = 1200 + nIdx + 1;
pNewField->nParentIdx = nIdx;
pNewField->nType = FIELD_BROWSEBUTTON;
pNewField->nFlags = pFields[nIdx].nFlags & (FLAG_DISABLED | FLAG_NOTABSTOP);
pNewField->pszText = STRDUP(szBrowseButtonCaption); // needed for generic FREE
pNewField->rect.right = pFields[nIdx].rect.right;
pNewField->rect.left = pNewField->rect.right - BROWSE_WIDTH;
pNewField->rect.bottom = pFields[nIdx].rect.bottom;
pNewField->rect.top = pFields[nIdx].rect.top;
pFields[nIdx].rect.right = pNewField->rect.left - 3;
nNumFields++;
nIdx++;
}
}
@ -753,11 +768,16 @@ BOOL CALLBACK cfgDlgProc(HWND hwndDlg,
case WM_CTLCOLORBTN:
case WM_CTLCOLORLISTBOX:
{
BOOL brush = (BOOL)GetWindowLong((HWND)lParam, GWL_USERDATA);
if (brush)
{
SetBkMode((HDC)wParam, TRANSPARENT);
return brush;
ctlcolors *c = (ctlcolors *)GetWindowLong((HWND)lParam, GWL_USERDATA);
if (c) {
SetBkMode((HDC)wParam, c->bkmode);
if (c->flags & CC_BK)
SetBkColor((HDC)wParam, c->bk.lbColor);
if (c->flags & CC_TEXT)
SetTextColor((HDC)wParam, c->text);
return (BOOL)c->bkb;
}
}
}
@ -861,13 +881,23 @@ int createCfgDlg()
HFONT hFont = (HFONT)SendMessage(hMainWindow, WM_GETFONT, 0, 0);
RECT dialog_r;
int width;
hConfigWindow=CreateDialog(m_hInstance,MAKEINTRESOURCE(IDD_DIALOG1),hMainWindow,cfgDlgProc);
if (hConfigWindow)
{
GetWindowRect(childwnd,&dialog_r);
ScreenToClient(hMainWindow,(LPPOINT)&dialog_r);
ScreenToClient(hMainWindow,((LPPOINT)&dialog_r)+1);
SetWindowPos(hConfigWindow,0,dialog_r.left,dialog_r.top,dialog_r.right-dialog_r.left,dialog_r.bottom-dialog_r.top,SWP_NOZORDER|SWP_NOACTIVATE);
width = dialog_r.right-dialog_r.left;
SetWindowPos(
hConfigWindow,
0,
dialog_r.left,
dialog_r.top,
width,
dialog_r.bottom-dialog_r.top,
SWP_NOZORDER|SWP_NOACTIVATE
);
// Sets the font of IO window to be the same as the main window
SendMessage(hConfigWindow, WM_SETFONT, (WPARAM)hFont, TRUE);
}
@ -899,47 +929,75 @@ int createCfgDlg()
static struct {
char* pszClass;
DWORD dwStyle;
DWORD dwRTLStyle;
DWORD dwExStyle;
DWORD dwRTLExStyle;
} ClassTable[] = {
{ "STATIC", // FIELD_LABEL
DEFAULT_STYLES /*| WS_TABSTOP*/,
DEFAULT_STYLES | SS_RIGHT /*| WS_TABSTOP*/,
WS_EX_TRANSPARENT,
WS_EX_TRANSPARENT },
{ "STATIC", // FIELD_ICON
DEFAULT_STYLES /*| WS_TABSTOP*/ | SS_ICON,
DEFAULT_STYLES /*| WS_TABSTOP*/ | SS_ICON,
0,
0 },
{ "STATIC", // FIELD_BITMAP
DEFAULT_STYLES /*| WS_TABSTOP*/ | SS_BITMAP | SS_CENTERIMAGE,
DEFAULT_STYLES /*| WS_TABSTOP*/ | SS_BITMAP | SS_CENTERIMAGE,
0,
0 },
{ "BUTTON", // FIELD_BROWSEBUTTON
DEFAULT_STYLES | WS_TABSTOP,
DEFAULT_STYLES | WS_TABSTOP,
0,
0 },
{ "BUTTON", // FIELD_CHECKBOX
DEFAULT_STYLES | WS_TABSTOP | BS_TEXT | BS_VCENTER | BS_AUTOCHECKBOX | BS_MULTILINE,
DEFAULT_STYLES | WS_TABSTOP | BS_TEXT | BS_VCENTER | BS_AUTOCHECKBOX | BS_MULTILINE | BS_RIGHT | BS_LEFTTEXT,
0,
0 },
{ "BUTTON", // FIELD_RADIOBUTTON
DEFAULT_STYLES | WS_TABSTOP | BS_TEXT | BS_VCENTER | BS_AUTORADIOBUTTON | BS_MULTILINE,
DEFAULT_STYLES | WS_TABSTOP | BS_TEXT | BS_VCENTER | BS_AUTORADIOBUTTON | BS_MULTILINE | BS_RIGHT | BS_LEFTTEXT,
0,
0 },
{ "EDIT", // FIELD_TEXT
DEFAULT_STYLES | WS_TABSTOP | ES_AUTOHSCROLL,
DEFAULT_STYLES | WS_TABSTOP | ES_AUTOHSCROLL | ES_RIGHT,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE },
{ "EDIT", // FIELD_FILEREQUEST
DEFAULT_STYLES | WS_TABSTOP | ES_AUTOHSCROLL,
DEFAULT_STYLES | WS_TABSTOP | ES_AUTOHSCROLL | ES_RIGHT,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE },
{ "EDIT", // FIELD_DIRREQUEST
DEFAULT_STYLES | WS_TABSTOP | ES_AUTOHSCROLL,
DEFAULT_STYLES | WS_TABSTOP | ES_AUTOHSCROLL | ES_RIGHT,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE },
{ "COMBOBOX", // FIELD_COMBOBOX
DEFAULT_STYLES | WS_TABSTOP | WS_VSCROLL | WS_CLIPCHILDREN | CBS_AUTOHSCROLL | CBS_HASSTRINGS,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE },
DEFAULT_STYLES | WS_TABSTOP | WS_VSCROLL | WS_CLIPCHILDREN | CBS_AUTOHSCROLL | CBS_HASSTRINGS,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE | WS_EX_RIGHT | WS_EX_RTLREADING },
{ "LISTBOX", // FIELD_LISTBOX
DEFAULT_STYLES | WS_TABSTOP | WS_VSCROLL | LBS_DISABLENOSCROLL | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE },
DEFAULT_STYLES | WS_TABSTOP | WS_VSCROLL | LBS_DISABLENOSCROLL | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE,
WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE | WS_EX_RIGHT | WS_EX_RTLREADING },
{ "BUTTON", // FIELD_GROUPBOX
DEFAULT_STYLES | BS_GROUPBOX,
DEFAULT_STYLES | BS_GROUPBOX | BS_RIGHT,
WS_EX_TRANSPARENT,
WS_EX_TRANSPARENT },
{ "BUTTON", // FIELD_LINK
DEFAULT_STYLES | WS_TABSTOP | BS_OWNERDRAW
},
DEFAULT_STYLES | WS_TABSTOP | BS_OWNERDRAW,
DEFAULT_STYLES | WS_TABSTOP | BS_OWNERDRAW | BS_RIGHT,
0,
0 },
};
int nType = pFields[nIdx].nType;
@ -949,8 +1007,15 @@ int createCfgDlg()
if (nType < 1 || nType > (sizeof(ClassTable) / sizeof(ClassTable[0])))
continue;
DWORD dwStyle = ClassTable[pFields[nIdx].nType - 1].dwStyle;
DWORD dwExStyle = ClassTable[pFields[nIdx].nType - 1].dwExStyle;
DWORD dwStyle, dwExStyle;
if (bRTL) {
dwStyle = ClassTable[pFields[nIdx].nType - 1].dwRTLStyle;
dwExStyle = ClassTable[pFields[nIdx].nType - 1].dwRTLExStyle;
}
else {
dwStyle = ClassTable[pFields[nIdx].nType - 1].dwStyle;
dwExStyle = ClassTable[pFields[nIdx].nType - 1].dwExStyle;
}
// Convert from dialog units
@ -970,6 +1035,12 @@ int createCfgDlg()
if (pFields[nIdx].rect.bottom < 0)
rect.bottom += dialog_r.bottom - dialog_r.top;
if (bRTL) {
int right = rect.right;
rect.right = width - rect.left;
rect.left = width - right;
}
char *title = pFields[nIdx].pszText;
switch (nType) {
case FIELD_CHECKBOX:

View file

@ -195,11 +195,16 @@ It can contain the following values:</p>
<td class="lefttable"><span class="italic">(optional)</span></td>
<td class="righttable">Overrides the text for the back button. If not specified, the back button text
will not be changed.</td></tr>
<tr>
<tr>
<td class="lefttable"><span class="bold">Rect</span></td>
<td class="lefttable"><span class="italic">(optional)</span></td>
<td class="righttable">Overrides the default rect ID to run over. This will make IO resize itself
according to a different rect than NSIS's dialogs rect.</td></tr>
<tr>
<td class="lefttable"><span class="bold">RTL</span></td>
<td class="lefttable"><span class="italic">(optional)</span></td>
<td class="righttable">If 1 is specified the dialog will be mirrored and all texts will be aligned to the
right. Use NSIS's $(^RTL) to fill this field, it's the easiest way.</td></tr>
</table>
<p class="text">Each field section has the heading "Field #" where # must be sequential
numbers from 1 to NumFields. Each Field section can contain the following values:</p>
@ -612,12 +617,13 @@ FunctionEnd
</pre>
<p class="header">Version history</p>
<ul>
<li>DLL version 2.2 (6/10/2003)
<li>DLL version 2.2 (4/9/2003)
<ul>
<li>Added new control "link"</li>
<li>\r\n converts to newline in Multiline edit box</li>
<li>Support for multiline edit box</li>
<li>Better tab order in DirRequest and FileRequest</li>
<li>Added RTL support</li>
<li>Minor fixes</li>
</ul></li>
</ul>

View file

@ -7,10 +7,12 @@ NLF v2
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
RTL
# Translation by asdfuae@msn.com
نظام التنصيب نلسوفت %s
تنصيب %s
مزيل %s
ÊäÕíÈ $(^Name)
ãÒíá $(^Name)
: اتفاقية‏ الترخيص
: خيارات التنصيب
: مجلد التنصيب
@ -34,7 +36,7 @@ NLF v2
أختر نوع التنصيب:
أختر العناصر للتنصيب:
أو، أختر العناصر المحددة المراد تنصيبها:
أختر المجلد المراد تنصيب %s فيه:
ÃÎÊÑ ÇáãÌáÏ ÇáãÑÇÏ ÊäÕíÈ $(^Name) Ýíå:
المساحة المتاحة:
المساحة المطلوبة:
يزال من:

View file

@ -7,10 +7,12 @@ NLF v2
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Asparouh Kalyandjiev <acnapyx@computers.bg>
Nullsoft инсталатор %s
%s Инсталиране
%s Деинсталиране
$(^Name) Èíñòàëèðàíå
$(^Name) Äåèíñòàëèðàíå
: Лицензно споразумение
: Инсталационни опции
: Инсталационна папка
@ -34,7 +36,7 @@ Nullsoft
Изберете типа инсталация:
Изберете компонентите за инсталиране:
Или изберете компонентите, които желаете да бъдат инсталирани:
Изберете папка, където да се инсталира %s:
Èçáåðåòå ïàïêà, êúäåòî äà ñå èíñòàëèðà $(^Name):
Свободно място:
Нужно място:
Деинсталиране от:

View file

@ -8,10 +8,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by falanko
Nullsoft Install System %s
Instal·lació de %s
Desinstal·lació de %s
Instal·lació de $(^Name)
Desinstal·lació de $(^Name)
: Acord de Llicència
: Opcions d'Instal·lació
: Carpeta d'Instal·lació
@ -37,7 +39,7 @@ Personalitzada
Indiqui el tipus d'instal·lació:
Seleccioni els components:
O seleccioni els components opcionals a instal·lar:
Seleccioni la carpeta on instal·lar %s:
Seleccioni la carpeta on instal·lar $(^Name):
Espai lliure:
Espai necessari:
Desinstal·lant de:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Igor Ostriz
Nullsoft Install System %s
%s Instalacija
%s Deinstalacija
$(^Name) Instalacija
$(^Name) Deinstalacija
: Licenenèni uvjeti
: Instalacijske opcije
: Instalacijska mapa
@ -36,7 +38,7 @@ Posebna
Izaberite tip instalacije:
Odaberite komponente za instalaciju:
Ili po izboru oznaèite komponente koje želite instalirati:
Odaberite mapu u koju želite instalirati program %s:
Odaberite mapu u koju želite instalirati program $(^Name):
Slobodno prostora na disku:
Potrebno prostora na disku:
Uklanjam iz:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by T.V. Zuggy (http://zuggy.wz.cz/)
Nullsoft Install System %s
Instalace programu %s
Odinstalování programu %s
Instalace programu $(^Name)
Odinstalování programu $(^Name)
: Licenční ujednání
: Možnosti instalace
: Umístění instalace
@ -36,7 +38,7 @@ Vlastn
Zvolte typ instalace:
Zvolte součásti pro instalaci:
Nebo zvolte jednotlivé součásti, které si přejete nainstalovat:
Zvolte adresář pro instalaci programu %s:
Zvolte adresář pro instalaci programu $(^Name):
Dostupné volné místo:
Potřebné volné místo:
Odinstalování z:

View file

@ -7,10 +7,12 @@ NLF v2
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Casper Bergenstoff
Nullsoft Installerings System %s
%s Setup
%s Afinstaller
$(^Name) Setup
$(^Name) Afinstaller
: Licens Aftale
: Installations egenskaber
: Installation mappe
@ -34,7 +36,7 @@ Tilpasset
Vælg hvilken type du vil installere:
Vælg komponenter du vil installere:
Eller, Vælg de udvalgte komponenter som du vil installere:
Vælg mappe du vil installere %s i:
Vælg mappe du vil installere $(^Name) i:
Plads til rådighed:
Krævet plads:
Afinstallerer fra:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Hendri Adriaens & Joost Verburg
Nullsoft Install System %s
%s Installatie
%s Deïnstallatie
$(^Name) Installatie
$(^Name) Deïnstallatie
: Licentie Overeenkomst
: Installatie Opties
: Installatie Map
@ -36,7 +38,7 @@ Handmatig
Selecteer het installatietype:
Selecteer de installatieonderdelen:
Of selecteer de onderdelen die geïnstalleerd moeten worden:
Selecteer de map om %s in te installeren:
Selecteer de map om $(^Name) in te installeren:
Beschikbare ruimte:
Vereiste ruimte:
Uninstallatie vanuit:

View file

@ -1,5 +1,5 @@
# Header, don't edit
NLF v5
NLF v6
# Start editing here
# Language ID
1033
@ -7,76 +7,185 @@ NLF v5
-
-
# Codepage - dash (-) means ANSI code page
# RTL - anything else than RTL means LTR
-
-
# Translation by ..... (any credits should go here)
# ^Branding
Nullsoft Install System %s
%s Setup
%s Uninstall
# ^SetupCaption
$(^Name) Setup
# ^UninstallCaption
$(^Name) Uninstall
# ^LicenseSubCaption
: License Agreement
# ^ComponentsSubCaption
: Installation Options
# ^DirSubCaption
: Installation Folder
# ^InstallingSubCaption
: Installing
# ^CompletedSubCaption
: Completed
# ^UnComponentsSubCaption
: Uninstallation Options
# ^UnDirSubCaption
: Uninstallation Folder
# ^ConfirmSubCaption
: Confirmation
# ^UninstallingSubCaption
: Uninstalling
# ^UnCompletedSubCaption
: Completed
# ^BackBtn
< &Back
# ^NextBtn
&Next >
# ^AgreeBtn
I &Agree
# ^AcceptBtn
I &accept the terms in the License Agreement
# ^DontAcceptBtn
I &do not accept the terms in the License Agreement
# ^InstallBtn
&Install
# ^UninstallBtn
&Uninstall
# ^CancelBtn
Cancel
# ^CloseBtn
&Close
# ^BrowseBtn
B&rowse...
# ^ShowDetailsBtn
Show &details
# ^ClickNext
Click Next to continue.
# ^ClickInstall
Click Install to start the installation.
# ^ClickUninstall
Click Uninstall to start the uninstallation.
# ^Name
Name
# ^Completed
Completed
# ^LicenseText
Please review the license agreement before installing $(^Name). If you accept all terms of the agreement, click I Agree.
# ^LicenseTextCB
Please review the license agreement before installing $(^Name). If you accept all terms of the agreement, click the check box below. $_CLICK
# ^LicesnseTextRB
Please review the license agreement before installing $(^Name). If you accept all terms of the agreement, select the first option below. $_CLICK
# ^UnLicenseText
Please review the license agreement before uninstalling $(^Name). If you accept all terms of the agreement, click I Agree.
# ^UnLicenseTextCB
Please review the license agreement before uninstalling $(^Name). If you accept all terms of the agreement, click the check box below. $_CLICK
# ^UnLicesnseTextRB
Please review the license agreement before uninstalling $(^Name). If you accept all terms of the agreement, select the first option below. $_CLICK
# ^Custom
Custom
# ^ComponentsText
Check the components you want to install and uncheck the components you don't want to install. $_CLICK
# ^ComponentsSubText1
Select the type of install:
# ^ComponentsSubText2_NoInstTypes
Select components to install:
# ^ComponentsSubText2
Or, select the optional components you wish to install:
Select the folder to install %s in:
Space available:
Space required:
# ^UnComponentsText
Check the components you want to uninstall and uncheck the components you don't want to uninstall. $_CLICK
# ^UnComponentsSubText1
Select the type of uninstall:
# ^UnComponentsSubText2_NoInstTypes
Select components to uninstall:
# ^UnComponentsSubText2
Or, select the optional components you wish to uninstall:
# ^DirText
Setup will install $(^Name) in the following folder. To install in a different folder, click Browse and select another folder. $_CLICK
# ^DirSubText
Destination Folder
# ^DirBrowseText
Select the folder to install $(^Name) in:
# ^UnDirText
Setup will uninstall $(^Name) from the following folder. To uninstall from a different folder, click Browse and select another folder. $_CLICK
# ^UnDirSubText
""
# ^UnDirBrowseText
Select the folder to uninstall $(^Name) from:
# ^SpaceAvailable
"Space available: "
# ^SpaceRequired
"Space required: "
# ^UninstallingText
This wizard will uninstall $(^Name) from your computer. $_CLICK
# ^UninstallingSubText
Uninstalling from:
Error opening file for writing: \r\n\t"$0"\r\nHit abort to abort installation,\r\nretry to retry writing the file, or\r\nignore to skip this file
Error opening file for writing: \r\n\t"$0"\r\nHit retry to retry writing the file, or\r\ncancel to abort installation
Can't write:
# ^FileError
Error opening file for writing: \r\n\t\"$0\"\r\nHit abort to abort installation,\r\nretry to retry writing the file, or\r\nignore to skip this file
# ^FileError_NoIgnore
Error opening file for writing: \r\n\t\"$0\"\r\nHit retry to retry writing the file, or\r\ncancel to abort installation
# ^CantWrite
"Can't write: "
# ^CopyFailed
Copy failed
Copy to
Registering:
Unregistering:
Could not find symbol:
Could not load:
Create folder:
Create shortcut:
Created uninstaller:
Delete file:
Delete on reboot:
Error creating shortcut:
Error creating:
# ^CopyTo
"Copy to "
# ^Registering
"Registering: "
# ^Unregistering
"Unregistering: "
# ^SymbolNotFound
"Could not find symbol: "
# ^CouldNotLoad
"Could not load: "
# ^CreateFolder
"Create folder: "
# ^CreateShortcut
"Create shortcut: "
# ^CreatedUninstaller
"Created uninstaller: "
# ^Delete
"Delete file: "
# ^DeleteOnReboot
"Delete on reboot: "
# ^ErrorCreatingShortcut
"Error creating shortcut: "
# ^ErrorCreating
"Error creating: "
# ^ErrorDecompressing
Error decompressing data! Corrupted installer?
# ^ErrorRegistering
Error registering DLL
ExecShell:
Execute:
Extract:
Extract: error writing to file
# ^ExecShell
"ExecShell: "
# ^Exec
"Execute: "
# ^Extract
"Extract: "
# ^ErrorWriting
"Extract: error writing to file "
# ^InvalidOpcode
Installer corrupted: invalid opcode
No OLE for:
Output folder:
Remove folder:
Rename on reboot:
Rename:
Skipped:
# ^NoOLE
"No OLE for: "
# ^OutputFolder
"Output folder: "
# ^RemoveFolder
"Remove folder: "
# ^RenameOnReboot
"Rename on reboot: "
# ^Rename
"Rename: "
# ^Skipped
"Skipped: "
# ^CopyDetails
Copy Details To Clipboard
# ^LogInstall
Log install process
# byte
# ^Byte
B
# kilo
# ^Kilo
K
# mega
# ^Mega
M
# giga
# ^Giga
G

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by izzo (izzo@hot.ee)
Nullsoft Install System %s
%s Paigaldamine
%s Eemaldamine
$(^Name) Paigaldamine
$(^Name) Eemaldamine
: Litsentsileping
: Paigaldusvalikud
: Paigalduskaust

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by AKX <akx@theakx.tk> - Modifications by Eclipser <Eclipser@pilvikaupunki.net>
Nullsoft Asennusjärjestelmä %s
%s Asennus
%s Poisto
$(^Name) Asennus
$(^Name) Poisto
: Lisenssisopimus
: Asennusvaihtoehdot
: Asennushakemisto
@ -36,7 +38,7 @@ Oma
Valitse asennustyyppi:
Valitse asennettavat komponentit:
Tai, valitse valinnaiset komponentit:
Valitse hakemisto, johon %s asennetaan:
Valitse hakemisto, johon $(^Name) asennetaan:
Tilaa vapaana:
Tarvittava tila:
Poistetaan hakemistosta:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by the French NSIS team <veekee@winampfr.com> - http://www.winampfr.com/nsis.
Nullsoft Install System %s
Installation de %s
Désinstallation de %s
Installation de $(^Name)
Désinstallation de $(^Name)
: Licence
: Options d'installation
: Dossier d'installation
@ -36,7 +38,7 @@ Personnalis
Sélectionnez le type d'installation :
Sélectionnez les composants à installer :
Ou, sélectionnez les composants optionnels que vous voulez installer :
Sélectionnez le dossier d'installation de %s :
Sélectionnez le dossier d'installation de $(^Name) :
Espace disponible :
Espace requis :
Désinstallation de :

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by L.King, changes by R. Bisswanger
Nullsoft Install System %s
%s Installation
%s Deinstallation
$(^Name) Installation
$(^Name) Deinstallation
: Lizenzabkommen
: Installations-Optionen
: Zielverzeichnis
@ -36,7 +38,7 @@ Benutzerdefiniert
Installations-Typ bestimmen:
Wählen Sie die Komponenten aus, die Sie installieren möchten:
oder wählen Sie zusätzliche Komponenten aus:
Wählen Sie das Verzeichnis aus, in das Sie %s installieren möchten:
Wählen Sie das Verzeichnis aus, in das Sie $(^Name) installieren möchten:
Verfügbarer Speicher:
Benötigter Speicher:
Deinstalliere aus:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Makidis N. Mike
Nullsoft Install System %s
Εγκατάσταση του '%s'
Απεγκατάσταση του '%s'
Εγκατάσταση του '$(^Name)'
Απεγκατάσταση του '$(^Name)'
: Συμφωνία ’δειας Χρήσης
: Επιλογές Εγκατάστασης
: Φάκελος Εγκατάστασης
@ -36,7 +38,7 @@ Nullsoft Install System %s
Επιλέξτε τύπο εγκατάστασης:
Επιλέξτε τα στοιχεία που θέλετε να εγκαταστήσετε:
Ή, επιλέξτε τα προαιρετικά στοιχεία που θέλετε να εγκαταστήσετε:
Επιλέξτε το φάκελο εγκατάστασης για το '%s':
Επιλέξτε το φάκελο εγκατάστασης για το '$(^Name)':
Διαθέσιμος χώρος:
Απαιτούμενος χώρος:
Απεγκατάστ. από:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
RTL
# Translation by Amir Szekely (aka KiCHiK)
Nullsoft Install System %s
התקנת %s
הסרת %s
התקנת $(^Name)
הסרת $(^Name)
: הסכם רישוי
: אפשרויות התקנה
: תיקיית התקנה
@ -19,8 +21,8 @@ Nullsoft Install System %s
: אישור הסרה
: מסיר
: ההסרה הושלמה
< ה&קודם
ה&בא >
ה&קודם >
< ה&בא
אני &מסכים
אני &מסכים לתנאי הסכם הרישוי
אני &לא מסכים לתנאי הסכם הרישוי
@ -28,20 +30,20 @@ Nullsoft Install System %s
&הסר
ביטול
סגור&
&עיין...
...&עיין
ה&צג פרטים
שם
הפעולה הושלמה
מותאם אישית
בחר סוג התקנה:
בחר רכיבים להתקנה:
או, בחר רכיבי רשות להתקנה:
בחר תיקייה להתקנת %s:
:בחר סוג התקנה
:בחר רכיבים להתקנה
:או, בחר רכיבי רשות להתקנה
:בחר תיקייה להתקנת $(^Name)
מקום פנוי:
מקום דרוש:
מסיר מ:
:מסיר מ
ארעה שגיאה בעת פתיחת קובץ לכתיבה:\r\n\t"$0"\r\nלחץ על ביטול כדי לבטל את ההתקנה,\r\nנסה שנית כדי לנסות לפתוח את הקובץ שוב, או\r\nהתעלם כדי לדלג על הקובץ
ארעה שגיאה בעת פתיחת קובץ לכתיבה:\r\n\t"$0"\r\nלחץ על נסה שנית כדי לנסות לפתוח את הקובץ שוב, או\r\nביטול עדי לבטל את התתקנה
ארעה שגיאה בעת פתיחת קובץ לכתיבה:\r\n\t"$0"\r\nלחץ על נסה שנית כדי לנסות לפתוח את הקובץ שוב, או\r\nביטול כדי לבטל את התתקנה
לא ניתן לכתוב:
ההעתקה נכשלה
העתק ל-
@ -74,8 +76,8 @@ Nullsoft Install System %s
# byte
# kilo
ק
ק
# mega
מ
מ
# giga
ג
ג

View file

@ -7,11 +7,13 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Soft-Trans Bt. (V2)
# Translation by Orfanik Kft. (V3-V5)
Nullsoft Telepítőrendszer %s
%s Telepítő
%s Eltávolító
$(^Name) Telepítő
$(^Name) Eltávolító
: Licencszerződés
: Telepítési lehetőségek
: Célmappa
@ -37,7 +39,7 @@ Egy
Válassza ki a telepítés típusát:
Válassza ki a telepítendő összetevőket:
vagy, jelölje ki a választható összetevők közül a telepíteni kívánta(ka)t:
Melyik mappába telepíti a(z) %s fájlt:
Melyik mappába telepíti a(z) $(^Name) fájlt:
Szabad terület:
Helyigény:
Eltávolítás helye:

View file

@ -7,10 +7,12 @@ NLF v2
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Orfanik - http://www.orfanik.hu
Nullsoft Install System %s
Installazione di %s
Disinstallazione di %s
Installazione di $(^Name)
Disinstallazione di $(^Name)
: Licenza d'uso
: Opzioni di installazione
: Cartella di installazione
@ -34,7 +36,7 @@ Personalizzata
Seleziona il tipo d'installazione :
Seleziona i componenti da installare :
Oppure, seleziona i componenti opzionali che vuoi installare :
Seleziona la cartella dove installare %s :
Seleziona la cartella dove installare $(^Name) :
Spazio disponibile :
Spazio necessario :
Rimozione da :

View file

@ -7,10 +7,12 @@ NLF v5
9
# Codepage - dash (-) means ANSI code page
932
# RTL - anything else than RTL means LTR
-
# Translation by Dnanako, updated by Takahiro Yoshimura <takahiro_y@monolithworks.co.jp>
Nullsoft Install System %s
%s セットアップ
%s アンインストール
$(^Name) セットアップ
$(^Name) アンインストール
:ライセンス契約書
:インストール オプション
:インストール フォルダ
@ -36,7 +38,7 @@ Nullsoft Install System %s
インストール タイプを選択:
インストール コンポーネントを選択:
または、インストール オプション コンポーネントを選択:
%s をインストールするフォルダを選択してください:
$(^Name) をインストールするフォルダを選択してください:
利用可能なディスクスペース:
必要なディスクスペース:
アンインストール元:

View file

@ -8,10 +8,12 @@ NLF v5
9
# Codepage - dash (-) means ANSI code page
949
# RTL - anything else than RTL means LTR
-
# Translation by dTomoyo <dtomoyo@empal.com> - http://user.chol.com/~ckgfx / Modified by koder@popdesk.co.kr
널소프트 설치 시스템 %s
%s 설치
%s 제거
$(^Name) 설치
$(^Name) 제거
: 사용 계약 동의
: 설치 옵션
: 폴더 지정
@ -37,7 +39,7 @@ NLF v5
설치 형태를 선택하세요:
설치하려는 구성 요소를 선택하세요:
구성요소 직접 선택:
%s (을)를 다음 폴더에 설치합니다:
$(^Name) (을)를 다음 폴더에 설치합니다:
남은 디스크 공간:
필요한 디스크 공간:
제거 대상:

View file

@ -7,10 +7,12 @@ NLF v3
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by NorCis
Nullsoft Install System %s
%s Idiegimas
%s Panaikinti
$(^Name) Idiegimas
$(^Name) Panaikinti
: Naudojimo sutartis
: Idiegimo nustatymai
: Idiegimo katalogas
@ -36,7 +38,7 @@ Kitoks
Pasirinkite idiegimo tipa:
Pasirinkite komponentus, kuriuos idiegti:
Arba, pasirinkite neprivalomus komponentus, kuriuos jus norite idiegti:
Pasirinkite kataloga, kur idiegti %s:
Pasirinkite kataloga, kur idiegti $(^Name):
Yra vietos:
Reikia vietos:
Trinama iš:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Sasko Zdravkin [vardarce@mail.com]
Nullsoft Install System %s
%s Инсталирање
%s Деинсталирање
$(^Name) Инсталирање
$(^Name) Деинсталирање
: Лиценцен Договор
: Инсталациони опции
: Инсталационен директориум
@ -36,7 +38,7 @@ Nullsoft Install System %s
Одберето го видот на инсталацијата:
Одберете компоненти за инсталирање:
Или, одберете одредени компоненти за инсталирање:
Одберете го директориумот за инсталирање на %s:
Одберете го директориумот за инсталирање на $(^Name):
Слободен простор:
Потребен простор:
Деинсталирај од:

View file

@ -7,11 +7,13 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
1250
# RTL - anything else than RTL means LTR
-
# Translation by Piotr Murawski & Rafał Lampe <ppiter@skrzynka.pl> - www.lomsel.prv.pl
# corrections, additions, updates by cube cube(at)lp.net.pl
Nullsoft Install System %s
%s Instalator
%s Odinstaluj
$(^Name) Instalator
$(^Name) Odinstaluj
: Warunki licencji
: Opcje instalacji
: Folder instalacji
@ -37,7 +39,7 @@ U
Wybierz typ instalacji:
Wybierz komponenty do zainstalowania:
lub wybierz opcjonalne komponenty, które chcesz zainstalować:
Wybierz folder instalacji %s:
Wybierz folder instalacji $(^Name):
Dostępne miejsce:
Wymagane miejsce:
Odinstalowuje z:

View file

@ -8,10 +8,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
1252
# RTL - anything else than RTL means LTR
-
# Translation v4.0.3 by DragonSoull <dragonsoull@madalien.tk> with help from Dre` - Updated by Ramon
Sistema de Instalação Nullsoft %s
Instalação de %s
Desinstalação de %s
Instalação de $(^Name)
Desinstalação de $(^Name)
: Contrato de Licença
: Opções de instalação
: Directoria de instalação
@ -37,7 +39,7 @@ Personalizada
Escolha o tipo de instalação:
Escolha os componentes a instalar:
Ou, escolha os componentes opcionais que deseja instalar:
Escolha a directoria a instalar %s:
Escolha a directoria a instalar $(^Name):
Espaço disponível:
Espaço necessário:
A Desinstalar de:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Diego Marcos <jump@osite.com.br>
Sistema de Instalação Nullsoft %s
Instalação do %s
Desinstalação do %s
Instalação do $(^Name)
Desinstalação do $(^Name)
: Contrato de Licença
: Opções de instalação
: Diretório de instalação
@ -36,7 +38,7 @@ Personalizado
Escolha o tipo de instalação:
Escolha os componentes para instalar:
Ou, selecione os componentes opcionais que deseja instalar:
Escolha o diretório para instalar %s:
Escolha o diretório para instalar $(^Name):
Espaço disponível:
Espaço necessário:
Desinstalando de:

View file

@ -7,12 +7,14 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
1250
# RTL - anything else than RTL means LTR
-
# Revision by Sorin Sbarnea (sorin@intersol.ro) v5.1
# Translation by Cristian Pirvu (pcristip@yahoo.com) v5
# and Sorin Sbarnea INTERSOL SRL (sorin@intersol.ro) v4
Sistem de instalare Nullsoft %s
Instalare %s
Dezinstalare %s
Instalare $(^Name)
Dezinstalare $(^Name)
: Licenta de utilizare
: Optiuni de instalare
: Directorul de instalare
@ -38,7 +40,7 @@ Nestandard
Alegeti tipul instalarii:
Alegeti componentele de instalat:
Sau alegeti componentele optionale pe care vreti sa le instalati:
Selectati directorul In care vreti sa instalati %s:
Selectati directorul In care vreti sa instalati $(^Name):
Spatiu disponibil:
Spatiu necesar:
Dezinstaleaza din:

View file

@ -8,10 +8,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Timon [ timon@front.ru ] + 20030720
Nullsoft Install System %s
%s Установка
%s Удаление
$(^Name) Установка
$(^Name) Удаление
: Лицензионное соглашение
: Опции установки
: Директория установки
@ -37,7 +39,7 @@ Nullsoft Install System %s
Выберите тип установки:
Выберите компоненты для установки:
Или, выберите вручную компоненты, которые Вы желаете установить:
Выберите директорию для установки %s в:
Выберите директорию для установки $(^Name) в:
Доступно места:
Необходимо места:
Удаление из:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Vladan "vladano@EUnet.yu" Obradovic
Nullsoft Install System %s
%s Instalacija
%s Deinstalacija
$(^Name) Instalacija
$(^Name) Deinstalacija
: Uslovi Licence
: Installacione Opcije
: Installacioni Direktorijum
@ -36,7 +38,7 @@ Posebno
Odaberi tip instalacije:
Odaberi komponente koje želiš instalirati:
Ili, odaberi opcione komponente koje želiš instalirati:
Odaberi direktorijum u koji želiš instalirati %s:
Odaberi direktorijum u koji želiš instalirati $(^Name):
Slobodno na disku:
Potrebno na disku:
Deinstaliram iz:

View file

@ -7,10 +7,12 @@ NLF v5
9
# Codepage - dash (-) means ANSI code page ANSI 字码页
936
# RTL - anything else than RTL means LTR
-
# Translation by Kii Ali <kiiali@cpatch.org>, Revision Date: 2003-05-30
Nullsoft Install System %s
%s 安装
%s 解除安装
$(^Name) 安装
$(^Name) 解除安装
: 授权条款
: 安装选项
: 安装文件夹
@ -36,7 +38,7 @@ Nullsoft Install System %s
选定安装的类型:
选定安装的组件:
或者,自定义选定想安装的组件:
选定要安装 %s 的文件夹:
选定要安装 $(^Name) 的文件夹:
可用空间:
所需空间:
解除安装目录:

View file

@ -7,10 +7,12 @@ NLF v3
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by trace & Kypec
Nullsoft Install System %s
Inštalácia %s
Odinštalácia %s
Inštalácia $(^Name)
Odinštalácia $(^Name)
: Licenèná zmluva
: Možnosti inštalácie
: Adresár inštalácie
@ -36,7 +38,7 @@ Vlastn
Zvo¾te typ inštalácie:
Zvo¾te komponenty, ktoré sa majú nainštalova<76>:
Alebo, vyberte volite¾né komponenty, ktoré sa majú nainštalova<76>:
Zvo¾te adresár do ktorého sa má %s nainštalova<76>:
Zvo¾te adresár do ktorého sa má $(^Name) nainštalova<76>:
Vo¾ný priestor:
Potrebný priestor:
Odinštalovávam z:

View file

@ -8,10 +8,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Janez Dolinar
Nullsoft Install System %s
%s Namestitev
%s Odstranitev
$(^Name) Namestitev
$(^Name) Odstranitev
: Licenčna pogodba
: Možnosti namestitve
: Mapa namestitve
@ -37,7 +39,7 @@ Po meri
Izberite tip namestitve:
Izberite bloke namestitve:
Ali si izberite bloke namestitve, ki jih želite:
Izberi mapo za namestitev %s:
Izberi mapo za namestitev $(^Name):
Prosto:
Zahtevano:
Odstranjujem iz:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by MoNKi
Nullsoft Install System %s
Instalación de %s
Desinstalación de %s
Instalación de $(^Name)
Desinstalación de $(^Name)
: Acuerdo de Licencia
: Opciones de Instalación
: Directorio de Instalación
@ -36,7 +38,7 @@ Personalizada
Indique el tipo de instalación:
Seleccione los componentes:
O seleccione los componentes opcionales a instalar:
Seleccione el directorio en el que instalar %s:
Seleccione el directorio en el que instalar $(^Name):
Espacio disponible:
Espacio requerido:
Desinstalando desde:

View file

@ -8,10 +8,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Magnus Bonnevier (magnus.bonnevier@telia.com)
Nullsoft Install System %s
%s Setup
%s Avinstallation
$(^Name) Setup
$(^Name) Avinstallation
: Licens Avtal
: Installations Val
: Installations Katalog
@ -37,7 +39,7 @@ Custom
Välj typ av installation:
Välj komponenter att installera:
Eller, välj alternativa komponenter du önskar installera:
Välj katalog att installera %s i:
Välj katalog att installera $(^Name) i:
Ytrymme tillgängligt:
Ytrymme som behövs:
Avinstallerar från:

View file

@ -7,10 +7,12 @@ NLF v2
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by TuW@nNu tuwannu@hotmail.com (asdfuae)
Nullsoft Install System %s
%s オヤエオム鬧
%s カヘケ。メテオヤエオム鬧
$(^Name) µÔ´µÑé§
$(^Name) ¶Í¹¡ÒõԴµÑé§
: ㈤偷о米柰<E7B1B3>寓试犯造
: 笛青抛汀∫玫源笛椐
: 饪培赐渺氛璧源笛椐
@ -34,7 +36,7 @@ Nullsoft Install System %s
嗯淄倩岷骸颐翟吹验<EFBFBD>:
嗯淄·土饩喙沟旆砧甸艇∫玫源笛椐:
嗯淄·土饩喙沟焱阻规氛璧橥А颐翟吹验<EFBFBD>:
耆魴ヤエオム鬧 %s ナァ羯:
ãËéµÔ´µÑé§ $(^Name) ŧã¹:
喙组头砧氛栲伺淄:
喙组头砧氛璧橥А颐:
锻埂颐翟吹验Ж摇:

View file

@ -7,10 +7,12 @@ NLF v5
9
# Codepage - dash (-) means ANSI code page ANSI 字碼頁
950
# RTL - anything else than RTL means LTR
-
# Translation by Kii Ali <kiiali@cpatch.org>, Revision Date: 2003-05-30
Nullsoft Install System %s
%s 安裝
%s 解除安裝
$(^Name) 安裝
$(^Name) 解除安裝
: 授權條款
: 安裝選項
: 安裝資料夾
@ -36,7 +38,7 @@ Nullsoft Install System %s
選取安裝的類型:
選取安裝的元件:
或者,自訂選取想安裝的元件:
選取要安裝 %s 的資料夾:
選取要安裝 $(^Name) 的資料夾:
可用空間:
所需空間:
解除安裝目錄:

View file

@ -7,10 +7,12 @@ NLF v5
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Fatih BOY (fatih@smartcoding.org)
Nullsoft Kurulum Sistemi %s
%s Kurulumu
%s Uninstaller
$(^Name) Kurulumu
$(^Name) Uninstaller
: Sözlesme
: Kurulum Ayarlari
: Kurulum Dizini
@ -36,7 +38,7 @@ Tamamlandi
Kurulum seklini seçiniz:
Kurulacak paketleri seçiniz:
Veya, kurmak istediginiz paketleri seçiniz:
%s kurulumu için bir dizin seçin:
$(^Name) kurulumu için bir dizin seçin:
Kalan bos alan:
Gerekli bos alan:
Kaldiriliyor:

View file

@ -7,10 +7,12 @@ NLF v4
-
# Codepage - dash (-) means ANSI code page
-
# RTL - anything else than RTL means LTR
-
# Translation by Yuri Holubow, Nash-Soft.com <http://www.Nash-Soft.com/home>
Nullsoft Install System %s
%s Установка
%s Видалення
$(^Name) Установка
$(^Name) Видалення
: Лiцензiйна угода
: Опцiї установки
: Директорiя установки
@ -36,7 +38,7 @@ I
Виберiть тип установки:
Виберiть компоненти для установки:
Чи, виберiть вручну компоненти, якi Ви хочете встановити:
Виберiть директорiю для установки %s в:
Виберiть директорiю для установки $(^Name) в:
Доступно мiсця:
Необхiдно мiсця:
Видалення з:

View file

@ -2,7 +2,7 @@ StartMenu.dll shows a custom page that lets the user select a start menu program
folder to put shortcuts in.
To show the dialog use the Select function. This function has one required parameter
which is the program group default name, and some more optional parameters:
which is the program group default name, and some more optional switches:
/autoadd - automatically adds the program name to the selected folder
/noicon - doesn't show the icon in the top left corner
/text [please select...] - sets the top text to something else than
@ -14,13 +14,20 @@ which is the program group default name, and some more optional parameters:
the user checks this box, the return value
will have > as its first character and you
should not create the program group.
/rtl - sets the direction of every control on the selection dialog
to RTL. This means every text shown on the page will be
justified to the right.
The order of the switches doesn't matter but the required parameter must come after
all of them. Every switch after the required parameter will be ignored and left
on the stack.
The function pushes "success", "cancel" or an error to the stack. If there was no
error and the user didn't press on cancel it will push the selected folder name
after "success". If the user checked the no shortcuts checkbox the '>' will be
appended to the folder name. The function does not push the full path but only the
selected sub-folder. It's up to you to decide if to put it in the current user or
all users start menu.
after "success". If the user checked the no shortcuts checkbox the result will be
prefixed with '>'. The function does not push the full path but only the selected
sub-folder. It's up to you to decide if to put it in the current user or all
users start menu.
Look at Example.nsi for an example.

View file

@ -22,6 +22,7 @@ char checkbox[1024];
int autoadd = 0;
int g_done = 0;
int noicon = 0;
int rtl = 0;
void *lpWndProcOld;
@ -54,6 +55,10 @@ void __declspec(dllexport) Select(HWND hwndParent, int string_size, char *variab
{
noicon = 1;
}
else if (!lstrcmpi(buf+1, "rtl"))
{
rtl = 1;
}
else if (!lstrcmpi(buf+1, "text"))
{
popstring(text);
@ -73,7 +78,8 @@ void __declspec(dllexport) Select(HWND hwndParent, int string_size, char *variab
if (popstring(buf))
*buf = 0;
}
if (*buf) lstrcpy(progname, buf);
if (*buf)
lstrcpy(progname, buf);
else
{
pushstring("error reading parameters");
@ -145,16 +151,22 @@ BOOL CALLBACK dlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
int y_offset = 0;
int width, height;
GetWindowRect(hwChild, &dialog_r);
ScreenToClient(hwParent, (LPPOINT) &dialog_r);
ScreenToClient(hwParent, ((LPPOINT) &dialog_r)+1);
width = dialog_r.right - dialog_r.left;
height = dialog_r.bottom - dialog_r.top;
SetWindowPos(
hwndDlg,
0,
dialog_r.left,
dialog_r.top,
dialog_r.right - dialog_r.left,
dialog_r.bottom - dialog_r.top,
width,
height,
SWP_NOZORDER | SWP_NOACTIVATE
);
@ -171,6 +183,19 @@ BOOL CALLBACK dlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
SendMessage(hwDirList, WM_SETFONT, (WPARAM) hFont, TRUE);
SendMessage(hwCheckBox, WM_SETFONT, (WPARAM) hFont, TRUE);
if (rtl)
{
long s;
s = GetWindowLong(hwText, GWL_STYLE);
SetWindowLong(hwText, GWL_STYLE, (s & ~SS_LEFT) | SS_RIGHT);
s = GetWindowLong(hwLocation, GWL_STYLE);
SetWindowLong(hwLocation, GWL_STYLE, (s & ~ES_LEFT) | ES_RIGHT);
s = GetWindowLong(hwDirList, GWL_EXSTYLE);
SetWindowLong(hwDirList, GWL_EXSTYLE, s | WS_EX_RIGHT | WS_EX_RTLREADING);
s = GetWindowLong(hwCheckBox, GWL_STYLE);
SetWindowLong(hwCheckBox, GWL_STYLE, s | BS_RIGHT | BS_LEFTTEXT);
}
if (!noicon)
{
SendMessage(
@ -180,39 +205,50 @@ BOOL CALLBACK dlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
(LPARAM)LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(103))
);
}
GetClientRect(hwIcon, &temp_r);
SetWindowPos(
hwIcon,
0,
rtl ? width - temp_r.right : 0,
0,
0,
32,
32,
temp_r.right,
temp_r.bottom,
SWP_NOACTIVATE | (noicon ? SWP_HIDEWINDOW : 0)
);
if (!*text)
lstrcpy(text, "Select the Start Menu folder in which you would like to create the program's shortcuts:");
//GetWindowRect(hwIcon, &temp_r);
//ScreenToClient(hwndDlg, ((LPPOINT) &temp_r));
//ScreenToClient(hwndDlg, ((LPPOINT) &temp_r) + 1);
GetWindowRect(hwIcon, &temp_r);
temp_r.right += 5;
temp_r.bottom += 5;
ScreenToClient(hwndDlg, ((LPPOINT) &temp_r) + 1);
if (rtl)
{
ProgressiveSetWindowPos(
hwText,
0,
width - (noicon ? 0 : temp_r.right + 5),
temp_r.bottom + 2
);
}
else
{
ProgressiveSetWindowPos(
hwText,
noicon ? 0 : temp_r.right + 5,
width - (noicon ? 0 : temp_r.right + 5),
temp_r.bottom + 2
);
}
ProgressiveSetWindowPos(
hwText,
noicon ? 0 : temp_r.right,
dialog_r.right - dialog_r.left - (noicon ? 0 : temp_r.right),
temp_r.bottom + 2
);
SetWindowText(hwText, text);
SetWindowText(hwText, *text ? text : "Select the Start Menu folder in which you would like to create the program's shortcuts:");
GetWindowRect(hwLocation, &temp_r);
ProgressiveSetWindowPos(
hwLocation,
0,
dialog_r.right - dialog_r.left,
width,
temp_r.bottom - temp_r.top
);
@ -233,14 +269,14 @@ BOOL CALLBACK dlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
ProgressiveSetWindowPos(
hwDirList,
0,
dialog_r.right - dialog_r.left,
dialog_r.bottom - dialog_r.top - y_offset - (*checkbox ? temp_r.bottom - temp_r.top + 5 : 0)
width,
height - y_offset - (*checkbox ? temp_r.bottom - temp_r.top + 5 : 0)
);
ProgressiveSetWindowPos(
hwCheckBox,
0,
dialog_r.right - dialog_r.left,
width,
temp_r.bottom - temp_r.top
);

View file

@ -54,7 +54,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /entry:"_DllMainCRTStartup" /dll /machine:I386 /nodefaultlib /out:"../../Plugins/StartMenu.dll" /opt:nowin98
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /entry:"_DllMainCRTStartup" /dll /map /machine:I386 /nodefaultlib /out:"../../Plugins/StartMenu.dll" /opt:nowin98
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "StartMenu - Win32 Debug"

View file

@ -17,11 +17,12 @@
#define PCD_PARAMS 2
#define PCD_DONE 3 // Just Continue
int ParamSizeByType[6] = {0, // PAT_VOID (Size will be equal to 1)
int ParamSizeByType[7] = {0, // PAT_VOID (Size will be equal to 1)
1, // PAT_INT
2, // PAT_LONG
1, // PAT_STRING
1, // PAT_BOOLEAN
1, // PAT_WSTRING
1, // PAT_GUID
0}; // PAT_CALLBACK (Size will be equal to 1)
int z1, z2; // I've made them static for easier use at callback procs
@ -36,7 +37,6 @@ HINSTANCE g_hInstance;
char retexpr[3] = {0xC2, 0x00, 0x00};
HANDLE retaddr;
char *GetResultStr(SystemProc *proc)
{
char *buf = AllocString();
@ -180,6 +180,7 @@ PLUGINFUNCTION(Call)
proc = CallBack(proc);
break;
case PT_PROC:
case PT_VTABLEPROC:
proc = CallProc(proc); break;
case PT_STRUCT:
CallStruct(proc); break;
@ -253,7 +254,8 @@ PLUGINFUNCTIONSHORT(Int64Op)
case '%':
// It's unclear, but in this case compiler will use DivMod rountine
// instead of two separate Div and Mod rountines.
i3 = i1 / i2; i4 = i1 % i2;
if (i2 == 0) { i3 = 0; i4 = i1; }
else {i3 = i1 / i2; i4 = i1 % i2; }
if (*op == '/') i1 = i3; else i1 = i4;
break;
case '|': if (op[1] == '|') i1 = i1 || i2; else i1 |= i2; break;
@ -306,7 +308,12 @@ SystemProc *PrepareProc(BOOL NeedForCall)
{
case 0x0: SectionType = -1; break;
case '#': SectionType = PST_PROC; ProcType = PT_NOTHING; break;
case '(': SectionType = PST_PARAMS; ParamIndex = 1; temp3 = temp = 0; break;
case '(':
SectionType = PST_PARAMS;
// fake-real parameter: for COM interfaces first param is Interface Pointer
ParamIndex = ((ProcType == PT_VTABLEPROC)?(2):(1));
temp3 = temp = 0;
break;
case ')': SectionType = PST_RETURN; temp3 = temp = 0; break;
case '?': SectionType = PST_OPTIONS; temp = 1; break;
}
@ -364,6 +371,7 @@ SystemProc *PrepareProc(BOOL NeedForCall)
}
break;
case PT_PROC:
case PT_VTABLEPROC:
lstrcpy(proc->ProcName, cbuf);
lstrcpy(proc->DllName, sbuf);
break;
@ -389,8 +397,16 @@ SystemProc *PrepareProc(BOOL NeedForCall)
switch (*ib)
{
case ':':
case '-':
// Is it '::'
if (*(ib+1) != ':') break;
if ((*(ib) == '-') && (*(ib+1) == '>'))
{
ProcType = PT_VTABLEPROC;
} else
{
if ((*(ib+1) != ':') || (*(ib) == '-')) break;
ProcType = PT_PROC;
}
ib++; // Skip next ':'
if (cb > cbuf)
@ -400,7 +416,6 @@ SystemProc *PrepareProc(BOOL NeedForCall)
} else *sbuf = 0; // No dll - system proc
// Ok
ProcType = PT_PROC;
ChangesDone = PCD_DONE;
break;
case '*':
@ -442,8 +457,10 @@ SystemProc *PrepareProc(BOOL NeedForCall)
case 'L': temp2 = PAT_LONG; break;
case 't':
case 'T': temp2 = PAT_STRING; break;
case 'b':
case 'B': temp2 = PAT_BOOLEAN; break;
case 'g':
case 'G': temp2 = PAT_GUID; break;
case 'w':
case 'W': temp2 = PAT_WSTRING; break;
case 'k':
case 'K': temp2 = PAT_CALLBACK; break;
@ -589,6 +606,32 @@ SystemProc *PrepareProc(BOOL NeedForCall)
switch (proc->ProcType)
{
case PT_NOTHING: break;
case PT_VTABLEPROC:
{
// Use direct system proc address
int addr;
if ((proc->Dll = addr = (HANDLE) myatoi(proc->DllName)) == 0)
{
proc->ProcResult = PR_ERROR;
break;
}
// fake-real parameter: for COM interfaces first param is Interface Pointer
proc->Params[1].Output = IOT_NONE;
proc->Params[1].Input = AllocStr(proc->DllName);
proc->Params[1].Size = 1;
proc->Params[1].Type = PAT_INT;
proc->Params[1].Option = 0;
// addr - pointer to interface vtable
addr = *((int *)addr);
// now addr contains the pointer to first item at VTABLE
// add the index of proc
addr = addr + (myatoi(proc->ProcName)*4);
proc->Proc = *((HANDLE*)addr);
}
break;
case PT_PROC:
if (*proc->DllName == 0)
{
@ -607,7 +650,12 @@ SystemProc *PrepareProc(BOOL NeedForCall)
// Get proc address
if ((proc->Proc = GetProcAddress(proc->Dll, proc->ProcName)) == NULL)
proc->ProcResult = PR_ERROR;
{
// automatic A discover
lstrcat(proc->ProcName, "A");
if ((proc->Proc = GetProcAddress(proc->Dll, proc->ProcName)) == NULL)
proc->ProcResult = PR_ERROR;
}
}
break;
case PT_STRUCT:
@ -634,6 +682,7 @@ void ParamsIn(SystemProc *proc)
{
int i, *place;
char *realbuf;
LPWSTR wstr;
i = (proc->ParamCount > 0)?(1):(0);
while (TRUE)
@ -654,7 +703,10 @@ void ParamsIn(SystemProc *proc)
// Retreive pointer to place
if (proc->Params[i].Option == -1) place = (int*) proc->Params[i].Value;
else place = (int*) &(proc->Params[i].Value);
// by default no blocks are allocated
proc->Params[i].allocatedBlock = NULL;
// Step 2: place it
switch (proc->Params[i].Type)
{
@ -671,10 +723,19 @@ void ParamsIn(SystemProc *proc)
/* if (proc->Params[i].Input == IOT_NONE)
*((int*) place) = (int) NULL;
else*/
*((int*) place) = (int) AllocStr(realbuf);
*((int*) place) = (int) (proc->Params[i].allocatedBlock = AllocStr(realbuf));
break;
case PAT_BOOLEAN:
*((int*) place) = lstrcmpi(realbuf, "true");
case PAT_WSTRING:
case PAT_GUID:
wstr = (LPWSTR) (proc->Params[i].allocatedBlock = GlobalAlloc(GPTR, g_stringsize*2));
MultiByteToWideChar(CP_ACP, 0, realbuf, g_stringsize, wstr, g_stringsize);
if (proc->Params[i].Type == PAT_GUID)
{
*((HGLOBAL*)place) = (proc->Params[i].allocatedBlock = GlobalAlloc(GPTR, 16));
CLSIDFromString(wstr, *((LPCLSID*)place));
GlobalFree((HGLOBAL) wstr);
} else
*((LPWSTR*)place) = wstr;
break;
case PAT_CALLBACK:
// Generate new or use old callback
@ -718,6 +779,7 @@ void ParamsOut(SystemProc *proc)
{
int i, *place;
char *realbuf;
LPWSTR wstr;
i = proc->ParamCount;
do
@ -745,17 +807,29 @@ void ParamsOut(SystemProc *proc)
int num = lstrlen(*((char**) place));
if (num >= g_stringsize) num = g_stringsize-1;
lstrcpyn(realbuf,*((char**) place), num+1);
realbuf[num] = 0;
realbuf[num] = 0;
}
break;
case PAT_BOOLEAN:
lstrcpy(realbuf,(*((int*) place))?("true"):("false"));
case PAT_GUID:
wstr = (LPWSTR) GlobalAlloc(GPTR, g_stringsize*2);
StringFromGUID2(*((REFGUID*)place), wstr, g_stringsize*2);
WideCharToMultiByte(CP_ACP, 0, wstr, g_stringsize, realbuf, g_stringsize, NULL, NULL);
GlobalFree((HGLOBAL)wstr);
break;
case PAT_WSTRING:
wstr = *((LPWSTR*)place);
WideCharToMultiByte(CP_ACP, 0, wstr, g_stringsize, realbuf, g_stringsize, NULL, NULL);
break;
case PAT_CALLBACK:
wsprintf(realbuf, "%d", proc->Params[i].Value);
break;
}
// memory cleanup
if ((proc->Params[i].allocatedBlock != NULL) && ((proc->ProcType != PT_STRUCT)
|| (proc->Params[i].Option > 0)))
GlobalFree(proc->Params[i].allocatedBlock);
// Step 2: place it
if (proc->Params[i].Output == IOT_NONE);
else if (proc->Params[i].Output == IOT_STACK) pushstring(realbuf);
@ -1160,7 +1234,11 @@ void CallStruct(SystemProc *proc)
// pointer
ptr = (char*) &(proc->Params[i].Value);
break;
case PAT_STRING: ptr = (char*) proc->Params[i].Value; break;
case PAT_STRING:
case PAT_GUID:
case PAT_WSTRING:
ptr = (char*) proc->Params[i].Value; break;
}
}

View file

@ -18,6 +18,7 @@
#define PT_NOTHING 0
#define PT_PROC 1
#define PT_STRUCT 2
#define PT_VTABLEPROC 3
// Proc results:
#define PR_OK 0
@ -29,8 +30,9 @@
#define PAT_INT 1
#define PAT_LONG 2
#define PAT_STRING 3
#define PAT_BOOLEAN 4
#define PAT_CALLBACK 5
#define PAT_WSTRING 4
#define PAT_GUID 5
#define PAT_CALLBACK 6
// Input/Output Source/Destination
#define IOT_NONE 0
@ -58,6 +60,7 @@ typedef struct
int Size; // Value real size (should be either 1 or 2 (the number of pushes))
int Input;
int Output;
HGLOBAL allocatedBlock; // block allocated for passing string, wstring or guid param
} ProcParameter;
// Our single proc (Since the user will free proc with GlobalFree,

View file

@ -1,12 +1,12 @@
Microsoft Visual Studio Solution File, Format Version 7.00
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "System", "System.vcproj", "{2FB013AB-6FD4-4239-9974-C999F4DFD70C}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
ConfigName.0 = Debug
ConfigName.1 = Release
EndGlobalSection
GlobalSection(ProjectDependencies) = postSolution
Debug = Debug
Release = Release
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{2FB013AB-6FD4-4239-9974-C999F4DFD70C}.Debug.ActiveCfg = Debug|Win32

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding = "windows-1251"?>
<?xml version="1.0" encoding="windows-1251"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.00"
Version="7.10"
Name="System"
ProjectGUID="{2FB013AB-6FD4-4239-9974-C999F4DFD70C}"
Keyword="Win32Proj">
@ -19,7 +19,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SYSTEM_EXPORTS"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SYSTEM_EXPORTS;SYSTEM_LOG_DEBUG"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="5"
@ -33,7 +33,7 @@
<Tool
Name="VCLinkerTool"
AdditionalDependencies="kernel32.lib user32.lib RunTmChk.lib libcd.lib"
OutputFile="$(OutDir)/System.dll"
OutputFile="d:\Program FIles\NSIS\Plugins\System.dll"
LinkIncremental="2"
IgnoreAllDefaultLibraries="TRUE"
GenerateDebugInformation="TRUE"
@ -53,15 +53,22 @@
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="2"
CharacterSet="2">
CharacterSet="2"
WholeProgramOptimization="FALSE">
<Tool
Name="VCCLCompilerTool"
Optimization="1"
@ -71,20 +78,23 @@
OmitFramePointers="TRUE"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SYSTEM_EXPORTS"
StringPooling="TRUE"
ExceptionHandling="FALSE"
RuntimeLibrary="4"
StructMemberAlignment="0"
BufferSecurityCheck="FALSE"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="3"
AssemblerOutput="2"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
DebugInformationFormat="3"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="kernel32.lib user32.lib vc7ldvrm.obj vc7lmul.obj vc7lshl.obj vc7lshr.obj chkstk.obj"
OutputFile="$(OutDir)/System.dll"
AdditionalDependencies="kernel32.lib user32.lib vc7ldvrm.obj vc7lmul.obj vc7lshl.obj vc7lshr.obj chkstk.obj"
OutputFile="d:\Program FIles\NSIS\Plugins\System.dll"
LinkIncremental="1"
IgnoreAllDefaultLibraries="TRUE"
GenerateDebugInformation="FALSE"
@ -108,10 +118,18 @@
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
@ -130,9 +148,6 @@
<File
RelativePath="Plugin.c">
</File>
<File
RelativePath="System.c">
</File>
<File
RelativePath="stdafx.c">
<FileConfiguration
@ -148,6 +163,15 @@
UsePrecompiledHeader="1"/>
</FileConfiguration>
</File>
<File
RelativePath="System.c">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
ExpandAttributedSource="TRUE"/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
@ -159,10 +183,10 @@
RelativePath="Plugin.h">
</File>
<File
RelativePath="System.h">
RelativePath="stdafx.h">
</File>
<File
RelativePath="stdafx.h">
RelativePath="System.h">
</File>
</Filter>
<Filter

View file

@ -93,6 +93,10 @@
; HDC hdcSrc, int nXSrc, int nYSrc, DWORD dwRop);
!define sysBitBlt "gdi32::BitBlt(i, i, i, i, i, i, i, i, i) i"
; proposed by abgandar
; int AddFontResource(LPCTSTR lpszFilename);
!define sysAddFontResource "gdi32::AddFontResourceA(t) i"
; HDC BeginPaint(HWND hwnd, LPPAINTSTRUCT lpPaint);
!define sysBeginPaint "user32::BeginPaint(i, i) i"

View file

@ -9,7 +9,7 @@ to the people living there, they'll always help you.
By the way, any help in writing complete and easy-to-go System plugin
documentation will be appreciated.
Note: it will be best to turn plugin onload off in case of using System
Note: it will be best to turn plugin unload off in case of using System
plugin (SetPluginUnload alwaysoff).
============== Main functions ==============
@ -78,6 +78,9 @@ Proc:
::addr -> Handle to system proc (memory address)
*addr -> Structure
* -> New structure
IPtr->MemberIdx -> Call member with member index from interface given
by interface pointer IPtr (IPtr will be passed to
proc automatically, use like C++ call).
nothing -> Dup proc, usually callback or for future defenition
proc -> Ready proc specification for use or redefinition
@ -109,8 +112,8 @@ Params & Return - Type:
i - int (includes char, byte, short, handles, pointers and so on)
l - long & large integer (know as int64)
t - text, string (LPCSTR, pointer to first character)
b - boolean (needs/returns 'true':'false') - by the fact this type is
senseless -> usual integer can be used ('0':'1')
w - WCHAR text, or unicode string.
g - GUID
k - callback. See Callback section.
* - pointer specifier -> the proc needs the pointer to type, affects
@ -124,7 +127,10 @@ For structures:
&i - smaller types: &i4, &i2 (short), &i1 (byte)
&l - cumbersome, but &lN means the structure size (N bytes value),
calculated automaticaly, outputed always as int (N could be 0).
&t - structure contains plain text, &tN - lenght == N bytes.
&t - structure contains plain text, &tN, where lenght == N bytes.
&w - structure contains plain unicode text, &tN,
where lenght == (N)/2 chars = N bytes.
&g - &gN copy N bytes of plain GUID. in fact guid size is 16 :)
----------------------------------
Params & Return - Source / Destination:

View file

@ -2,35 +2,27 @@
// Microsoft Developer Studio generated include file.
// Used by resource.rc
//
#ifndef DS_SHELLFONT
#define DS_SHELLFONT (DS_SETFONT | DS_FIXEDSYS)
#endif
#define IDC_BACK 3
#define IDD_DIALOG1 101
#define IDI_ICON1 102
#define IDD_DIALOG2 102
#define IDD_LICENSE 102
#define IDD_LICENSE_FSRB 108
#define IDD_LICENSE_FSCB 109
#define IDI_ICON2 103
#define IDD_DIR 103
#define IDD_SELCOM 104
#define IDD_INST 105
#define IDD_INSTFILES 106
#define IDD_UNINST 107
#define IDB_BITMAP1 109
#define IDB_BITMAP2 110
#define IDI_ICON3 110
#define IDD_VERIFY 111
#define IDB_BITMAP3 111
#define IDB_BITMAP1 110
#define IDC_EDIT1 1000
#define IDC_BROWSE 1001
#define IDC_COPYRIGHT 1003
#define IDC_PROGRESS 1004
#define IDC_INTROTEXT 1006
#define IDC_WMA 1007
#define IDC_CHECK1 1008
#define IDC_MJF 1008
#define IDC_VERSION 1009
#define IDC_EDIT2 1010
#define IDC_DIRCAPTION 1011
#define IDC_STATUSTEXT 1014
#define IDC_LICTEXT 1015
#define IDC_LIST1 1016
#define IDC_COMBO1 1017
#define IDC_CHILDRECT 1018
@ -40,9 +32,6 @@
#define IDC_TEXT2 1022
#define IDC_SPACEREQUIRED 1023
#define IDC_SPACEAVAILABLE 1024
#define IDC_INSTVER 1024
#define IDC_UNINSTTEXT 1025
#define IDC_PROGRESSTEXT 1026
#define IDC_SHOWDETAILS 1027
#define IDC_VERSTR 1028
#define IDC_UNINSTFROM 1029
@ -50,6 +39,8 @@
#define IDC_ULICON 1031
#define IDC_TREE1 1032
#define IDC_BRANDIMAGE 1033
#define IDC_LICENSEAGREE 1034
#define IDC_LICENSEDISAGREE 1035
// Next default values for new objects
//
@ -57,7 +48,9 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 112
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1034
#define _APS_NEXT_CONTROL_VALUE 1036
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View file

@ -25,92 +25,156 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// Dialog
//
IDD_LICENSE DIALOGEX DISCARDABLE 0, 0, 266, 130
STYLE DS_CONTROL | DS_SHELLFONT | WS_CHILD
FONT 8, "MS Shell Dlg"
IDD_LICENSE DIALOGEX 0, 0, 266, 130
STYLE DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDI_ICON2,IDC_ULICON,0,0,20,20
ICON IDI_ICON2,IDC_ULICON,0,0,22,20
LTEXT "",IDC_INTROTEXT,25,0,241,23
CONTROL "",IDC_EDIT1,"RichEdit20A",WS_BORDER | WS_VSCROLL |
0x804,0,24,266,105
END
IDD_DIR DIALOGEX DISCARDABLE 0, 0, 266, 130
STYLE DS_CONTROL | DS_SHELLFONT | WS_CHILD
IDD_LICENSE_FSRB DIALOG DISCARDABLE 0, 0, 266, 130
STYLE DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_CAPTION
FONT 8, "MS Shell Dlg"
BEGIN
ICON IDI_ICON2,1031,0,0,22,20
LTEXT "",IDC_INTROTEXT,25,0,241,23
CONTROL "",IDC_EDIT1,"RichEdit20A",WS_BORDER | WS_VSCROLL |
0x804,0,24,266,85
CONTROL "",IDC_LICENSEDISAGREE,"Button",BS_AUTORADIOBUTTON |
WS_TABSTOP,0,120,266,9
CONTROL "",IDC_LICENSEAGREE,"Button",BS_AUTORADIOBUTTON |
WS_TABSTOP,0,110,266,9
END
IDD_LICENSE_FSCB DIALOG DISCARDABLE 0, 0, 266, 130
STYLE DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_CAPTION
FONT 8, "MS Shell Dlg"
BEGIN
ICON IDI_ICON2,1031,0,0,22,20
LTEXT "",IDC_INTROTEXT,25,0,241,23
CONTROL "",IDC_EDIT1,"RichEdit20A",WS_BORDER | WS_VSCROLL |
0x804,0,24,266,95
CONTROL "",IDC_LICENSEAGREE,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,0,120,266,9
END
IDD_DIR DIALOGEX 0, 0, 266, 130
STYLE DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
EDITTEXT IDC_DIR,8,49,187,12,ES_AUTOHSCROLL
PUSHBUTTON "",IDC_BROWSE,202,48,55,14
ICON IDI_ICON2,IDC_ULICON,0,0,20,20
CONTROL "",IDC_SELDIRTEXT,"Static",SS_LEFTNOWORDWRAP,
0,36,265,8
CONTROL "",IDC_SPACEAVAILABLE,"Static",SS_LEFTNOWORDWRAP,0,122,265,8
ICON IDI_ICON2,IDC_ULICON,0,0,22,20
CONTROL "",IDC_SPACEAVAILABLE,"Static",SS_LEFTNOWORDWRAP,0,122,
265,8
CONTROL "",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE |
WS_TABSTOP,8,65,118,10
CONTROL "",IDC_SPACEREQUIRED,"Static",SS_LEFTNOWORDWRAP,0,111,265,8
WS_TABSTOP,8,71,118,10
CONTROL "",IDC_SPACEREQUIRED,"Static",SS_LEFTNOWORDWRAP,0,111,
265,8
LTEXT "",IDC_INTROTEXT,25,0,241,34
GROUPBOX "",IDC_SELDIRTEXT,1,38,264,30
END
IDD_SELCOM DIALOGEX DISCARDABLE 0, 0, 266, 130
STYLE DS_CONTROL | DS_SHELLFONT | WS_CHILD
FONT 8, "MS Shell Dlg"
IDD_SELCOM DIALOGEX 0, 0, 266, 130
STYLE DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
COMBOBOX IDC_COMBO1,114,25,152,102,CBS_DROPDOWNLIST | WS_VSCROLL |
WS_TABSTOP | NOT WS_VISIBLE
ICON IDI_ICON2,IDC_ULICON,0,0,21,20
COMBOBOX IDC_COMBO1,114,25,152,102,CBS_DROPDOWNLIST | NOT
WS_VISIBLE | WS_VSCROLL | WS_TABSTOP
ICON IDI_ICON2,IDC_ULICON,0,0,22,20
LTEXT "",IDC_TEXT2,0,40,108,65
CONTROL "",IDC_TEXT1,"Static",SS_LEFTNOWORDWRAP,0,27,108,8
CONTROL "",IDC_SPACEREQUIRED,"Static",SS_LEFTNOWORDWRAP,0,111,111,8
LTEXT "",IDC_SPACEREQUIRED,0,111,111,18,NOT WS_GROUP
LTEXT "",IDC_INTROTEXT,25,0,241,25
CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS |
TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP |
WS_BORDER | WS_TABSTOP,114,39,151,90
END
IDD_INST DIALOGEX DISCARDABLE 0, 0, 280, 162
STYLE DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_BORDER
FONT 8, "MS Shell Dlg"
IDD_INST DIALOGEX 0, 0, 280, 162
STYLE DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION |
WS_SYSMENU
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
PUSHBUTTON "",IDC_BACK,171,142,50,14,WS_GROUP | NOT WS_VISIBLE
PUSHBUTTON "",IDC_BACK,171,142,50,14,NOT WS_VISIBLE | WS_GROUP
PUSHBUTTON "",IDOK,223,142,50,14
PUSHBUTTON "",IDCANCEL,7,142,50,14
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ | WS_GROUP,7,138,267,1
CONTROL "",IDC_CHILDRECT,"Static",SS_BLACKRECT | NOT WS_VISIBLE | WS_GROUP,
7,6,266,130
CTEXT "",IDC_VERSTR,59,145,108,8,WS_DISABLED | WS_GROUP
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ | WS_GROUP,7,138,
267,1
CONTROL "",IDC_CHILDRECT,"Static",SS_BLACKRECT | NOT WS_VISIBLE |
WS_GROUP,7,6,266,130
CTEXT "",IDC_VERSTR,59,145,108,8,WS_DISABLED
END
IDD_INSTFILES DIALOGEX DISCARDABLE 0, 0, 266, 130
STYLE DS_CONTROL | DS_SHELLFONT | WS_CHILD
FONT 8, "MS Shell Dlg"
IDD_INSTFILES DIALOGEX 0, 0, 266, 130
STYLE DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "",IDC_PROGRESS,"msctls_progress32",WS_BORDER,24,10,241,11
CONTROL "",IDC_INTROTEXT,"Static",SS_LEFTNOWORDWRAP,
24,0,241,8
CONTROL "",IDC_PROGRESS,"msctls_progress32",WS_BORDER,24,10,241,
11
CONTROL "",IDC_INTROTEXT,"Static",SS_LEFTNOWORDWRAP,24,0,241,8
CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SINGLESEL |
LVS_NOCOLUMNHEADER | NOT WS_VISIBLE | WS_BORDER |
WS_TABSTOP,0,25,265,104
ICON IDI_ICON2,IDC_ULICON,0,0,20,20
ICON IDI_ICON2,IDC_ULICON,0,0,22,20
PUSHBUTTON "",IDC_SHOWDETAILS,0,28,60,14,NOT WS_TABSTOP
END
IDD_UNINST DIALOGEX DISCARDABLE 0, 0, 266, 130
STYLE DS_CONTROL | DS_SHELLFONT | WS_CHILD
FONT 8, "MS Shell Dlg"
IDD_UNINST DIALOGEX 0, 0, 266, 130
STYLE DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDI_ICON2,IDC_ULICON,0,1,20,20
ICON IDI_ICON2,IDC_ULICON,0,1,22,20
LTEXT "",IDC_UNINSTFROM,0,45,55,8
EDITTEXT IDC_EDIT1,56,43,209,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "",IDC_INTROTEXT,25,0,241,34
END
IDD_VERIFY DIALOGEX DISCARDABLE 0, 0, 162, 22
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE
FONT 8, "MS Shell Dlg"
IDD_VERIFY DIALOGEX 0, 0, 162, 22
STYLE DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CTEXT "",IDC_STR,7,7,148,8
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
"IDD_INST$(NSIS_CONFIG_VISIBLE_SUPPORT)", DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 273
TOPMARGIN, 6
BOTTOMMARGIN, 156
END
"IDD_INSTFILES$(NSIS_CONFIG_VISIBLE_SUPPORT)", DIALOG
BEGIN
RIGHTMARGIN, 246
BOTTOMMARGIN, 125
END
"IDD_VERIFY$(_NSIS_CONFIG_VERIFYDIALOG)", DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 155
TOPMARGIN, 7
BOTTOMMARGIN, 15
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
@ -125,6 +189,7 @@ END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"#include ""config.h""\0"
END
3 TEXTINCLUDE DISCARDABLE
@ -134,4 +199,7 @@ END
#endif // APSTUDIO_INVOKED
#endif
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////

Binary file not shown.

Binary file not shown.