1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- !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
|