Func _ResourceGet
($ResName, $ResType = 10, $ResLang = 0, $Res_Exe = "") ; $RT_RCDATA = 10
Local Const $IMAGE_BITMAP = 0
Local $hInstance, $hBitmap, $InfoBlock, $GlobalMemoryBlock, $MemoryPointer, $ResSize
If $Res_Exe = "" Then
ConsoleWrite("Toto" & @crlf)
$hInstance = DllCall("kernel32.dll", "int", "GetModuleHandleA", "int", $Res_Exe)
$hInstance = $hInstance[0]
Else
ConsoleWrite("Exe " & @CRLF)
; Load the DLL/EXE without executing its code
$hInstance = _API
_LoadLibraryEX
($Res_Exe,$LOAD_LIBRARY_AS_DATAFILE)
EndIf
If $ResType = $RT_BITMAP Then
$hBitmap = DllCall("user32.dll", "hwnd", "LoadImage", "hwnd", $hInstance, "str", $ResName, _
"int", $IMAGE_BITMAP, "int", 0, "int", 0, "int", 0)
If @error Then Return SetError(1, 0, 0)
$hBitmap = $hBitmap[0]
Return $hBitmap ; returns handle to Bitmap
EndIf
If $ResLang <> 0 Then
$InfoBlock = DllCall("kernel32.dll", "int", "FindResourceExA", "int", $hInstance, "str", $ResName, "long", $ResType, "short", $ResLang)
Else
$InfoBlock = DllCall("kernel32.dll", "int", "FindResourceA", "int", $hInstance, "str", $ResName, "long", $ResType)
EndIf
If @error Then Return SetError(2, 0, 0)
$InfoBlock = $InfoBlock[0]
If $InfoBlock = 0 Then Return SetError(3, 0, 0)
$ResSize = DllCall("kernel32.dll", "dword", "SizeofResource", "int", $hInstance, "int", $InfoBlock)
If @error Then Return SetError(4, 0, 0)
$ResSize = $ResSize[0]
If $ResSize = 0 Then Return SetError(5, 0, 0)
$GlobalMemoryBlock = DllCall("kernel32.dll", "int", "LoadResource", "int", $hInstance, "int", $InfoBlock)
If @error Then Return SetError(6, 0, 0)
$GlobalMemoryBlock = $GlobalMemoryBlock[0]
If $GlobalMemoryBlock = 0 Then Return SetError(7, 0, 0)
$MemoryPointer = DllCall("kernel32.dll", "int", "LockResource", "int", $GlobalMemoryBlock)
If @error Then Return SetError(8, 0, 0)
$MemoryPointer = $MemoryPointer[0]
If $MemoryPointer = 0 Then Return SetError(9, 0, 0)
SetExtended($ResSize)
Return $MemoryPointer
EndFunc ;==>_ResourceGetoÝ÷ Úz0¶¬jjeyÊz'hm©ÚëhëkëÞ¶®¶²¡û-®ç-º·yÆ®±è¡j÷§¡Énzá£hÒÊjx^áz«¦ËhëkëÞ¶¢vÞiÈbrìríj)Þv)í
äS