Function Reference


_WinAPI_Create32BitHBITMAP

Creates a 32 bits-per-pixel bitmap from the specified icon

#include <WinAPIGdi.au3>
_WinAPI_Create32BitHBITMAP ( $hIcon [, $bDib = False [, $bDelete = False]] )

Parameters

$hIcon Handle to the source icon.
$bDib [optional] Specifies whether to create device-independent (DIB) or device-dependent (DDB) bitmap, valid values:
True - Creates DIB.
False - Creates DDB (Default).
$bDelete [optional] Specifies whether to delete the icon after the function is successful, valid values:
    True - Icon will be deleted if the function succeeds.
    False - Do not delete, you must release the icon when you are finished using it (Default).

Return Value

Success: Handle to the created bitmap.
Failure: 0 and sets the @error flag to non-zero.

Remarks

The _WinAPI_Create32BitHBITMAP() creates a 32 bits-per-pixel bitmap with alpha chanel (if possible) from the icons with any color depth.
The function internally converts the specified icon to the 32 bits-per-pixel icon.

When you are finished using the bitmap, destroy it using the _WinAPI_DeleteObject() function.

Related

_WinAPI_DeleteObject

Example

#NoTrayIcon

#include <GUIMenu.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIShellEx.au3>
#include <WinAPISys.au3>

Opt('TrayMenuMode', 3)

If _WinAPI_GetVersion() < '6.0' Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Error', 'Require Windows Vista or later.')
    Exit
EndIf

Local $hMenu = TrayItemGetHandle(0)
Local $iOptions = TrayCreateItem('Options')
TrayCreateItem('')
Local $idExit = TrayCreateItem('Exit')

_GUICtrlMenu_SetItemBmp($hMenu, 0, _WinAPI_Create32BitHBITMAP(_WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', 207, 16, 16), 1, 1))
_GUICtrlMenu_SetItemBmp($hMenu, 2, _WinAPI_Create32BitHBITMAP(_WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', 131, 16, 16), 1, 1))

TraySetState()

Do
Until TrayGetMsg() = $idExit