45 lines
1.2 KiB
Plaintext
45 lines
1.2 KiB
Plaintext
|
!verbose push 3
|
||
|
!ifndef INTEGRATION_INCLUDED
|
||
|
!define INTEGRATION_INCLUDED 1
|
||
|
|
||
|
!include "Util.nsh"
|
||
|
|
||
|
|
||
|
!define NotifyShell_AssocChanged `System::Call 'SHELL32::SHChangeNotify(i0x8000000,i0,p0,p0)'` ; Notify the shell with SHCNE_ASSOCCHANGED
|
||
|
|
||
|
|
||
|
!define UnpinShortcut "!insertmacro UnpinShortcut "
|
||
|
!macro UnpinShortcut lnkpath
|
||
|
Push "${lnkpath}"
|
||
|
${CallArtificialFunction} UnpinShortcut_Implementation
|
||
|
!macroend
|
||
|
!macro UnpinShortcut_Implementation
|
||
|
!include "LogicLib.nsh"
|
||
|
!include "Win\COM.nsh"
|
||
|
Exch $0
|
||
|
Push $1
|
||
|
!insertmacro ComHlpr_CreateInProcInstance ${CLSID_StartMenuPin} ${IID_IStartMenuPinnedList} r1 ""
|
||
|
${If} $1 P<> 0
|
||
|
System::Call 'SHELL32::SHCreateItemFromParsingName(wr0,p0,g"${IID_IShellItem}",*p0r0)'
|
||
|
${If} $0 P<> 0
|
||
|
${IStartMenuPinnedList::RemoveFromList} $1 '(r0)'
|
||
|
${IUnknown::Release} $0 ""
|
||
|
${EndIf}
|
||
|
${IUnknown::Release} $1 ""
|
||
|
!ifdef NSIS_IX86 | NSIS_AMD64
|
||
|
${Else}
|
||
|
!insertmacro ComHlpr_CreateInProcInstance ${CLSID_StartMenuPin} "{ec35e37a-6579-4f3c-93cd-6e62c4ef7636}" r1 ""
|
||
|
${If} $1 P<> 0
|
||
|
ExecShellWait /INVOKEIDLIST "unpin" $0 ; WinXP
|
||
|
${IUnknown::Release} $1 ""
|
||
|
${EndIf}
|
||
|
!endif
|
||
|
${EndIf}
|
||
|
Pop $1
|
||
|
Pop $0
|
||
|
!macroend
|
||
|
|
||
|
|
||
|
!endif #!INCLUDED
|
||
|
!verbose pop
|