CD öffnen mit mciSendCommand

08/04/2009 - 20:19 von H. Dederichs | Report spam
Hallo Ihr Wissenden,

ich versuche schon seit Tagen verzweifelt mit mciSendCommand eine Audio-CD
zu öffnen. Einen funktionierenden VB6 Code habe ich nach VB.NET adaptiert,
aber was ich auch mache, es will irgendwie nicht.
Der zur Zeit erfolgversprechenste Ansatz ist folgender:

<Code>
Public Enum MCI_Commands As Integer
MCI_OPEN = &H803
MCI_CLOSE = &H804
End Enum

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
Public Structure MCI_OPEN_PARMS
Public dwCallback As Integer
Public wDeviceID As Integer
Public lpstrDeviceType As String
Public lpstrElementName As String
Public lpstrAlias As String
End Structure

Private Const MCI_OPEN_TYPE As Integer = &H2000&
Private Const MCI_OPEN_SHAREABLE As Integer = &H100&
Private Const MCI_OPEN_ELEMENT As Integer = &H200&
Private Const MCI_SET As Integer = &H80D
Private Const MCI_SET_DOOR_OPEN As Integer = &H100&

Private Declare Auto Function mciSendCommand Lib "winmm.dll" (ByVal
wDeviceID As Integer, ByVal uMessage As Integer, ByVal dwParam1 As Integer,
ByVal dwParam2 As MCI_OPEN_PARMS) As Integer

Public Sub OpenCD()
Dim intDevId as Integer
dim intErrCode as Integer

intErrCode = mciSendCommand(intDevId, MCI_Commands.MCI_OPEN, MCI_OPEN_TYPE
Or MCI_OPEN_SHAREABLE Or MCI_OPEN_ELEMENT, mop)

End Sub
</Code>
Leider kommt der Aufruf der Funktion mit dem Fehler 297 zurück, der
folgendes besagt: "Der Parameterblock, der zu MCI übergeben wurde, war NULL."

Hat jemand einen Tipp was ich hier falsch mache?

Vielen Dank im vorraus.
Herbert Dederichs
 

Lesen sie die antworten

#1 Armin Zingler
08/04/2009 - 21:32 | Warnen spam
H. Dederichs wrote:
Private Declare Auto Function mciSendCommand Lib "winmm.dll" (ByVal
wDeviceID As Integer, ByVal uMessage As Integer, ByVal dwParam1 As
Integer, ByVal dwParam2 As MCI_OPEN_PARMS) As Integer



Auf die Schnelle ist mir nur aufgefallen, dass es "BYREF dwParam2 As
MCI_OPEN_PARMS" heißen muss.


Armin

Ähnliche fragen