What's wrong here?
Example:
Name "Basic"
OutFile "Basic.exe"
InstallDir "$TEMP"
!include "MUI.nsh"
RequestExecutionLevel User
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Function .onInit
ClearErrors
CreateDirectory $EXEDIR\PluginsDir
IfErrors 0 +3
ClearErrors
InitPluginsDir
StrCpy $0 $EXEDIR\PluginsDir
SetOutPath $0
File /r /x thumbs.db "${NSISDIR}\Plugins\chngvrbl.dll"
Push $0
Push 26
CallInstDLL $0\chngvrbl.dll changeVariable
FunctionEnd
Section ""
SetAutoClose True
SectionEnd
Function .OnGuiEnd
RMDir /r "$PLUGINSDIR"
SetOutPath $EXEDIR
FunctionEnd