Code:
Option Explicit
Private Type RGBQUAD
rgbBlue As Byte
rgbGreen As Byte
rgbRed As Byte
rgbReserved As Byte
End Type
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Declare Function GetDIBColorTable Lib "gdi32" (ByVal hdc As Long, ByVal un1 As Long, ByVal un2 As Long, pRGBQuad As RGBQUAD) As Long
Private Declare Function SetDIBColorTable Lib "gdi32" (ByVal hdc As Long, ByVal un1 As Long, ByVal un2 As Long, pcRGBQuad As RGBQUAD) As Long
Dim rgbtab(0 To 255) As RGBQUAD
Private Sub Form_Load()
Set Image1.Picture = LoadPicture(App.Path & "\JessEyes.gif")
End Sub
Private Sub Option1_Click(Index As Integer)
Dim h As Long, SHdc As Long
Dim i As Integer, ret As Long
SHdc = CreateCompatibleDC(0)
SelectObject SHdc, Image1.Picture.Handle
ret = GetDIBColorTable(SHdc, 0, 256, rgbtab(0))
If ret = 0 Then Exit Sub
h = Choose(Index, RGB(0, 0, 32), RGB(0, 32, 0), RGB(32, 32, 0)) '94
CopyMemory rgbtab(255), h, 4
h = Choose(Index, RGB(0, 0, 62), RGB(0, 62, 0), RGB(62, 62, 0)) '62
CopyMemory rgbtab(253), h, 4
h = Choose(Index, RGB(0, 0, 83), RGB(0, 83, 0), RGB(83, 83, 0)) '83
CopyMemory rgbtab(249), h, 4
h = Choose(Index, RGB(0, 0, 94), RGB(0, 94, 0), RGB(94, 94, 0)) '94
CopyMemory rgbtab(247), h, 4
h = Choose(Index, RGB(0, 0, 118), RGB(0, 118, 0), RGB(118, 118, 0)) '118
CopyMemory rgbtab(241), h, 4
SetDIBColorTable SHdc, 0, 256, rgbtab(0)
DeleteDC SHdc
Me.Refresh
End Sub