All pastes #631560 Raw Edit

GetBitmap (shodan)

public text v1 · immutable
#631560 ·published 2007-07-24 02:32 UTC
rendered paste body
Function GetBitmap(ByVal sOutputFile As String, ByVal ppbmih As BitmapInfoHeader)
        Dim bFound As Boolean
        Dim hr As Integer = 0   '  should be of HRESULT type ??
        Dim iLoop As Integer
        Dim lStreams As Long

        MediaDetector.get_OutputStreams(lStreams)

        For iLoop = 0 To lStreams
            Dim major_type As Guid
            hr = MediaDetector.put_CurrentStream(iLoop)
            hr = MediaDetector.get_StreamType(major_type)
            MediaDetector.put_Filename(sOutputFile)

            If major_type = MediaType.Video Then
                bFound = True
                Exit For
            End If

        Next

        If Not bFound Then Return VFW_E_INVALIDMEDIATYPE ' VFW_E_INVALIDMEDIATYPE does not exist 

        Dim lWidth As Long = 0, lHeight As Long = 0
        Dim tpMediaType As New AMMediaType

        hr = MediaDetector.get_StreamMediaType(tpMediaType)

        If Succeeded(hr) Then
            If tpMediaType.formatType = FormatType.VideoInfo And tpMediaType.formatSize >= Len(VideoInfoHeader) Then   'can't Len(VideoInfoHeader)
                Dim pVih As VideoInfoHeader = tpMediaType.formatPtr  'this is no good
                lWidth = pVih.BmiHeader.Width
                lHeight = pVih.BmiHeader.Height
                If (lHeight < 0) Then lHeight *= -1
            Else
                hr = VFW_E_INVALIDMEDIATYPE ' hr = VFW_E_INVALIDMEDIATYPE does not exist
            End If

            FreeMediaType(tpMediaType) 'FreeMediaType(mt);        there's no freemediatype 
        End If

        If failed(hr) Then Return hr ' failed doesn't exist

        Dim lSize As Long

        hr = MediaDetector.GetBitmapBits(0, System.DBNull, lWidth, lHeight)   you can't say that in vb

        If succeeded(hr) Then  ' another function out of nowhere
            Dim pBuffer(lSize) As Char
            If Not pBuffer Then Return E_OUTOFMEMORY ' "not pBuffer" <> (!pBuffer)
            Try
                hr = MediaDetector.GetBitmapBits(0, null, pBuffer, lWidth, lHeight)
                If succeeded(hr) Then
                    If False Then ' WTF !!!  if (*ppbmih) delete[] (*ppbmih);
                        ppbmih = CType(pBuffer, BitmapInfoHeader) ' non ca , ca marche juste pas
                    End If
            Catch ex As Exception
                pBuffer = Nothing
                Return E_OUTOFMEMORY ' un autre constante qui existe pas
            End Try
        End If

    End Function