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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? modparsers.bas

?? 防Listview控件源碼
?? BAS
?? 第 1 頁 / 共 2 頁
字號:

Public Function iparseIsArrayEmpty(ByVal lArrayPointer As Long) As Boolean
  ' test to see if an array has been initialized
  iparseIsArrayEmpty = (lArrayPointer = -1&)
End Function

Public Function iparseByteAlignOnWord(ByVal bitDepth As Byte, ByVal Width As Long) As Long
    ' function to align any bit depth on dWord boundaries
    iparseByteAlignOnWord = (((Width * bitDepth) + &H1F&) And Not &H1F&) \ &H8&
End Function

Public Function iparseArrayToPicture(inArray() As Byte, Offset As Long, Size As Long) As IPicture
    
    ' function creates a stdPicture from the passed array
    ' Note: The array was already validated as not empty when calling class' LoadStream was called
    
    Dim o_hMem  As Long
    Dim o_lpMem  As Long
    Dim aGUID(0 To 3) As Long
    Dim IIStream As IUnknown
    
    aGUID(0) = &H7BF80980    ' GUID for stdPicture
    aGUID(1) = &H101ABF32
    aGUID(2) = &HAA00BB8B
    aGUID(3) = &HAB0C3000
    
    o_hMem = GlobalAlloc(&H2&, Size)
    If Not o_hMem = 0& Then
        o_lpMem = GlobalLock(o_hMem)
        If Not o_lpMem = 0& Then
            CopyMemory ByVal o_lpMem, inArray(Offset), Size
            Call GlobalUnlock(o_hMem)
            If CreateStreamOnHGlobal(o_hMem, 1&, IIStream) = 0& Then
                  Call OleLoadPicture(ByVal ObjPtr(IIStream), 0&, 0&, aGUID(0), iparseArrayToPicture)
            End If
        End If
    End If

End Function

Public Function iparseHandleToStdPicture(ByVal hImage As Long, ByVal imgType As Long) As IPicture

    ' function creates a stdPicture object from a image handle (bitmap or icon)
    
    Dim lpPictDesc As PictDesc, aGUID(0 To 3) As Long
    With lpPictDesc
        .Size = Len(lpPictDesc)
        .Type = imgType
        .hHandle = hImage
        .hPal = 0
    End With
    ' IPicture GUID {7BF80980-BF32-101A-8BBB-00AA00300CAB}
    aGUID(0) = &H7BF80980
    aGUID(1) = &H101ABF32
    aGUID(2) = &HAA00BB8B
    aGUID(3) = &HAB0C3000
    ' create stdPicture
    Call OleCreatePictureIndirect(lpPictDesc, aGUID(0), True, iparseHandleToStdPicture)
    
End Function

Public Function iparseReverseLong(ByVal inLong As Long) As Long

    ' fast function to reverse a long value from big endian to little endian
    ' PNG files contain reversed longs
    Dim b1 As Long
    Dim b2 As Long
    Dim b3 As Long
    Dim b4 As Long
    Dim lHighBit As Long
    
    lHighBit = inLong And &H80000000
    If lHighBit Then
      inLong = inLong And Not &H80000000
    End If
    
    b1 = inLong And &HFF
    b2 = (inLong And &HFF00&) \ &H100&
    b3 = (inLong And &HFF0000) \ &H10000
    If lHighBit Then
      b4 = inLong \ &H1000000 Or &H80&
    Else
      b4 = inLong \ &H1000000
    End If
    
    If b1 And &H80& Then
      iparseReverseLong = ((b1 And &H7F&) * &H1000000 Or &H80000000) Or _
          b2 * &H10000 Or b3 * &H100& Or b4
    Else
      iparseReverseLong = b1 * &H1000000 Or _
          b2 * &H10000 Or b3 * &H100& Or b4
    End If

End Function

Public Function iparseFileExists(FileName As String) As Boolean
    ' test to see if a file exists
    iparseFileExists = (Len(Dir$(FileName, vbArchive Or vbHidden Or vbReadOnly Or vbSystem)) > 0)

End Function

Public Function iparseValidateDLL(ByVal DllName As String, ByVal dllProc As String) As Boolean
    
    ' PURPOSE: Test a DLL for a specific function.
    
    Dim LB As Long, pa As Long
    
    'attempt to open the DLL to be checked
    LB = LoadLibrary(DllName)
    If LB Then
        'if so, retrieve the address of one of the function calls
        pa = GetProcAddress(LB, dllProc)
        ' free references
        FreeLibrary LB
    End If
    iparseValidateDLL = (Not (LB = 0 Or pa = 0))
    
End Function

Public Function iparseValidateZLIB(ByRef DllName As String, ByRef Version As Long, _
                                ByRef isCDECL As Boolean, ByRef hasCompression2 As Boolean, _
                                Optional ByVal bTestOnly As Boolean) As Boolean
    
    ' PURPOSE: Test ZLib availability and calling convention.
    
    ' About zLIB.  There are several versions ranging from v1.2.3 (latest) to v1.0.? (earliest).
    ' Zlib is used to compress/decompress PNG files, among other things.
    
    ' However, zLIB is written with C calling convention (cdecl) which is unusable with VB.  There
    ' are other modified versions out there that were converted to stdcall calling convention which
    ' is what VB expects. But, we don't know the calling convention of the zLIB in advance, do we?
    
    ' Allowing VB to call cdecl directly results in crashes or invalid function returns. The class
    ' cCDECL is one created by Paul Caton that uses assembly to "wrap" the cdecl call into a stdcall.
    ' But we still need to know the calling convention so we know to use cCDECL or simple API calls.
    
    Dim LB As Long, pa As Long
    Dim asmVal As Integer
    
    DllName = "zlib1.dll"       ' test for newer version first
    For Version = 2& To 1& Step -1&
        LB = LoadLibrary(DllName) 'attempt to open the DLL to be checked
        If LB Then
            hasCompression2 = Not (GetProcAddress(LB, "compress2") = 0)
            pa = GetProcAddress(LB, "crc32") ' retrieve the address of the "crc32" exported function
            If Not pa = 0& Then
                
                If bTestOnly Then Exit For
                Do
                    ' Note: this method will not work for every DLL, nor every function within a DLL.
                    ' I have analyzed 5 versions of zlib (some cdecl, some stdcall) using disassemblers
                    ' and am confident this will work for the crc32 function in all versions.
                    
                    ' Looking for an exit code:
                    CopyMemory asmVal, ByVal pa, 1&
                    Select Case asmVal
                        Case &HC3               ' exit code, no stack clean up
                            isCDECL = True      ' DLL uses cdecl calling convention, we use cCDECL
                            Exit For
                        Case &HC2
                            CopyMemory asmVal, ByVal pa + 1&, 2&
                            If asmVal = &HC Then ' exit code with clean up of 12 bytes (the 3 crc32 parameters)
                                isCDECL = False  ' DLL uses stdcall calling convention, we use APIs
                                Exit For
                            End If
                    End Select
                    pa = pa + 1&
                Loop
            End If
            ' unmap library
            FreeLibrary LB
            LB = 0&
            hasCompression2 = False
        End If
        DllName = "zlib.dll"    ' test for older version next, if necessary
    Next Version
    
    If Not LB = 0& Then FreeLibrary LB
    iparseValidateZLIB = (Not (Version = 0&))
    
End Function


Public Sub iparseValidateAlphaChannel(inStream() As Byte, bPreMultiply As Boolean, bIsAlpha As Boolean, imgType As Long)

    ' Purpose: Modify 32bpp DIB's alpha bytes depending on whether or not they are used
    
    ' Parameters
    ' inStream(). 2D array overlaying the DIB to be checked
    ' bPreMultiply. If true, image will be premultiplied if not already
    ' bIsAlpha. Returns whether or not the image contains transparency
    ' imgType. If passed as -1 then image is known to be not alpha, but will have its alpha values set to 255
    '          When routine returns, imgType is either imgBmpARGB, imgBmpPARGB or imgBitmap

    Dim X As Long, Y As Long
    Dim lPARGB As Long, zeroCount As Long
    Dim bPARGB As Boolean, bAlpha As Boolean

    ' see if the 32bpp is premultiplied or not and if it is alpha or not
    If Not imgType = -1 Then
        For Y = 0 To UBound(inStream, 2)
            For X = 3 To UBound(inStream, 1) Step 4
                Select Case inStream(X, Y)
                Case 0
                    If lPARGB = 0 Then
                        ' zero alpha, if any of the RGB bytes are non-zero, then this is not pre-multiplied
                        If Not inStream(X - 1, Y) = 0 Then
                            lPARGB = 1 ' not premultiplied
                        ElseIf Not inStream(X - 2, Y) = 0 Then
                            lPARGB = 1
                        ElseIf Not inStream(X - 3, Y) = 0 Then
                            lPARGB = 1
                        End If
                        ' but don't exit loop until we know if any alphas are non-zero
                    End If
                    zeroCount = zeroCount + 1 ' helps in decision factor at end of loop
                Case 255
                    ' no way to indicate if premultiplied or not, unless...
                    If lPARGB = 1 Then
                        lPARGB = 2    ' not pre-multiplied because of the zero check above
                        Exit For
                    End If
                Case Else
                    ' if any Exit For's below get triggered, not pre-multiplied
                    If lPARGB = 1 Then
                        lPARGB = 2: Exit For
                    ElseIf inStream(X - 3, Y) > inStream(X, Y) Then
                        lPARGB = 2: Exit For
                    ElseIf inStream(X - 2, Y) > inStream(X, Y) Then
                        lPARGB = 2: Exit For
                    ElseIf inStream(X - 1, Y) > inStream(X, Y) Then
                        lPARGB = 2: Exit For
                    End If
                End Select
            Next
            If lPARGB = 2 Then Exit For
        Next
        
        ' if we got all the way thru the image without hitting Exit:For then
        ' the image is not alpha unless the bAlpha flag was set in the loop
        
        If zeroCount = (UBound(inStream, 1) + 1) * (UBound(inStream, 2) + 1) Then ' every alpha value was zero
            bPARGB = False: bAlpha = False ' assume RGB, else 100% transparent ARGB
            ' also if lPARGB=0, then image is completely black
            imgType = vbPicTypeBitmap
        Else
            Select Case lPARGB
                Case 2: bPARGB = False: bAlpha = True ' 100% positive ARGB
                Case 1: bPARGB = False: bAlpha = True ' now 100% positive ARGB
                Case 0: bPARGB = True: bAlpha = True
            End Select
        End If
    End If
    
    ' see if caller wants the non-premultiplied alpha channel premultiplied
    If bAlpha = True Then
        If bPARGB Then ' else force premultiplied
            imgType = imgBmpPARGB
        Else
            imgType = imgBmpARGB
            If bPreMultiply = True Then
                For Y = 0 To UBound(inStream, 2)
                    For X = 3 To UBound(inStream, 1) Step 4
                        If inStream(X, Y) = 0 Then
                            CopyMemory inStream(X - 3, Y), 0&, &H4
                        ElseIf Not inStream(X, Y) = 255 Then
                            For lPARGB = X - 3 To X - 1
                                inStream(lPARGB, Y) = ((0& + inStream(lPARGB, Y)) * inStream(X, Y)) \ &HFF
                            Next
                        End If
                    Next
                Next
                bAlpha = True
            End If
        End If
    Else
        If bPreMultiply = True Then
            For Y = 0 To UBound(inStream, 2)
                For X = 3 To UBound(inStream, 1) Step 4
                    inStream(X, Y) = 255
                Next
            Next
        End If
    End If
    bIsAlpha = bAlpha

End Sub

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀精品久久久久久蜜臀| 精品1区2区3区| 麻豆精品国产传媒mv男同 | 国产精品色呦呦| 午夜在线电影亚洲一区| 国产精品亚洲午夜一区二区三区| 91成人免费电影| 国产精品乱码一区二区三区软件 | 精品一区二区免费| 欧美色图免费看| 亚洲欧美日韩国产另类专区| 欧美伦理影视网| 亚洲欧美综合另类在线卡通| 国产精品综合在线视频| 日韩精品一区二区在线| 日韩vs国产vs欧美| 欧美日韩久久一区二区| 亚洲一区欧美一区| 91高清在线观看| 国产精品免费视频观看| 精品国产亚洲在线| 亚洲国产一区二区三区青草影视| 波多野结衣一区二区三区| 国产午夜精品一区二区 | 一区二区三区中文字幕精品精品 | 欧美在线小视频| 亚洲欧洲日韩在线| 99精品偷自拍| 一区二区三区中文免费| 色久优优欧美色久优优| 亚洲综合小说图片| 欧美国产丝袜视频| 成人综合婷婷国产精品久久蜜臀| 久久网站热最新地址| 国产一区二区91| 国产人久久人人人人爽| 不卡的av网站| 亚洲精品美国一| 欧美军同video69gay| 免费精品视频在线| 2024国产精品| 岛国av在线一区| 一区二区三区四区高清精品免费观看| 99国内精品久久| 亚洲韩国一区二区三区| 777午夜精品免费视频| 精品一区二区三区免费观看| 欧美高清一级片在线观看| 不卡视频在线看| 亚洲第一精品在线| 精品第一国产综合精品aⅴ| 国产99久久久国产精品潘金 | 丝瓜av网站精品一区二区| 欧美一区二区人人喊爽| 国产凹凸在线观看一区二区| √…a在线天堂一区| 色94色欧美sute亚洲线路二 | 欧美巨大另类极品videosbest| 日韩精品一二区| 国产欧美一区二区精品忘忧草 | 成人av电影免费在线播放| 亚洲欧美中日韩| 制服丝袜亚洲色图| 91精品国产乱码| 岛国一区二区在线观看| 亚洲成在人线在线播放| 亚洲精品一区二区在线观看| 99久免费精品视频在线观看| 日韩二区三区四区| 日韩毛片高清在线播放| 欧美刺激午夜性久久久久久久| 国产高清精品网站| 亚洲二区在线观看| 国产女同互慰高潮91漫画| 欧美日韩成人综合天天影院| 国产大陆a不卡| 偷拍亚洲欧洲综合| 国产精品久久二区二区| 欧美mv日韩mv国产| 色94色欧美sute亚洲线路一ni| 污片在线观看一区二区| 亚洲欧洲精品天堂一级 | 紧缚捆绑精品一区二区| 亚洲人吸女人奶水| 亚洲精品一区二区精华| 欧美精品一级二级| 在线视频综合导航| 成人精品视频一区二区三区 | 婷婷亚洲久悠悠色悠在线播放| 国产欧美在线观看一区| 欧美日韩三级在线| 91老师片黄在线观看| 风间由美一区二区av101| 蜜臀av一级做a爰片久久| 亚洲国产wwwccc36天堂| 国产精品嫩草影院av蜜臀| 久久综合色鬼综合色| 日韩一级高清毛片| 欧美日韩国产美| 欧美日韩视频专区在线播放| 99re这里只有精品6| 高清beeg欧美| 国产91对白在线观看九色| 极品尤物av久久免费看| 开心九九激情九九欧美日韩精美视频电影 | 91精品国产福利| 91精品国产91综合久久蜜臀| 欧美美女黄视频| 91精品国产综合久久精品图片| 欧美日韩成人在线| 欧美日韩一区二区三区免费看| 国产欧美日产一区| 久久久久久久久久久黄色| 精品不卡在线视频| 久久精品视频网| 中文字幕 久热精品 视频在线 | 亚洲一本大道在线| 亚洲综合精品自拍| 五月天欧美精品| 久久精品国产一区二区| 精品一区二区三区香蕉蜜桃| 国产一区二区h| 波多野结衣欧美| 色网综合在线观看| 欧美日韩精品一区二区三区四区 | 在线精品观看国产| 欧美日韩中字一区| 欧美理论片在线| 日韩欧美一区在线观看| 日韩美一区二区三区| 久久蜜桃av一区二区天堂 | 国产偷国产偷精品高清尤物 | 91精彩视频在线| 91精品久久久久久久91蜜桃| 精品日本一线二线三线不卡| 久久亚洲精华国产精华液| 国产人成亚洲第一网站在线播放 | 精品一区二区在线播放| 成人a区在线观看| 欧美日韩一区二区欧美激情| 精品欧美乱码久久久久久1区2区| 久久精品亚洲精品国产欧美| 成人欧美一区二区三区小说 | 国产91富婆露脸刺激对白| 91成人免费网站| 精品久久久久久亚洲综合网| 欧美午夜宅男影院| 成人免费视频app| 亚洲激情在线播放| 午夜精品久久久久久久99樱桃| 久久成人羞羞网站| 精品国产伦一区二区三区免费| 国产日韩欧美电影| 亚洲一二三区不卡| 国产精品一区免费视频| 欧美三级韩国三级日本三斤| 久久久久久久电影| 午夜久久久久久电影| 成人黄色软件下载| 日韩一级黄色片| 一区二区三区在线视频免费观看| 久久不见久久见中文字幕免费| 色哟哟一区二区三区| 欧美精品一区二区高清在线观看| 一区二区三区色| 国产成人精品影院| 日韩精品一区二| 亚洲永久免费av| 成人免费的视频| 久久综合五月天婷婷伊人| 亚洲一区二区三区四区不卡| 成人美女视频在线观看| 精品欧美一区二区在线观看| 午夜视频在线观看一区二区 | 热久久久久久久| 一本色道久久综合亚洲精品按摩| 久久久久久久久久久久久女国产乱| 亚洲永久精品大片| 日本道色综合久久| 国产精品久久三区| 国产91精品入口| 国产香蕉久久精品综合网| 麻豆成人免费电影| 精品国产乱码久久久久久闺蜜 | 亚洲妇熟xx妇色黄| www.亚洲免费av| 欧美国产视频在线| 欧美日韩色综合| 午夜视黄欧洲亚洲| 欧美性猛交xxxx乱大交退制版| 中文字幕一区二区日韩精品绯色| 国产精品123| 久久久91精品国产一区二区精品 | 日本成人中文字幕在线视频 | 一本一道久久a久久精品综合蜜臀| 国产欧美va欧美不卡在线| 精品中文字幕一区二区小辣椒| 91精品国产免费| 久久国产欧美日韩精品| 精品99一区二区|