Current News
Archived News
Search News
Discussion Forum


Old Forum
Install Programs More Downloads...
Troubleshooting
Source Code
Format Specs.
Misc. Information
Non-SF Stuff
Links




CommitLineData
0d212c7b 1Attribute VB_Name = "FixWindowIcon"
2Option Explicit
3
4Private Const WM_SETICON = &H80
5Private Const ICON_SMALL = 0
6Private Const IMAGE_ICON = 1
7Private Const LR_DEFAULTSIZE = &H40
8
9Private Declare Function GetModuleHandle Lib "Kernel32.dll" _
10 Alias "GetModuleHandleA" _
11 (ByRef lpModuleName As Any) As Long
12Private Declare Function LoadImage Lib "User32.dll" _
13 Alias "LoadImageA" ( _
14 ByVal hinst As Long, _
15 ByRef lpszName As Any, _
16 ByVal uType As Long, _
17 ByVal cxDesired As Long, _
18 ByVal cyDesired As Long, _
19 ByVal fuLoad As Long) As Long
20Private Declare Function SendMessageA Lib _
21 "User32.dll" _
22 (ByVal hWnd As Long, _
23 ByVal Msg As Long, _
24 ByVal Wp As Long, _
25 Lp As Any) As Long
26
27Sub FixIcon(hWnd As Long, lpszName)
28Dim hModule As Long, hIcon As Long, szName As String, nName As Long, Width As Long, Height As Long
29hModule = GetModuleHandle(ByVal 0&)
30If hModule = 0 Then Exit Sub
31Width = Abs(GetReg("HKEY_USERS\.Default\Control Panel\Desktop\WindowMetrics\CaptionWidth", -270)) / Screen.TwipsPerPixelX - 2
32Height = Abs(GetReg("HKEY_USERS\.Default\Control Panel\Desktop\WindowMetrics\CaptionHeight", -270)) / Screen.TwipsPerPixelY - 2
33If VarType(lpszName) = vbString Then
34 szName = lpszName
35 hIcon = LoadImage(hModule, szName, IMAGE_ICON, Width, Height, LR_DEFAULTSIZE)
36ElseIf VarType(lpszName) = vbByte Or VarType(lpszName) = vbInteger Or VarType(lpszName) = vbLong Then
37 nName = lpszName
38 hIcon = LoadImage(hModule, ByVal nName, IMAGE_ICON, Width, Height, LR_DEFAULTSIZE)
39End If
40If hIcon = 0 Then Exit Sub
41SendMessageA MpqEx.hWnd, WM_SETICON, ICON_SMALL, ByVal hIcon
42End Sub