MCI Informationen beim Device Typ MPEGvideo lassen sich nicht auslesen

Orakel

Erfahrenes Mitglied
Hallo zusammen,

vielleicht kann mir das ja einer von Euch erklären. Lt. MSDN ist es möglich ein MCI-Device zu öffnen, indem man nur den Namen des gewünschten Devices angibt. (Ist auch kein Problem. Mit der Fileextension in der Registry nachschauen und schon hat man den Namen. Funktioniert auch problemlos). Nun sollte man in der lage sein mittels MCI_GETDEVCAPS Informationen über das Device zu erhalten.
Nun habe ich folgendes Phänomen:

Das Öffnen des Devices funktioniert einwandfrei. Nur verhält sich meine Funktion hinsichtlich der unterschiedlichen Devicetype verschieden wenn ich Informationen über das Device erhalten möchte..

Habe ich ein den Devicenamen "avivideo" funktioniert alles. Ist der Devicenamen allerdings "MPEGVideo" dann kann ich nicht auf die Informationen zugreifen.

Hier mal ein bischen Code. Vielleicht kann ja da einer was erkennen.
Code:
    Rem =======================================================================
    Rem == Fill in structur information.                                     ==
    Rem =======================================================================
    With tMCI_OPEN_PARMS
        .lpstrDeviceType = m_tMCInformation.szDeviceType
        .dwCallback = 0
        .lpstrAlias = m_tMCInformation.szAliasName
    End With

    Rem =======================================================================
    Rem == Now let's try to open the specific MCI device.                    ==
    Rem =======================================================================
    lReturnValue = mciSendCommand(&H0, MCI_OPEN, MCI_OPEN_TYPE Or MCI_WAIT, tMCI_OPEN_PARMS)

<schnipp ***** Fehlerbehandlung und so weiter *******>

    m_tMCInformation.lMCIDeviceHandle = tMCI_OPEN_PARMS.wDeviceID
    Rem =======================================================================
    Rem == Try to retrieve the information.                                  ==
    Rem =======================================================================
    lReturnValue = mciSendCommand(m_tMCInformation.lMCIDeviceHandle, MCI_GETDEVCAPS, MCI_GETDEVCAPS_ITEM Or MCI_WAIT, tMCI_GETDEVCAPS_PARMS)

Gruß
Das Orakel
 
OK, hab das Problem selber lösen können. Fehlte nur ein Flag (MCI_OPEN_ALIAS siehe unten). Vielleicht hilfts ja dem einen oder anderen :)

Gruß
Das Orakel

Code:
    Rem =======================================================================
    Rem == Fill in structur information.                                     ==
    Rem =======================================================================
    With tMCI_OPEN_PARMS
        .lpstrDeviceType = m_tMCInformation.szDeviceType
        .dwCallback = 0
        .lpstrAlias = m_tMCInformation.szAliasName
    End With

    Rem =======================================================================
    Rem == Now let's try to open the specific MCI device.                    ==
    Rem =======================================================================
    lReturnValue = mciSendCommand(&H0, MCI_OPEN, MCI_OPEN_TYPE Or MCI_WAIT, tMCI_OPEN_PARMS)
---->    lReturnValue = mciSendCommand(&H0, MCI_OPEN, MCI_OPEN_TYPE Or MCI_OPEN_ALIAS Or MCI_WAIT, tMCI_OPEN_PARMS)

<schnipp ***** Fehlerbehandlung und so weiter *******>

    m_tMCInformation.lMCIDeviceHandle = tMCI_OPEN_PARMS.wDeviceID
    Rem =======================================================================
    Rem == Try to retrieve the information.                                  ==
    Rem =======================================================================
    lReturnValue = mciSendCommand(m_tMCInformation.lMCIDeviceHandle, MCI_GETDEVCAPS, MCI_GETDEVCAPS_ITEM Or MCI_WAIT, tMCI_GETDEVCAPS_PARMS)

Gruß
Das Orakel
 

Neue Beiträge

Zurück