亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cbmpparser.cls

?? 這是網(wǎng)站里可以播放不同音樂的程序
?? CLS
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "cBMPParser"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'****************************************************************************
'人人為我,我為人人
'枕善居收藏整理
'發(fā)布日期:2007/03/15
'描    述:網(wǎng)頁搜索音樂播放器  Ver 1.1.0
'網(wǎng)    站:http://www.Mndsoft.com/  (VB6源碼博客)
'網(wǎng)    站:http://www.VbDnet.com/   (VB.NET源碼博客,主要基于.NET2005)
'e-mail  :Mndsoft@163.com
'e-mail  :Mndsoft@126.com
'OICQ    :88382850
'          如果您有新的好的代碼別忘記給枕善居哦!
'****************************************************************************
Option Explicit

' No APIs are declared public. This is to prevent possibly, differently
' declared APIs, or different versions of the same API, from conflciting
' with any APIs you declared in your project. Same rule for UDTs.

Private Type SafeArrayBound
    cElements As Long
    lLbound As Long
End Type
Private Type SafeArray
    cDims As Integer
    fFeatures As Integer
    cbElements As Long
    cLocks As Long
    pvData As Long
    rgSABound(0 To 1) As SafeArrayBound ' reusable UDT for 1 & 2 dim arrays
End Type
Private Type BITMAP
    bmType As Long
    bmWidth As Long
    bmHeight As Long
    bmWidthBytes As Long
    bmPlanes As Integer
    bmBitsPixel As Integer
    bmBits As Long
End Type

' used to transfer a stdPicture bmp,jpg,wmf to a DIB
Private Declare Function GetGDIObject Lib "gdi32.dll" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, ByRef lpObject As Any) As Long
Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (Ptr() As Any) As Long
Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As Long, ByVal hDC As Long) As Long
Private Declare Sub FillMemory Lib "kernel32.dll" Alias "RtlFillMemory" (ByRef Destination As Any, ByVal Length As Long, ByVal Fill As Byte)
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)

Public Function LoadStream(inStream() As Byte, cHost As c32bppDIB, _
                            Optional ByVal streamOffset As Long = 0, _
                            Optional ByVal streamLength As Long = 0) As Boolean

    ' PURPOSE: Test passed stream for being a 32bpp bitmap.
    ' If not 32bpp, then the stream is converted to a stdPicture and the contents
    ' of that object are drawn to the 32bpp.
    
    ' With the exception of wmf, emf & 32bpp. This class does not handle transparency.
    ' Therefore, the stream should have been passed to the png, gif & icon parsers
    ' first.
    
    ' Parameters.
    ' inStream() :: the byte array containing the image
    ' cHost :: an initialized c32bppDIB
    ' streamOffset :: array position for 1st byte in the stream
    ' streamLength :: size of stream that contains the image
    '   - If zero, then size is UBound(inStream)-streamOffset+1
    
    ' IMPORTANT: the array offset & length are not checked in this class.
    '   They were checked before this class was called. If this class is to
    '   be pulled out and put in another project, ensure you include the
    '   validation shown in c32bppDIB.LoadPicture_Stream
    
    Dim lValue As Long, iValue As Integer
    Dim X As Long, Y As Long, lScanWidth As Long
    Dim Offset As Long, iBitCount As Integer
    Dim aDIB() As Byte, tSA As SafeArray
    Dim bAlpha As Boolean
    
    ' manually parse the bitmap header.
    ' Why? because VB's LoadPicture will convert the image into a screen
    ' compatible bitmap; where if screen resolution was true color, a
    ' 32bpp image would end up being 24bit vs 32bit
    CopyMemory iValue, inStream(streamOffset), 2&   ' get 1st 2 bytes of the stream
    If iValue = &H4D42 Then                         ' is it a bmp magic number
        CopyMemory iBitCount, inStream(streamOffset + 28), 2& ' bit count
        CopyMemory X, inStream(streamOffset + 18), 4& ' width
        CopyMemory Y, inStream(streamOffset + 22), 4& ' height
        
        ' validate size
        ' width must be at least 1 pixel & height must be a least 1 pixel
        If X < 1 Or Y = 0 Then Exit Function ' -Y indicates top down DIB
        
        On Error Resume Next
        CopyMemory Offset, inStream(streamOffset + 10), 4& ' start of image
        ' validate enough bytes exist for the image
        lValue = (streamOffset + streamLength) - (iparseByteAlignOnWord(iBitCount, X) * Abs(Y) + Offset)
        If Err Then     ' should some overflow occur
            Err.Clear
            lValue = -1
        End If
        If lValue >= 0 Then              ' is array big enough?
            If iBitCount = 32 Then       ' else we will allow VB to convert it for us
                                         ' because it doesn't contain transparency anyway
                CopyMemory lValue, inStream(streamOffset + 30), 4& ' compression
                If lValue = 0& Then         ' manually handle no-compression bitmaps
                                            ' else allow VB to convert the bitmap
                    cHost.InitializeDIB X, Abs(Y)
                    With tSA
                        .cbElements = 1
                        .cDims = 2
                        .pvData = cHost.BitsPointer
                        .rgSABound(0).cElements = cHost.Height
                        .rgSABound(1).cElements = cHost.scanWidth
                    End With
                    CopyMemory ByVal VarPtrArray(aDIB), VarPtr(tSA), 4&
                    
                    lScanWidth = cHost.scanWidth
                    If Y < 0 Then ' the dib is top down vs bottom up
                        ' flip the DIB
                        Y = -Y
                        For lValue = 0 To Y - 1
                            ' start of scan line in source image
                            X = lScanWidth * (Y - lValue - 1) + Offset
                            ' copy to upside down scan line on our DIB
                            CopyMemory aDIB(0, lValue), inStream(X), lScanWidth
                        Next
                    Else    ' bottom up dib; simply copy bits
                        CopyMemory ByVal cHost.BitsPointer, inStream(Offset), cHost.Height * lScanWidth
                    End If
                    
                    ' see if 32bpp is premulitplied or not
                    iparseValidateAlphaChannel aDIB(), True, bAlpha, lValue
                    CopyMemory ByVal VarPtrArray(aDIB), 0&, 4& ' remove overlay
                    ' set other properties
                    cHost.Alpha = bAlpha
                    cHost.ImageType = lValue
                    LoadStream = True
                End If
            End If
            
        End If
    End If
    On Error GoTo 0
    
    If cHost.Handle = 0 Then ' we didn't process the image above, try VB's LoadPicture
    
        On Error Resume Next
        Dim tPic As StdPicture
        Set tPic = iparseArrayToPicture(inStream(), streamOffset, streamLength)
        If Err Then
            Err.Clear
        Else
            LoadStream = ConvertstdPicTo32bpp(tPic, cHost, iBitCount)
        End If
    
    End If

End Function

Public Function ConvertstdPicTo32bpp(stdPic As StdPicture, cHost As c32bppDIB, ByVal bitCount As Integer) As Boolean

    Dim tSA As SafeArray
    Dim cx As Long, cy As Long
    Dim tDC As Long, bAlpha As Boolean, iType As Long
    Dim aDIB() As Byte

    If stdPic Is Nothing Then Exit Function ' couldn't convert image
    If stdPic.Type = vbPicTypeNone Then Exit Function
    
    ' get the picture's width & height & initialize DIB
    cx = ConvertHimetrix2Pixels(stdPic.Width, True)
    cy = ConvertHimetrix2Pixels(stdPic.Height, False)
    cHost.InitializeDIB cx, cy
    
    ' WMF/EMFs are kinda weird, but here is a neat trick to determine if it
    ' has transparency. Fill the entire image with white, then when it is
    ' rendered, any "transparent" areas are not drawn over, leaving the
    ' alpha byte as 255. Those areas that are drawn over are changed to zero.
    If stdPic.Type = vbPicTypeEMetafile Or stdPic.Type = vbPicTypeMetafile Then
        FillMemory ByVal cHost.BitsPointer, cy * cHost.scanWidth, 255
    End If
    
    ' render the stdPic to the host's dc
    tDC = cHost.LoadDIBinDC(True)
    stdPic.Render tDC + 0&, 0&, 0&, cx + 0&, cy + 0&, _
        0, stdPic.Height, stdPic.Width, -stdPic.Height, ByVal 0&
    ' unmanage the DC if needed
    cHost.LoadDIBinDC False
    
    ' map our array to the host's DIB
    With tSA
        .cbElements = 1 ' as byte array
        .cDims = 2      ' as 1 dimensional
        .pvData = cHost.BitsPointer
        .rgSABound(0).cElements = cy
        .rgSABound(1).cElements = cHost.scanWidth
    End With
    CopyMemory ByVal VarPtrArray(aDIB), VarPtr(tSA), 4& ' apply overlay
    
    If stdPic.Type = vbPicTypeEMetafile Or stdPic.Type = vbPicTypeMetafile Then
        ' as mentioned above, any transparent pixels will have alpha value = 255
        For cy = 0 To cHost.Height - 1
            For cx = 3 To cHost.scanWidth - 1 Step 4
                If aDIB(cx, cy) = 255 Then    ' 100% transparent
                    CopyMemory aDIB(cx - 3, cy), 0&, 4&
                    bAlpha = True
                Else                        ' 100% opaque
                    aDIB(cx, cy) = 255 ' was 255, now 0, change back to 255
                End If
            Next
        Next
        cHost.ImageType = stdPic.Type
    Else    ' jpg or non-alpha bitmap
        ' validate first that it has no alpha bytes
        If bitCount = 0 Then
            ' when called from cHost.LoadPicture_Resource then no BitCount is known
            Dim tBMP As BITMAP
            GetGDIObject stdPic.Handle, Len(tBMP), tBMP
            bitCount = tBMP.bmBitsPixel
        End If
        If bitCount = 32 Then
            iparseValidateAlphaChannel aDIB(), True, bAlpha, iType
            cHost.ImageType = iType
        Else    ' cannot have an alpha channel
            ' Note: I have experienced a 24bpp stdPicture.Rendering into a 32bpp DIB
            ' and writing in the alpha channel. The -1 below forces next routine
            ' to fill the alpha channel with 255
            cHost.ImageType = vbPicTypeBitmap
            iparseValidateAlphaChannel aDIB(), True, False, -1
        End If
    End If
    CopyMemory ByVal VarPtrArray(aDIB), 0&, 4&  ' remove overlay
    cHost.Alpha = bAlpha
    ConvertstdPicTo32bpp = True

End Function

Private Function ConvertHimetrix2Pixels(vHiMetrix As Long, Horizontally As Boolean) As Long
    ' conversion from Himetrics to Pixels when ScaleX/Y is not available
    If Horizontally Then
        ConvertHimetrix2Pixels = vHiMetrix * 1440 / 2540 / Screen.TwipsPerPixelX
    Else
        ConvertHimetrix2Pixels = vHiMetrix * 1440 / 2540 / Screen.TwipsPerPixelY
    End If
End Function

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级精品在线| 欧美v日韩v国产v| 色噜噜偷拍精品综合在线| 日本乱人伦aⅴ精品| 精品日韩99亚洲| av激情综合网| 亚洲国产精品久久久男人的天堂| 一区二区欧美精品| 国产精品一区二区在线观看网站| 综合欧美亚洲日本| 成人动漫在线一区| 久久66热re国产| 日本精品裸体写真集在线观看 | 国产精品一二二区| 国产成人免费高清| 欧美三级中文字| 国产精品亚洲一区二区三区妖精| 成人精品在线视频观看| 欧美日韩精品久久久| 国产精品污网站| 国内一区二区视频| 7777精品伊人久久久大香线蕉 | 在线观看免费一区| 69堂国产成人免费视频| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲午夜精品网| 99久久精品免费精品国产| 日韩欧美三级在线| 日韩精品福利网| 欧美精品乱人伦久久久久久| 欧美v亚洲v综合ⅴ国产v| 国产精品乱码妇女bbbb| 国产高清在线精品| 2021久久国产精品不只是精品| 午夜精品影院在线观看| 欧美性生活影院| 福利一区福利二区| 欧美日韩国产免费一区二区 | 日本人妖一区二区| 日韩视频123| 视频在线在亚洲| 欧美日韩一区国产| 日韩高清在线一区| 精品久久久久久久久久久久久久久久久 | 国产亚洲美州欧州综合国| 国内精品嫩模私拍在线| 久久亚洲一区二区三区明星换脸| 中文字幕亚洲精品在线观看| hitomi一区二区三区精品| 亚洲免费视频成人| 日韩一区二区精品葵司在线| 国产激情一区二区三区| 亚洲综合色噜噜狠狠| 51精品久久久久久久蜜臀| 久久99精品国产| 国产精品毛片久久久久久久| 欧美影院午夜播放| 午夜亚洲福利老司机| 精品国一区二区三区| 色综合中文综合网| 欧美婷婷六月丁香综合色| 午夜欧美大尺度福利影院在线看| 欧美日韩精品一区二区三区四区| 视频一区欧美日韩| 国产欧美va欧美不卡在线| 色狠狠综合天天综合综合| 视频一区视频二区中文字幕| 国产喂奶挤奶一区二区三区| 色婷婷精品久久二区二区蜜臂av | 成人久久久精品乱码一区二区三区| 蜜臀av一区二区在线免费观看| 欧美图片一区二区三区| 国产一区二区导航在线播放| 一区二区三区中文在线观看| 欧美一区二区三区不卡| 在线视频观看一区| 国产成人精品www牛牛影视| 亚洲女同女同女同女同女同69| 欧美精品在线观看一区二区| 成人免费毛片a| 国产成人精品免费一区二区| 一级女性全黄久久生活片免费| 亚洲国产精品黑人久久久| 欧美一区二区三区白人| 美国毛片一区二区| 国产91精品久久久久久久网曝门| 一二三区精品视频| 亚洲美女一区二区三区| 国产色91在线| 亚洲女同一区二区| 亚洲裸体在线观看| 亚洲成av人影院在线观看网| 亚洲成人动漫一区| 亚洲成人手机在线| 秋霞av亚洲一区二区三| 国内精品写真在线观看| 国产91精品精华液一区二区三区| 波多野结衣欧美| 欧美亚洲国产一区二区三区va| 欧美理论在线播放| 久久青草欧美一区二区三区| 中文字幕亚洲成人| 亚洲影视在线观看| 激情文学综合插| 成人av网站大全| 7878成人国产在线观看| 久久久久久久综合| 亚洲精品久久嫩草网站秘色| 五月婷婷另类国产| 成人av资源站| 这里是久久伊人| 中文字幕av一区二区三区高| 日本va欧美va欧美va精品| 国产精品白丝在线| 午夜电影网亚洲视频| 成人手机在线视频| 精品日韩欧美在线| 亚洲免费观看高清完整| 日韩国产精品大片| 91国偷自产一区二区开放时间| 国产清纯白嫩初高生在线观看91| 亚洲成人一区二区| 欧美日韩精品一区二区三区四区 | 免费人成黄页网站在线一区二区| 色8久久精品久久久久久蜜 | 色噜噜狠狠一区二区三区果冻| 亚洲一卡二卡三卡四卡无卡久久| 久久se这里有精品| 91精品国产免费| 亚洲高清视频的网址| 欧美熟乱第一页| 日韩在线观看一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品久久久久影院老司| 久久国产精品99久久久久久老狼 | 国产一区不卡视频| 国产欧美一区在线| 色综合久久综合中文综合网| 亚洲欧美日韩系列| 欧美久久久久久久久| 国内国产精品久久| 亚洲情趣在线观看| 日韩视频一区二区三区 | 久久综合九色综合欧美98| 国产剧情一区二区三区| 亚洲免费观看高清在线观看| 91精品国产全国免费观看| 国产剧情一区二区| 亚洲第一av色| 亚洲色图欧洲色图| 久久亚洲欧美国产精品乐播| 欧美伊人精品成人久久综合97| 精品一区二区三区免费观看| 一区二区三区四区中文字幕| 精品国产百合女同互慰| 欧美色综合久久| 粉嫩av亚洲一区二区图片| 天堂久久久久va久久久久| 欧美韩国一区二区| 欧美videofree性高清杂交| 97aⅴ精品视频一二三区| 狠狠色狠狠色综合| 青青草原综合久久大伊人精品优势| 亚洲国产成人一区二区三区| 国产福利一区二区三区视频在线| 亚洲精品视频在线看| 在线观看国产91| 成人午夜精品在线| 国产一区二区精品久久| 韩国三级中文字幕hd久久精品| 欧美a级理论片| 99久久免费精品高清特色大片| 亚洲国产精品视频| 午夜精品福利一区二区三区av | 成人av影院在线| 岛国av在线一区| 亚洲成a天堂v人片| 免费观看91视频大全| 麻豆精品在线看| 九色porny丨国产精品| 精品写真视频在线观看| 久久精工是国产品牌吗| 国产高清视频一区| 99精品欧美一区二区三区综合在线| av亚洲精华国产精华精| 欧美性猛交一区二区三区精品| 欧美年轻男男videosbes| 日韩欧美一区电影| 中文字幕中文字幕在线一区| 无吗不卡中文字幕| 乱中年女人伦av一区二区| 国产一区二区三区在线观看免费视频| 成人一区在线观看| 欧美日本在线播放| 国产人久久人人人人爽| 亚洲一区二三区| 国产成人精品亚洲午夜麻豆| 欧美日韩你懂的| 亚洲视频一二三| 国产精品影音先锋|