1!ifndef LVM_GETITEMCOUNT
2  !define LVM_GETITEMCOUNT 0x1004
3!endif
4!define LVM_GETITEMTEXT 0x102D
5
6Function DumpLog
7  Exch $5
8  Push $0
9  Push $1
10  Push $2
11  Push $3
12  Push $4
13  Push $6
14
15  FindWindow $0 "#32770" "" $HWNDPARENT
16  GetDlgItem $0 $0 1016
17  StrCmp $0 0 error
18  FileOpen $5 $5 "w"
19  StrCmp $5 0 error
20    SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
21    System::Alloc ${NSIS_MAX_STRLEN}
22    Pop $3
23    StrCpy $2 0
24    System::Call "*(i, i, i, i, i, i, i, i, i) i \
25      (0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
26    loop: StrCmp $2 $6 done
27      System::Call "User32::SendMessageA(i, i, i, i) i \
28        ($0, ${LVM_GETITEMTEXT}, $2, r1)"
29      System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
30      FileWrite $5 "$4$\r$\n"
31      IntOp $2 $2 + 1
32      Goto loop
33    done:
34      FileClose $5
35      System::Free $1
36      System::Free $3
37      Goto exit
38  error:
39    MessageBox MB_OK error
40  exit:
41    Pop $6
42    Pop $4
43    Pop $3
44    Pop $2
45    Pop $1
46    Pop $0
47    Exch $5
48FunctionEnd
49