Am 06.05.2012 12:14, schrieb Martin KoWi:
> ich will wissen WIE ich die langen Namen bekomme!
Eine weitere Möglichkeit wäre über das DirectSound-API:
Option Explicit
Declare Function DirectSoundEnumerateW Lib "dsound" _
(ByVal lpDSEnumCallback As Long, ByVal UsrCtx As Long) As Long
Declare Function lstrlenW& Lib "kernel32" (ByVal psSrc&)
Declare Function lstrcpyW& Lib "kernel32" (ByVal psDst&, ByVal psSrc&)
Sub Main()
Dim UsrCtx As Long
UsrCtx = 1234
DirectSoundEnumerateW AddressOf DSEnumCallback, UsrCtx
End Sub
Function DSEnumCallback&(ByVal pGuid As Long, ByVal psDescr As Long, _
ByVal psMod As Long, ByVal UsrCtx As Long)
Debug.Print pGuid, BStrFromPtr(psDescr), BStrFromPtr(psMod), UsrCtx
DSEnumCallback = 1
End Function
Public Function BStrFromPtr(ByVal lpSrc As Long) As String
Dim SLen As Long
If lpSrc = 0 Then Exit Function
SLen = lstrlenW(lpSrc)
If SLen Then
BStrFromPtr = Space$(SLen)
lstrcpyW StrPtr(BStrFromPtr), lpSrc
End If
End Function
Olaf