Uit winamp wil ik de filename ophalen van de audio file die hij staat te spelen. Op de winamp API site http://winamp.com/nsdn heb ik dit gevonden onder de FAQ:
Nu wil ik dit dus in VB invoegen; dit heb ik zo gedaan:
[IPC_GETLISTPOS = 125, IPC_GETPLAYLISTFILE = 211]
Echter worden alleen maar vreemde tekens geprint, alsof copymemory vanaf de verkeerde pointer kopieerde ofzo. bufptr heeft echter wel een waarde; volgens nullsoft zou dit de pointer moeten zijn. Wat doe ik fout?
PS. het is wel opvallend dat de eerte byte 0 is, maar dat kan ook toeval wezen
code:
1
2
| int index = SendMessage(hwnd_winamp, WM_USER, 0, IPC_GETLISTPOS); char *name = SendMessage(hwnd_winamp, WM_USER, index, IPC_GETPLAYLISTFILE); |
Nu wil ik dit dus in VB invoegen; dit heb ik zo gedaan:
[IPC_GETLISTPOS = 125, IPC_GETPLAYLISTFILE = 211]
code:
1
2
3
4
5
6
7
| Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Dim curtrack As Integer, buf As String * 256, bufptr As Long curtrack = SendMessage(hwndWinamp, WM_USER, 0, 125) bufptr = SendMessage(hwndWinamp, WM_USER, curtrack, 211) CopyMemory ByVal buf, ByVal bufptr, 255 Print buf |
Echter worden alleen maar vreemde tekens geprint, alsof copymemory vanaf de verkeerde pointer kopieerde ofzo. bufptr heeft echter wel een waarde; volgens nullsoft zou dit de pointer moeten zijn. Wat doe ik fout?
PS. het is wel opvallend dat de eerte byte 0 is, maar dat kan ook toeval wezen
[ Voor 6% gewijzigd door Verwijderd op 13-07-2003 19:53 ]