SHOW:
|
|
- or go back to the newest paste.
1 | #Region | |
2 | #AutoIt3Wrapper_Icon=Untitled-3.ico | |
3 | #AutoIt3Wrapper_OutFile=..\bin\bakingbreadcsgo.exe | |
4 | #AutoIt3Wrapper_Change2CUI=y | |
5 | #AutoIt3Wrapper_res_requestedExecutionLevel=asInvoker | |
6 | #EndRegion | |
7 | Global Const $tagpoint = "long X;long Y" | |
8 | Global Const $tagrect = "long Left;long Top;long Right;long Bottom" | |
9 | Global Const $tagsize = "long X;long Y" | |
10 | Global Const $tagmargins = "int cxLeftWidth;int cxRightWidth;int cyTopHeight;int cyBottomHeight" | |
11 | Global Const $tagfiletime = "dword Lo;dword Hi" | |
12 | Global Const $tagsystemtime = "word Year;word Month;word Dow;word Day;word Hour;word Minute;word Second;word MSeconds" | |
13 | Global Const $tagtime_zone_information = "long Bias;wchar StdName[32];word StdDate[8];long StdBias;wchar DayName[32];word DayDate[8];long DayBias" | |
14 | Global Const $tagnmhdr = "hwnd hWndFrom;uint_ptr IDFrom;INT Code" | |
15 | Global Const $tagcomboboxexitem = "uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;int SelectedImage;int OverlayImage;" & "int Indent;lparam Param" | |
16 | Global Const $tagnmcbedragbegin = $tagnmhdr & ";int ItemID;ptr szText" | |
17 | Global Const $tagnmcbeendedit = $tagnmhdr & ";bool fChanged;int NewSelection;ptr szText;int Why" | |
18 | Global Const $tagnmcomboboxex = $tagnmhdr & ";uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;" & "int SelectedImage;int OverlayImage;int Indent;lparam Param" | |
19 | 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" | |
20 | Global Const $tagnmdatetimechange = $tagnmhdr & ";dword Flag;" & $tagsystemtime | |
21 | Global Const $tagnmdatetimeformat = $tagnmhdr & ";ptr Format;" & $tagsystemtime & ";ptr pDisplay;wchar Display[64]" | |
22 | Global Const $tagnmdatetimeformatquery = $tagnmhdr & ";ptr Format;long SizeX;long SizeY" | |
23 | Global Const $tagnmdatetimekeydown = $tagnmhdr & ";int VirtKey;ptr Format;" & $tagsystemtime | |
24 | Global Const $tagnmdatetimestring = $tagnmhdr & ";ptr UserString;" & $tagsystemtime & ";dword Flags" | |
25 | 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" | |
26 | Global Const $taggdipbitmapdata = "uint Width;uint Height;int Stride;int Format;ptr Scan0;uint_ptr Reserved" | |
27 | Global Const $taggdipencoderparam = "byte GUID[16];dword Count;dword Type;ptr Values" | |
28 | Global Const $taggdipencoderparams = "dword Count;byte Params[0]" | |
29 | Global Const $taggdiprectf = "float X;float Y;float Width;float Height" | |
30 | Global Const $taggdipstartupinput = "uint Version;ptr Callback;bool NoThread;bool NoCodecs" | |
31 | Global Const $taggdipstartupoutput = "ptr HookProc;ptr UnhookProc" | |
32 | 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" | |
33 | Global Const $taggdippencoderparams = "dword Count;byte Params[0]" | |
34 | 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" | |
35 | Global Const $tagnmhddispinfo = $tagnmhdr & ";int Item;uint Mask;ptr Text;int TextMax;int Image;lparam lParam" | |
36 | Global Const $tagnmhdfilterbtnclick = $tagnmhdr & ";int Item;" & $tagrect | |
37 | Global Const $tagnmheader = $tagnmhdr & ";int Item;int Button;ptr pItem" | |
38 | Global Const $taggetipaddress = "byte Field4;byte Field3;byte Field2;byte Field1" | |
39 | Global Const $tagnmipaddress = $tagnmhdr & ";int Field;int Value" | |
40 | Global Const $taglvfindinfo = "uint Flags;ptr Text;lparam Param;" & $tagpoint & ";uint Direction" | |
41 | Global Const $taglvhittestinfo = $tagpoint & ";uint Flags;int Item;int SubItem" | |
42 | Global Const $taglvitem = "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" | |
43 | Global Const $tagnmlistview = $tagnmhdr & ";int Item;int SubItem;uint NewState;uint OldState;uint Changed;" & "long ActionX;long ActionY;lparam Param" | |
44 | Global Const $tagnmlvcustomdraw = $tagnmhdr & ";dword dwDrawStage;handle hdc;long Left;long Top;long Right;long Bottom;" & "dword_ptr dwItemSpec;uint uItemState;lparam lItemlParam" & ";dword clrText;dword clrTextBk;int iSubItem;dword dwItemType;dword clrFace;int iIconEffect;" & "int iIconPhase;int iPartId;int iStateId;long TextLeft;long TextTop;long TextRight;long TextBottom;uint uAlign" | |
45 | Global Const $tagnmlvdispinfo = $tagnmhdr & ";" & $taglvitem | |
46 | Global Const $tagnmlvfinditem = $tagnmhdr & ";" & $taglvfindinfo | |
47 | Global Const $tagnmlvgetinfotip = $tagnmhdr & ";dword Flags;ptr Text;int TextMax;int Item;int SubItem;lparam lParam" | |
48 | Global Const $tagnmitemactivate = $tagnmhdr & ";int Index;int SubItem;uint NewState;uint OldState;uint Changed;" & $tagpoint & ";lparam lParam;uint KeyFlags" | |
49 | Global Const $tagnmlvkeydown = $tagnmhdr & ";align 1;word VKey;uint Flags" | |
50 | Global Const $tagnmlvscroll = $tagnmhdr & ";int DX;int DY" | |
51 | Global Const $tagmchittestinfo = "uint Size;" & $tagpoint & ";uint Hit;" & $tagsystemtime | |
52 | 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" | |
53 | 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" | |
54 | 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" | |
55 | Global Const $tagnmdaystate = $tagnmhdr & ";" & $tagsystemtime & ";int DayState;ptr pDayState" | |
56 | Global Const $tagnmselchange = $tagnmhdr & ";word BegYear;word BegMonth;word BegDOW;word BegDay;" & "word BegHour;word BegMinute;word BegSecond;word BegMSeconds;word EndYear;word EndMonth;word EndDOW;" & "word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds" | |
57 | Global Const $tagnmobjectnotify = $tagnmhdr & ";int Item;ptr piid;ptr pObject;long Result" | |
58 | Global Const $tagnmtckeydown = $tagnmhdr & ";word VKey;uint Flags" | |
59 | Global Const $tagtvitem = "uint Mask;handle hItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;int SelectedImage;" & "int Children;lparam Param" | |
60 | Global Const $tagtvitemex = $tagtvitem & ";int Integral" | |
61 | Global Const $tagnmtreeview = $tagnmhdr & ";uint Action;uint OldMask;handle OldhItem;uint OldState;uint OldStateMask;" & "ptr OldText;int OldTextMax;int OldImage;int OldSelectedImage;int OldChildren;lparam OldParam;uint NewMask;handle NewhItem;" & "uint NewState;uint NewStateMask;ptr NewText;int NewTextMax;int NewImage;int NewSelectedImage;int NewChildren;" & "lparam NewParam;long PointX;long PointY" | |
62 | Global Const $tagnmtvcustomdraw = $tagnmhdr & ";dword DrawStage;handle HDC;long Left;long Top;long Right;long Bottom;" & "dword_ptr ItemSpec;uint ItemState;lparam ItemParam;dword ClrText;dword ClrTextBk;int Level" | |
63 | Global Const $tagnmtvdispinfo = $tagnmhdr & ";" & $tagtvitem | |
64 | Global Const $tagnmtvgetinfotip = $tagnmhdr & ";ptr Text;int TextMax;handle hItem;lparam lParam" | |
65 | Global Const $tagtvhittestinfo = $tagpoint & ";uint Flags;handle Item" | |
66 | Global Const $tagnmtvkeydown = $tagnmhdr & ";word VKey;uint Flags" | |
67 | Global Const $tagnmmouse = $tagnmhdr & ";dword_ptr ItemSpec;dword_ptr ItemData;" & $tagpoint & ";lparam HitInfo" | |
68 | Global Const $tagtoken_privileges = "dword Count;int64 LUID;dword Attributes" | |
69 | Global Const $tagimageinfo = "handle hBitmap;handle hMask;int Unused1;int Unused2;" & $tagrect | |
70 | Global Const $tagmenuinfo = "dword Size;INT Mask;dword Style;uint YMax;handle hBack;dword ContextHelpID;ulong_ptr MenuData" | |
71 | 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" | |
72 | 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" | |
73 | Global Const $tagnmrebarautobreak = $tagnmhdr & ";uint uBand;uint wID;lparam lParam;uint uMsg;uint fStyleCurrent;bool fAutoBreak" | |
74 | Global Const $tagnmrbautosize = $tagnmhdr & ";bool fChanged;long TargetLeft;long TargetTop;long TargetRight;long TargetBottom;" & "long ActualLeft;long ActualTop;long ActualRight;long ActualBottom" | |
75 | Global Const $tagnmrebar = $tagnmhdr & ";dword dwMask;uint uBand;uint fStyle;uint wID;laram lParam" | |
76 | Global Const $tagnmrebarchevron = $tagnmhdr & ";uint uBand;uint wID;lparam lParam;" & $tagrect & ";lparam lParamNM" | |
77 | Global Const $tagnmrebarchildsize = $tagnmhdr & ";uint uBand;uint wID;long CLeft;long CTop;long CRight;long CBottom;" & "long BLeft;long BTop;long BRight;long BBottom" | |
78 | Global Const $tagcolorscheme = "dword Size;dword BtnHighlight;dword BtnShadow" | |
79 | Global Const $tagnmtoolbar = $tagnmhdr & ";int iItem;" & "int iBitmap;int idCommand;byte fsState;byte fsStyle;align;dword_ptr dwData;int_ptr iString" & ";int cchText;ptr pszText;" & $tagrect | |
80 | Global Const $tagnmtbhotitem = $tagnmhdr & ";int idOld;int idNew;dword dwFlags" | |
81 | Global Const $tagtbbutton = "int Bitmap;int Command;byte State;byte Style;align;dword_ptr Param;int_ptr String" | |
82 | Global Const $tagtbbuttoninfo = "uint Size;dword Mask;int Command;int Image;byte State;byte Style;word CX;dword_ptr Param;ptr Text;int TextMax" | |
83 | Global Const $tagnetresource = "dword Scope;dword Type;dword DisplayType;dword Usage;ptr LocalName;ptr RemoteName;ptr Comment;ptr Provider" | |
84 | Global Const $tagoverlapped = "ulong_ptr Internal;ulong_ptr InternalHigh;dword Offset;dword OffsetHigh;handle hEvent" | |
85 | 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" | |
86 | Global Const $tagbitmapinfo = "dword Size;long Width;long Height;word Planes;word BitCount;dword Compression;dword SizeImage;" & "long XPelsPerMeter;long YPelsPerMeter;dword ClrUsed;dword ClrImportant;dword RGBQuad" | |
87 | Global Const $tagblendfunction = "byte Op;byte Flags;byte Alpha;byte Format" | |
88 | Global Const $tagguid = "dword Data1;word Data2;word Data3;byte Data4[8]" | |
89 | Global Const $tagwindowplacement = "uint length; uint flags;uint showCmd;long ptMinPosition[2];long ptMaxPosition[2];long rcNormalPosition[4]" | |
90 | Global Const $tagwindowpos = "hwnd hWnd;hwnd InsertAfter;int X;int Y;int CX;int CY;uint Flags" | |
91 | Global Const $tagscrollinfo = "uint cbSize;uint fMask;int nMin;int nMax;uint nPage;int nPos;int nTrackPos" | |
92 | Global Const $tagscrollbarinfo = "dword cbSize;" & $tagrect & ";int dxyLineButton;int xyThumbTop;" & "int xyThumbBottom;int reserved;dword rgstate[6]" | |
93 | 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]" | |
94 | Global Const $tagkbdllhookstruct = "dword vkCode;dword scanCode;dword flags;dword time;ulong_ptr dwExtraInfo" | |
95 | Global Const $tagprocess_information = "handle hProcess;handle hThread;dword ProcessID;dword ThreadID" | |
96 | 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" | |
97 | Global Const $tagsecurity_attributes = "dword Length;ptr Descriptor;bool InheritHandle" | |
98 | 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]" | |
99 | Global Const $fc_nooverwrite = 0 | |
100 | Global Const $fc_overwrite = 1 | |
101 | Global Const $ft_modified = 0 | |
102 | Global Const $ft_created = 1 | |
103 | Global Const $ft_accessed = 2 | |
104 | Global Const $fo_read = 0 | |
105 | Global Const $fo_append = 1 | |
106 | Global Const $fo_overwrite = 2 | |
107 | Global Const $fo_binary = 16 | |
108 | Global Const $fo_unicode = 32 | |
109 | Global Const $fo_utf16_le = 32 | |
110 | Global Const $fo_utf16_be = 64 | |
111 | Global Const $fo_utf8 = 128 | |
112 | Global Const $fo_utf8_nobom = 256 | |
113 | Global Const $eof = -1 | |
114 | Global Const $fd_filemustexist = 1 | |
115 | Global Const $fd_pathmustexist = 2 | |
116 | Global Const $fd_multiselect = 4 | |
117 | Global Const $fd_promptcreatenew = 8 | |
118 | Global Const $fd_promptoverwrite = 16 | |
119 | Global Const $create_new = 1 | |
120 | Global Const $create_always = 2 | |
121 | Global Const $open_existing = 3 | |
122 | Global Const $open_always = 4 | |
123 | Global Const $truncate_existing = 5 | |
124 | Global Const $invalid_set_file_pointer = -1 | |
125 | Global Const $file_begin = 0 | |
126 | Global Const $file_current = 1 | |
127 | Global Const $file_end = 2 | |
128 | Global Const $file_attribute_readonly = 1 | |
129 | Global Const $file_attribute_hidden = 2 | |
130 | Global Const $file_attribute_system = 4 | |
131 | Global Const $file_attribute_directory = 16 | |
132 | Global Const $file_attribute_archive = 32 | |
133 | Global Const $file_attribute_device = 64 | |
134 | Global Const $file_attribute_normal = 128 | |
135 | Global Const $file_attribute_temporary = 256 | |
136 | Global Const $file_attribute_sparse_file = 512 | |
137 | Global Const $file_attribute_reparse_point = 1024 | |
138 | Global Const $file_attribute_compressed = 2048 | |
139 | Global Const $file_attribute_offline = 4096 | |
140 | Global Const $file_attribute_not_content_indexed = 8192 | |
141 | Global Const $file_attribute_encrypted = 16384 | |
142 | Global Const $file_share_read = 1 | |
143 | Global Const $file_share_write = 2 | |
144 | Global Const $file_share_delete = 4 | |
145 | Global Const $generic_all = 268435456 | |
146 | Global Const $generic_execute = 536870912 | |
147 | Global Const $generic_write = 1073741824 | |
148 | Global Const $generic_read = -2147483648 | |
149 | Global Const $error_no_token = 1008 | |
150 | Global Const $se_assignprimarytoken_name = "SeAssignPrimaryTokenPrivilege" | |
151 | Global Const $se_audit_name = "SeAuditPrivilege" | |
152 | Global Const $se_backup_name = "SeBackupPrivilege" | |
153 | Global Const $se_change_notify_name = "SeChangeNotifyPrivilege" | |
154 | Global Const $se_create_global_name = "SeCreateGlobalPrivilege" | |
155 | Global Const $se_create_pagefile_name = "SeCreatePagefilePrivilege" | |
156 | Global Const $se_create_permanent_name = "SeCreatePermanentPrivilege" | |
157 | Global Const $se_create_token_name = "SeCreateTokenPrivilege" | |
158 | Global Const $se_debug_name = "SeDebugPrivilege" | |
159 | Global Const $se_enable_delegation_name = "SeEnableDelegationPrivilege" | |
160 | Global Const $se_impersonate_name = "SeImpersonatePrivilege" | |
161 | Global Const $se_inc_base_priority_name = "SeIncreaseBasePriorityPrivilege" | |
162 | Global Const $se_increase_quota_name = "SeIncreaseQuotaPrivilege" | |
163 | Global Const $se_load_driver_name = "SeLoadDriverPrivilege" | |
164 | Global Const $se_lock_memory_name = "SeLockMemoryPrivilege" | |
165 | Global Const $se_machine_account_name = "SeMachineAccountPrivilege" | |
166 | Global Const $se_manage_volume_name = "SeManageVolumePrivilege" | |
167 | Global Const $se_prof_single_process_name = "SeProfileSingleProcessPrivilege" | |
168 | Global Const $se_remote_shutdown_name = "SeRemoteShutdownPrivilege" | |
169 | Global Const $se_restore_name = "SeRestorePrivilege" | |
170 | Global Const $se_security_name = "SeSecurityPrivilege" | |
171 | Global Const $se_shutdown_name = "SeShutdownPrivilege" | |
172 | Global Const $se_sync_agent_name = "SeSyncAgentPrivilege" | |
173 | Global Const $se_system_environment_name = "SeSystemEnvironmentPrivilege" | |
174 | Global Const $se_system_profile_name = "SeSystemProfilePrivilege" | |
175 | Global Const $se_systemtime_name = "SeSystemtimePrivilege" | |
176 | Global Const $se_take_ownership_name = "SeTakeOwnershipPrivilege" | |
177 | Global Const $se_tcb_name = "SeTcbPrivilege" | |
178 | Global Const $se_unsolicited_input_name = "SeUnsolicitedInputPrivilege" | |
179 | Global Const $se_undock_name = "SeUndockPrivilege" | |
180 | Global Const $se_privilege_enabled_by_default = 1 | |
181 | Global Const $se_privilege_enabled = 2 | |
182 | Global Const $se_privilege_removed = 4 | |
183 | Global Const $se_privilege_used_for_access = -2147483648 | |
184 | Global Const $tokenuser = 1 | |
185 | Global Const $tokengroups = 2 | |
186 | Global Const $tokenprivileges = 3 | |
187 | Global Const $tokenowner = 4 | |
188 | Global Const $tokenprimarygroup = 5 | |
189 | Global Const $tokendefaultdacl = 6 | |
190 | Global Const $tokensource = 7 | |
191 | Global Const $tokentype = 8 | |
192 | Global Const $tokenimpersonationlevel = 9 | |
193 | Global Const $tokenstatistics = 10 | |
194 | Global Const $tokenrestrictedsids = 11 | |
195 | Global Const $tokensessionid = 12 | |
196 | Global Const $tokengroupsandprivileges = 13 | |
197 | Global Const $tokensessionreference = 14 | |
198 | Global Const $tokensandboxinert = 15 | |
199 | Global Const $tokenauditpolicy = 16 | |
200 | Global Const $tokenorigin = 17 | |
201 | Global Const $tokenelevationtype = 18 | |
202 | Global Const $tokenlinkedtoken = 19 | |
203 | Global Const $tokenelevation = 20 | |
204 | Global Const $tokenhasrestrictions = 21 | |
205 | Global Const $tokenaccessinformation = 22 | |
206 | Global Const $tokenvirtualizationallowed = 23 | |
207 | Global Const $tokenvirtualizationenabled = 24 | |
208 | Global Const $tokenintegritylevel = 25 | |
209 | Global Const $tokenuiaccess = 26 | |
210 | Global Const $tokenmandatorypolicy = 27 | |
211 | Global Const $tokenlogonsid = 28 | |
212 | Global Const $token_assign_primary = 1 | |
213 | Global Const $token_duplicate = 2 | |
214 | Global Const $token_impersonate = 4 | |
215 | Global Const $token_query = 8 | |
216 | Global Const $token_query_source = 16 | |
217 | Global Const $token_adjust_privileges = 32 | |
218 | Global Const $token_adjust_groups = 64 | |
219 | Global Const $token_adjust_default = 128 | |
220 | Global Const $token_adjust_sessionid = 256 | |
221 | ||
222 | Func _winapi_getlasterror($curerr = @error, $curext = @extended) | |
223 | Local $aresult = DllCall("kernel32.dll", "dword", "GetLastError") | |
224 | Return SetError($curerr, $curext, $aresult[0]) | |
225 | EndFunc | |
226 | ||
227 | Func _winapi_setlasterror($ierrcode, $curerr = @error, $curext = @extended) | |
228 | DllCall("kernel32.dll", "none", "SetLastError", "dword", $ierrcode) | |
229 | Return SetError($curerr, $curext) | |
230 | EndFunc | |
231 | ||
232 | Func _security__adjusttokenprivileges($htoken, $fdisableall, $pnewstate, $ibufferlen, $pprevstate = 0, $prequired = 0) | |
233 | Local $aresult = DllCall("advapi32.dll", "bool", "AdjustTokenPrivileges", "handle", $htoken, "bool", $fdisableall, "ptr", $pnewstate, "dword", $ibufferlen, "ptr", $pprevstate, "ptr", $prequired) | |
234 | If @error Then Return SetError(@error, @extended, False) | |
235 | Return $aresult[0] | |
236 | EndFunc | |
237 | ||
238 | Func _security__getaccountsid($saccount, $ssystem = "") | |
239 | Local $aacct = _security__lookupaccountname($saccount, $ssystem) | |
240 | If @error Then Return SetError(@error, 0, 0) | |
241 | Return _security__stringsidtosid($aacct[0]) | |
242 | EndFunc | |
243 | ||
244 | Func _security__getlengthsid($psid) | |
245 | If NOT _security__isvalidsid($psid) Then Return SetError(-1, 0, 0) | |
246 | Local $aresult = DllCall("advapi32.dll", "dword", "GetLengthSid", "ptr", $psid) | |
247 | If @error Then Return SetError(@error, @extended, 0) | |
248 | Return $aresult[0] | |
249 | EndFunc | |
250 | ||
251 | Func _security__gettokeninformation($htoken, $iclass) | |
252 | Local $aresult = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $htoken, "int", $iclass, "ptr", 0, "dword", 0, "dword*", 0) | |
253 | If @error Then Return SetError(@error, @extended, 0) | |
254 | If NOT $aresult[0] Then Return 0 | |
255 | Local $tbuffer = DllStructCreate("byte[" & $aresult[5] & "]") | |
256 | Local $pbuffer = DllStructGetPtr($tbuffer) | |
257 | $aresult = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $htoken, "int", $iclass, "ptr", $pbuffer, "dword", $aresult[5], "dword*", 0) | |
258 | If @error Then Return SetError(@error, @extended, 0) | |
259 | If NOT $aresult[0] Then Return 0 | |
260 | Return $tbuffer | |
261 | EndFunc | |
262 | ||
263 | Func _security__impersonateself($ilevel = 2) | |
264 | Local $aresult = DllCall("advapi32.dll", "bool", "ImpersonateSelf", "int", $ilevel) | |
265 | If @error Then Return SetError(@error, @extended, False) | |
266 | Return $aresult[0] | |
267 | EndFunc | |
268 | ||
269 | Func _security__isvalidsid($psid) | |
270 | Local $aresult = DllCall("advapi32.dll", "bool", "IsValidSid", "ptr", $psid) | |
271 | If @error Then Return SetError(@error, @extended, False) | |
272 | Return $aresult[0] | |
273 | EndFunc | |
274 | ||
275 | Func _security__lookupaccountname($saccount, $ssystem = "") | |
276 | Local $tdata = DllStructCreate("byte SID[256]") | |
277 | Local $psid = DllStructGetPtr($tdata, "SID") | |
278 | Local $aresult = DllCall("advapi32.dll", "bool", "LookupAccountNameW", "wstr", $ssystem, "wstr", $saccount, "ptr", $psid, "dword*", 256, "wstr", "", "dword*", 256, "int*", 0) | |
279 | If @error Then Return SetError(@error, @extended, 0) | |
280 | If NOT $aresult[0] Then Return 0 | |
281 | Local $aacct[3] | |
282 | $aacct[0] = _security__sidtostringsid($psid) | |
283 | $aacct[1] = $aresult[5] | |
284 | $aacct[2] = $aresult[7] | |
285 | Return $aacct | |
286 | EndFunc | |
287 | ||
288 | Func _security__lookupaccountsid($vsid) | |
289 | Local $psid, $aacct[3] | |
290 | If IsString($vsid) Then | |
291 | Local $tsid = _security__stringsidtosid($vsid) | |
292 | $psid = DllStructGetPtr($tsid) | |
293 | Else | |
294 | $psid = $vsid | |
295 | EndIf | |
296 | If NOT _security__isvalidsid($psid) Then Return SetError(-1, 0, 0) | |
297 | Local $aresult = DllCall("advapi32.dll", "bool", "LookupAccountSidW", "ptr", 0, "ptr", $psid, "wstr", "", "dword*", 256, "wstr", "", "dword*", 256, "int*", 0) | |
298 | If @error Then Return SetError(@error, @extended, 0) | |
299 | If NOT $aresult[0] Then Return 0 | |
300 | Local $aacct[3] | |
301 | $aacct[0] = $aresult[3] | |
302 | $aacct[1] = $aresult[5] | |
303 | $aacct[2] = $aresult[7] | |
304 | Return $aacct | |
305 | EndFunc | |
306 | ||
307 | Func _security__lookupprivilegevalue($ssystem, $sname) | |
308 | Local $aresult = DllCall("advapi32.dll", "int", "LookupPrivilegeValueW", "wstr", $ssystem, "wstr", $sname, "int64*", 0) | |
309 | If @error Then Return SetError(@error, @extended, 0) | |
310 | Return SetError(0, $aresult[0], $aresult[3]) | |
311 | EndFunc | |
312 | ||
313 | Func _security__openprocesstoken($hprocess, $iaccess) | |
314 | Local $aresult = DllCall("advapi32.dll", "int", "OpenProcessToken", "handle", $hprocess, "dword", $iaccess, "ptr", 0) | |
315 | If @error Then Return SetError(@error, @extended, 0) | |
316 | Return SetError(0, $aresult[0], $aresult[3]) | |
317 | EndFunc | |
318 | ||
319 | Func _security__openthreadtoken($iaccess, $hthread = 0, $fopenasself = False) | |
320 | If $hthread = 0 Then $hthread = DllCall("kernel32.dll", "handle", "GetCurrentThread") | |
321 | If @error Then Return SetError(@error, @extended, 0) | |
322 | Local $aresult = DllCall("advapi32.dll", "bool", "OpenThreadToken", "handle", $hthread[0], "dword", $iaccess, "int", $fopenasself, "ptr*", 0) | |
323 | If @error Then Return SetError(@error, @extended, 0) | |
324 | Return SetError(0, $aresult[0], $aresult[4]) | |
325 | EndFunc | |
326 | ||
327 | Func _security__openthreadtokenex($iaccess, $hthread = 0, $fopenasself = False) | |
328 | Local $htoken = _security__openthreadtoken($iaccess, $hthread, $fopenasself) | |
329 | If $htoken = 0 Then | |
330 | If _winapi_getlasterror() <> $error_no_token Then Return SetError(-3, _winapi_getlasterror(), 0) | |
331 | If NOT _security__impersonateself() Then Return SetError(-1, _winapi_getlasterror(), 0) | |
332 | $htoken = _security__openthreadtoken($iaccess, $hthread, $fopenasself) | |
333 | If $htoken = 0 Then Return SetError(-2, _winapi_getlasterror(), 0) | |
334 | EndIf | |
335 | Return $htoken | |
336 | EndFunc | |
337 | ||
338 | Func _security__setprivilege($htoken, $sprivilege, $fenable) | |
339 | Local $iluid = _security__lookupprivilegevalue("", $sprivilege) | |
340 | If $iluid = 0 Then Return SetError(-1, 0, False) | |
341 | Local $tcurrstate = DllStructCreate($tagtoken_privileges) | |
342 | Local $pcurrstate = DllStructGetPtr($tcurrstate) | |
343 | Local $icurrstate = DllStructGetSize($tcurrstate) | |
344 | Local $tprevstate = DllStructCreate($tagtoken_privileges) | |
345 | Local $pprevstate = DllStructGetPtr($tprevstate) | |
346 | Local $iprevstate = DllStructGetSize($tprevstate) | |
347 | Local $trequired = DllStructCreate("int Data") | |
348 | Local $prequired = DllStructGetPtr($trequired) | |
349 | DllStructSetData($tcurrstate, "Count", 1) | |
350 | DllStructSetData($tcurrstate, "LUID", $iluid) | |
351 | If NOT _security__adjusttokenprivileges($htoken, False, $pcurrstate, $icurrstate, $pprevstate, $prequired) Then Return SetError(-2, @error, False) | |
352 | DllStructSetData($tprevstate, "Count", 1) | |
353 | DllStructSetData($tprevstate, "LUID", $iluid) | |
354 | Local $iattributes = DllStructGetData($tprevstate, "Attributes") | |
355 | If $fenable Then | |
356 | $iattributes = BitOR($iattributes, $se_privilege_enabled) | |
357 | Else | |
358 | $iattributes = BitAND($iattributes, BitNOT($se_privilege_enabled)) | |
359 | EndIf | |
360 | DllStructSetData($tprevstate, "Attributes", $iattributes) | |
361 | If NOT _security__adjusttokenprivileges($htoken, False, $pprevstate, $iprevstate, $pcurrstate, $prequired) Then Return SetError(-3, @error, False) | |
362 | Return True | |
363 | EndFunc | |
364 | ||
365 | Func _security__sidtostringsid($psid) | |
366 | If NOT _security__isvalidsid($psid) Then Return SetError(-1, 0, "") | |
367 | Local $aresult = DllCall("advapi32.dll", "int", "ConvertSidToStringSidW", "ptr", $psid, "ptr*", 0) | |
368 | If @error Then Return SetError(@error, @extended, "") | |
369 | If NOT $aresult[0] Then Return "" | |
370 | Local $tbuffer = DllStructCreate("wchar Text[256]", $aresult[2]) | |
371 | Local $ssid = DllStructGetData($tbuffer, "Text") | |
372 | DllCall("Kernel32.dll", "ptr", "LocalFree", "ptr", $aresult[2]) | |
373 | Return $ssid | |
374 | EndFunc | |
375 | ||
376 | Func _security__sidtypestr($itype) | |
377 | Switch $itype | |
378 | Case 1 | |
379 | Return "User" | |
380 | Case 2 | |
381 | Return "Group" | |
382 | Case 3 | |
383 | Return "Domain" | |
384 | Case 4 | |
385 | Return "Alias" | |
386 | Case 5 | |
387 | Return "Well Known Group" | |
388 | Case 6 | |
389 | Return "Deleted Account" | |
390 | Case 7 | |
391 | Return "Invalid" | |
392 | Case 8 | |
393 | Return "Invalid" | |
394 | Case 9 | |
395 | Return "Computer" | |
396 | Case Else | |
397 | Return "Unknown SID Type" | |
398 | EndSwitch | |
399 | EndFunc | |
400 | ||
401 | Func _security__stringsidtosid($ssid) | |
402 | Local $aresult = DllCall("advapi32.dll", "bool", "ConvertStringSidToSidW", "wstr", $ssid, "ptr*", 0) | |
403 | If @error Then Return SetError(@error, @extended, 0) | |
404 | If NOT $aresult[0] Then Return 0 | |
405 | Local $isize = _security__getlengthsid($aresult[2]) | |
406 | Local $tbuffer = DllStructCreate("byte Data[" & $isize & "]", $aresult[2]) | |
407 | Local $tsid = DllStructCreate("byte Data[" & $isize & "]") | |
408 | DllStructSetData($tsid, "Data", DllStructGetData($tbuffer, "Data")) | |
409 | DllCall("kernel32.dll", "ptr", "LocalFree", "ptr", $aresult[2]) | |
410 | Return $tsid | |
411 | EndFunc | |
412 | ||
413 | Func _sendmessage($hwnd, $imsg, $wparam = 0, $lparam = 0, $ireturn = 0, $wparamtype = "wparam", $lparamtype = "lparam", $sreturntype = "lresult") | |
414 | Local $aresult = DllCall("user32.dll", $sreturntype, "SendMessageW", "hwnd", $hwnd, "uint", $imsg, $wparamtype, $wparam, $lparamtype, $lparam) | |
415 | If @error Then Return SetError(@error, @extended, "") | |
416 | If $ireturn >= 0 AND $ireturn <= 4 Then Return $aresult[$ireturn] | |
417 | Return $aresult | |
418 | EndFunc | |
419 | ||
420 | Func _sendmessagea($hwnd, $imsg, $wparam = 0, $lparam = 0, $ireturn = 0, $wparamtype = "wparam", $lparamtype = "lparam", $sreturntype = "lresult") | |
421 | Local $aresult = DllCall("user32.dll", $sreturntype, "SendMessageA", "hwnd", $hwnd, "uint", $imsg, $wparamtype, $wparam, $lparamtype, $lparam) | |
422 | If @error Then Return SetError(@error, @extended, "") | |
423 | If $ireturn >= 0 AND $ireturn <= 4 Then Return $aresult[$ireturn] | |
424 | Return $aresult | |
425 | EndFunc | |
426 | ||
427 | Global $__gainprocess_winapi[64][2] = [[0, 0]] | |
428 | Global $__gawinlist_winapi[64][2] = [[0, 0]] | |
429 | Global Const $__winapiconstant_wm_setfont = 48 | |
430 | Global Const $__winapiconstant_fw_normal = 400 | |
431 | Global Const $__winapiconstant_default_charset = 1 | |
432 | Global Const $__winapiconstant_out_default_precis = 0 | |
433 | Global Const $__winapiconstant_clip_default_precis = 0 | |
434 | Global Const $__winapiconstant_default_quality = 0 | |
435 | Global Const $__winapiconstant_format_message_allocate_buffer = 256 | |
436 | Global Const $__winapiconstant_format_message_from_system = 4096 | |
437 | Global Const $__winapiconstant_logpixelsx = 88 | |
438 | Global Const $__winapiconstant_logpixelsy = 90 | |
439 | Global Const $hgdi_error = Ptr(-1) | |
440 | Global Const $invalid_handle_value = Ptr(-1) | |
441 | Global Const $clr_invalid = -1 | |
442 | Global Const $__winapiconstant_flashw_caption = 1 | |
443 | Global Const $__winapiconstant_flashw_tray = 2 | |
444 | Global Const $__winapiconstant_flashw_timer = 4 | |
445 | Global Const $__winapiconstant_flashw_timernofg = 12 | |
446 | Global Const $__winapiconstant_gw_hwndnext = 2 | |
447 | Global Const $__winapiconstant_gw_child = 5 | |
448 | Global Const $__winapiconstant_di_mask = 1 | |
449 | Global Const $__winapiconstant_di_image = 2 | |
450 | Global Const $__winapiconstant_di_normal = 3 | |
451 | Global Const $__winapiconstant_di_compat = 4 | |
452 | Global Const $__winapiconstant_di_defaultsize = 8 | |
453 | Global Const $__winapiconstant_di_nomirror = 16 | |
454 | Global Const $__winapiconstant_display_device_attached_to_desktop = 1 | |
455 | Global Const $__winapiconstant_display_device_primary_device = 4 | |
456 | Global Const $__winapiconstant_display_device_mirroring_driver = 8 | |
457 | Global Const $__winapiconstant_display_device_vga_compatible = 16 | |
458 | Global Const $__winapiconstant_display_device_removable = 32 | |
459 | Global Const $__winapiconstant_display_device_modespruned = 134217728 | |
460 | Global Const $null_brush = 5 | |
461 | Global Const $null_pen = 8 | |
462 | Global Const $black_brush = 4 | |
463 | Global Const $dkgray_brush = 3 | |
464 | Global Const $dc_brush = 18 | |
465 | Global Const $gray_brush = 2 | |
466 | Global Const $hollow_brush = $null_brush | |
467 | Global Const $ltgray_brush = 1 | |
468 | Global Const $white_brush = 0 | |
469 | Global Const $black_pen = 7 | |
470 | Global Const $dc_pen = 19 | |
471 | Global Const $white_pen = 6 | |
472 | Global Const $ansi_fixed_font = 11 | |
473 | Global Const $ansi_var_font = 12 | |
474 | Global Const $device_default_font = 14 | |
475 | Global Const $default_gui_font = 17 | |
476 | Global Const $oem_fixed_font = 10 | |
477 | Global Const $system_font = 13 | |
478 | Global Const $system_fixed_font = 16 | |
479 | Global Const $default_palette = 15 | |
480 | Global Const $mb_precomposed = 1 | |
481 | Global Const $mb_composite = 2 | |
482 | Global Const $mb_useglyphchars = 4 | |
483 | Global Const $ulw_alpha = 2 | |
484 | Global Const $ulw_colorkey = 1 | |
485 | Global Const $ulw_opaque = 4 | |
486 | Global Const $wh_callwndproc = 4 | |
487 | Global Const $wh_callwndprocret = 12 | |
488 | Global Const $wh_cbt = 5 | |
489 | Global Const $wh_debug = 9 | |
490 | Global Const $wh_foregroundidle = 11 | |
491 | Global Const $wh_getmessage = 3 | |
492 | Global Const $wh_journalplayback = 1 | |
493 | Global Const $wh_journalrecord = 0 | |
494 | Global Const $wh_keyboard = 2 | |
495 | Global Const $wh_keyboard_ll = 13 | |
496 | Global Const $wh_mouse = 7 | |
497 | Global Const $wh_mouse_ll = 14 | |
498 | Global Const $wh_msgfilter = -1 | |
499 | Global Const $wh_shell = 10 | |
500 | Global Const $wh_sysmsgfilter = 6 | |
501 | Global Const $wpf_asyncwindowplacement = 4 | |
502 | Global Const $wpf_restoretomaximized = 2 | |
503 | Global Const $wpf_setminposition = 1 | |
504 | Global Const $kf_extended = 256 | |
505 | Global Const $kf_altdown = 8192 | |
506 | Global Const $kf_up = 32768 | |
507 | Global Const $llkhf_extended = BitShift($kf_extended, 8) | |
508 | Global Const $llkhf_injected = 16 | |
509 | Global Const $llkhf_altdown = BitShift($kf_altdown, 8) | |
510 | Global Const $llkhf_up = BitShift($kf_up, 8) | |
511 | Global Const $ofn_allowmultiselect = 512 | |
512 | Global Const $ofn_createprompt = 8192 | |
513 | Global Const $ofn_dontaddtorecent = 33554432 | |
514 | Global Const $ofn_enablehook = 32 | |
515 | Global Const $ofn_enableincludenotify = 4194304 | |
516 | Global Const $ofn_enablesizing = 8388608 | |
517 | Global Const $ofn_enabletemplate = 64 | |
518 | Global Const $ofn_enabletemplatehandle = 128 | |
519 | Global Const $ofn_explorer = 524288 | |
520 | Global Const $ofn_extensiondifferent = 1024 | |
521 | Global Const $ofn_filemustexist = 4096 | |
522 | Global Const $ofn_forceshowhidden = 268435456 | |
523 | Global Const $ofn_hidereadonly = 4 | |
524 | Global Const $ofn_longnames = 2097152 | |
525 | Global Const $ofn_nochangedir = 8 | |
526 | Global Const $ofn_nodereferencelinks = 1048576 | |
527 | Global Const $ofn_nolongnames = 262144 | |
528 | Global Const $ofn_nonetworkbutton = 131072 | |
529 | Global Const $ofn_noreadonlyreturn = 32768 | |
530 | Global Const $ofn_notestfilecreate = 65536 | |
531 | Global Const $ofn_novalidate = 256 | |
532 | Global Const $ofn_overwriteprompt = 2 | |
533 | Global Const $ofn_pathmustexist = 2048 | |
534 | Global Const $ofn_readonly = 1 | |
535 | Global Const $ofn_shareaware = 16384 | |
536 | Global Const $ofn_showhelp = 16 | |
537 | Global Const $ofn_ex_noplacesbar = 1 | |
538 | Global Const $tagcursorinfo = "dword Size;dword Flags;handle hCursor;" & $tagpoint | |
539 | Global Const $tagdisplay_device = "dword Size;wchar Name[32];wchar String[128];dword Flags;wchar ID[128];wchar Key[128]" | |
540 | Global Const $tagflashwinfo = "uint Size;hwnd hWnd;dword Flags;uint Count;dword TimeOut" | |
541 | Global Const $tagiconinfo = "bool Icon;dword XHotSpot;dword YHotSpot;handle hMask;handle hColor" | |
542 | Global Const $tagmemorystatusex = "dword Length;dword MemoryLoad;" & "uint64 TotalPhys;uint64 AvailPhys;uint64 TotalPageFile;uint64 AvailPageFile;" & "uint64 TotalVirtual;uint64 AvailVirtual;uint64 AvailExtendedVirtual" | |
543 | ||
544 | Func _winapi_attachconsole($iprocessid = -1) | |
545 | Local $aresult = DllCall("kernel32.dll", "bool", "AttachConsole", "dword", $iprocessid) | |
546 | If @error Then Return SetError(@error, @extended, False) | |
547 | Return $aresult[0] | |
548 | EndFunc | |
549 | ||
550 | Func _winapi_attachthreadinput($iattach, $iattachto, $fattach) | |
551 | Local $aresult = DllCall("user32.dll", "bool", "AttachThreadInput", "dword", $iattach, "dword", $iattachto, "bool", $fattach) | |
552 | If @error Then Return SetError(@error, @extended, False) | |
553 | Return $aresult[0] | |
554 | EndFunc | |
555 | ||
556 | Func _winapi_beep($ifreq = 500, $iduration = 1000) | |
557 | Local $aresult = DllCall("kernel32.dll", "bool", "Beep", "dword", $ifreq, "dword", $iduration) | |
558 | If @error Then Return SetError(@error, @extended, False) | |
559 | Return $aresult[0] | |
560 | EndFunc | |
561 | ||
562 | Func _winapi_bitblt($hdestdc, $ixdest, $iydest, $iwidth, $iheight, $hsrcdc, $ixsrc, $iysrc, $irop) | |
563 | 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) | |
564 | If @error Then Return SetError(@error, @extended, False) | |
565 | Return $aresult[0] | |
566 | EndFunc | |
567 | ||
568 | Func _winapi_callnexthookex($hhk, $icode, $wparam, $lparam) | |
569 | Local $aresult = DllCall("user32.dll", "lresult", "CallNextHookEx", "handle", $hhk, "int", $icode, "wparam", $wparam, "lparam", $lparam) | |
570 | If @error Then Return SetError(@error, @extended, -1) | |
571 | Return $aresult[0] | |
572 | EndFunc | |
573 | ||
574 | Func _winapi_callwindowproc($lpprevwndfunc, $hwnd, $msg, $wparam, $lparam) | |
575 | Local $aresult = DllCall("user32.dll", "lresult", "CallWindowProc", "ptr", $lpprevwndfunc, "hwnd", $hwnd, "uint", $msg, "wparam", $wparam, "lparam", $lparam) | |
576 | If @error Then Return SetError(@error, @extended, -1) | |
577 | Return $aresult[0] | |
578 | EndFunc | |
579 | ||
580 | Func _winapi_clienttoscreen($hwnd, ByRef $tpoint) | |
581 | Local $ppoint = DllStructGetPtr($tpoint) | |
582 | DllCall("user32.dll", "bool", "ClientToScreen", "hwnd", $hwnd, "ptr", $ppoint) | |
583 | Return SetError(@error, @extended, $tpoint) | |
584 | EndFunc | |
585 | ||
586 | Func _winapi_closehandle($hobject) | |
587 | Local $aresult = DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $hobject) | |
588 | If @error Then Return SetError(@error, @extended, False) | |
589 | Return $aresult[0] | |
590 | EndFunc | |
591 | ||
592 | Func _winapi_combinergn($hrgndest, $hrgnsrc1, $hrgnsrc2, $icombinemode) | |
593 | Local $aresult = DllCall("gdi32.dll", "int", "CombineRgn", "handle", $hrgndest, "handle", $hrgnsrc1, "handle", $hrgnsrc2, "int", $icombinemode) | |
594 | If @error Then Return SetError(@error, @extended, 0) | |
595 | Return $aresult[0] | |
596 | EndFunc | |
597 | ||
598 | Func _winapi_commdlgextendederror() | |
599 | Local Const $cderr_dialogfailure = 65535 | |
600 | Local Const $cderr_findresfailure = 6 | |
601 | Local Const $cderr_initialization = 2 | |
602 | Local Const $cderr_loadresfailure = 7 | |
603 | Local Const $cderr_loadstrfailure = 5 | |
604 | Local Const $cderr_lockresfailure = 8 | |
605 | Local Const $cderr_memallocfailure = 9 | |
606 | Local Const $cderr_memlockfailure = 10 | |
607 | Local Const $cderr_nohinstance = 4 | |
608 | Local Const $cderr_nohook = 11 | |
609 | Local Const $cderr_notemplate = 3 | |
610 | Local Const $cderr_registermsgfail = 12 | |
611 | Local Const $cderr_structsize = 1 | |
612 | Local Const $fnerr_buffertoosmall = 12291 | |
613 | Local Const $fnerr_invalidfilename = 12290 | |
614 | Local Const $fnerr_subclassfailure = 12289 | |
615 | Local $aresult = DllCall("comdlg32.dll", "dword", "CommDlgExtendedError") | |
616 | If @error Then Return SetError(@error, @extended, 0) | |
617 | Switch $aresult[0] | |
618 | Case $cderr_dialogfailure | |
619 | 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.") | |
620 | Case $cderr_findresfailure | |
621 | Return SetError($aresult[0], 0, "The common dialog box function failed to find a specified resource.") | |
622 | Case $cderr_initialization | |
623 | Return SetError($aresult[0], 0, "The common dialog box function failed during initialization." & @LF & "This error often occurs when sufficient memory is not available.") | |
624 | Case $cderr_loadresfailure | |
625 | Return SetError($aresult[0], 0, "The common dialog box function failed to load a specified resource.") | |
626 | Case $cderr_loadstrfailure | |
627 | Return SetError($aresult[0], 0, "The common dialog box function failed to load a specified string.") | |
628 | Case $cderr_lockresfailure | |
629 | Return SetError($aresult[0], 0, "The common dialog box function failed to lock a specified resource.") | |
630 | Case $cderr_memallocfailure | |
631 | Return SetError($aresult[0], 0, "The common dialog box function was unable to allocate memory for internal structures.") | |
632 | Case $cderr_memlockfailure | |
633 | Return SetError($aresult[0], 0, "The common dialog box function was unable to lock the memory associated with a handle.") | |
634 | Case $cderr_nohinstance | |
635 | 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.") | |
636 | Case $cderr_nohook | |
637 | 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.") | |
638 | Case $cderr_notemplate | |
639 | 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.") | |
640 | Case $cderr_registermsgfail | |
641 | Return SetError($aresult[0], 0, "The RegisterWindowMessage function returned an error code when it was called by the common dialog box function.") | |
642 | Case $cderr_structsize | |
643 | Return SetError($aresult[0], 0, "The lStructSize member of the initialization structure for the corresponding common dialog box is invalid") | |
644 | Case $fnerr_buffertoosmall | |
645 | 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.") | |
646 | Case $fnerr_invalidfilename | |
647 | Return SetError($aresult[0], 0, "A file name is invalid.") | |
648 | Case $fnerr_subclassfailure | |
649 | Return SetError($aresult[0], 0, "An attempt to subclass a list box failed because sufficient memory was not available.") | |
650 | EndSwitch | |
651 | Return Hex($aresult[0]) | |
652 | EndFunc | |
653 | ||
654 | Func _winapi_copyicon($hicon) | |
655 | Local $aresult = DllCall("user32.dll", "handle", "CopyIcon", "handle", $hicon) | |
656 | If @error Then Return SetError(@error, @extended, 0) | |
657 | Return $aresult[0] | |
658 | EndFunc | |
659 | ||
660 | Func _winapi_createbitmap($iwidth, $iheight, $iplanes = 1, $ibitsperpel = 1, $pbits = 0) | |
661 | Local $aresult = DllCall("gdi32.dll", "handle", "CreateBitmap", "int", $iwidth, "int", $iheight, "uint", $iplanes, "uint", $ibitsperpel, "ptr", $pbits) | |
662 | If @error Then Return SetError(@error, @extended, 0) | |
663 | Return $aresult[0] | |
664 | EndFunc | |
665 | ||
666 | Func _winapi_createcompatiblebitmap($hdc, $iwidth, $iheight) | |
667 | Local $aresult = DllCall("gdi32.dll", "handle", "CreateCompatibleBitmap", "handle", $hdc, "int", $iwidth, "int", $iheight) | |
668 | If @error Then Return SetError(@error, @extended, 0) | |
669 | Return $aresult[0] | |
670 | EndFunc | |
671 | ||
672 | Func _winapi_createcompatibledc($hdc) | |
673 | Local $aresult = DllCall("gdi32.dll", "handle", "CreateCompatibleDC", "handle", $hdc) | |
674 | If @error Then Return SetError(@error, @extended, 0) | |
675 | Return $aresult[0] | |
676 | EndFunc | |
677 | ||
678 | Func _winapi_createevent($pattributes = 0, $fmanualreset = True, $finitialstate = True, $sname = "") | |
679 | Local $snametype = "wstr" | |
680 | If $sname = "" Then | |
681 | $sname = 0 | |
682 | $snametype = "ptr" | |
683 | EndIf | |
684 | Local $aresult = DllCall("kernel32.dll", "handle", "CreateEventW", "ptr", $pattributes, "bool", $fmanualreset, "bool", $finitialstate, $snametype, $sname) | |
685 | If @error Then Return SetError(@error, @extended, 0) | |
686 | Return $aresult[0] | |
687 | EndFunc | |
688 | ||
689 | Func _winapi_createfile($sfilename, $icreation, $iaccess = 4, $ishare = 0, $iattributes = 0, $psecurity = 0) | |
690 | Local $ida = 0, $ism = 0, $icd = 0, $ifa = 0 | |
691 | If BitAND($iaccess, 1) <> 0 Then $ida = BitOR($ida, $generic_execute) | |
692 | If BitAND($iaccess, 2) <> 0 Then $ida = BitOR($ida, $generic_read) | |
693 | If BitAND($iaccess, 4) <> 0 Then $ida = BitOR($ida, $generic_write) | |
694 | If BitAND($ishare, 1) <> 0 Then $ism = BitOR($ism, $file_share_delete) | |
695 | If BitAND($ishare, 2) <> 0 Then $ism = BitOR($ism, $file_share_read) | |
696 | If BitAND($ishare, 4) <> 0 Then $ism = BitOR($ism, $file_share_write) | |
697 | Switch $icreation | |
698 | Case 0 | |
699 | $icd = $create_new | |
700 | Case 1 | |
701 | $icd = $create_always | |
702 | Case 2 | |
703 | $icd = $open_existing | |
704 | Case 3 | |
705 | $icd = $open_always | |
706 | Case 4 | |
707 | $icd = $truncate_existing | |
708 | EndSwitch | |
709 | If BitAND($iattributes, 1) <> 0 Then $ifa = BitOR($ifa, $file_attribute_archive) | |
710 | If BitAND($iattributes, 2) <> 0 Then $ifa = BitOR($ifa, $file_attribute_hidden) | |
711 | If BitAND($iattributes, 4) <> 0 Then $ifa = BitOR($ifa, $file_attribute_readonly) | |
712 | If BitAND($iattributes, 8) <> 0 Then $ifa = BitOR($ifa, $file_attribute_system) | |
713 | Local $aresult = DllCall("kernel32.dll", "handle", "CreateFileW", "wstr", $sfilename, "dword", $ida, "dword", $ism, "ptr", $psecurity, "dword", $icd, "dword", $ifa, "ptr", 0) | |
714 | If @error OR $aresult[0] = Ptr(-1) Then Return SetError(@error, @extended, 0) | |
715 | Return $aresult[0] | |
716 | EndFunc | |
717 | ||
718 | 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") | |
719 | 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) | |
720 | If @error Then Return SetError(@error, @extended, 0) | |
721 | Return $aresult[0] | |
722 | EndFunc | |
723 | ||
724 | Func _winapi_createfontindirect($tlogfont) | |
725 | Local $aresult = DllCall("gdi32.dll", "handle", "CreateFontIndirectW", "ptr", DllStructGetPtr($tlogfont)) | |
726 | If @error Then Return SetError(@error, @extended, 0) | |
727 | Return $aresult[0] | |
728 | EndFunc | |
729 | ||
730 | Func _winapi_createpen($ipenstyle, $iwidth, $ncolor) | |
731 | Local $aresult = DllCall("gdi32.dll", "handle", "CreatePen", "int", $ipenstyle, "int", $iwidth, "dword", $ncolor) | |
732 | If @error Then Return SetError(@error, @extended, 0) | |
733 | Return $aresult[0] | |
734 | EndFunc | |
735 | ||
736 | Func _winapi_createprocess($sappname, $scommand, $psecurity, $pthread, $finherit, $iflags, $penviron, $sdir, $pstartupinfo, $pprocess) | |
737 | Local $pcommand = 0 | |
738 | Local $sappnametype = "wstr", $sdirtype = "wstr" | |
739 | If $sappname = "" Then | |
740 | $sappnametype = "ptr" | |
741 | $sappname = 0 | |
742 | EndIf | |
743 | If $scommand <> "" Then | |
744 | Local $tcommand = DllStructCreate("wchar Text[" & 260 + 1 & "]") | |
745 | $pcommand = DllStructGetPtr($tcommand) | |
746 | DllStructSetData($tcommand, "Text", $scommand) | |
747 | EndIf | |
748 | If $sdir = "" Then | |
749 | $sdirtype = "ptr" | |
750 | $sdir = 0 | |
751 | EndIf | |
752 | Local $aresult = DllCall("kernel32.dll", "bool", "CreateProcessW", $sappnametype, $sappname, "ptr", $pcommand, "ptr", $psecurity, "ptr", $pthread, "bool", $finherit, "dword", $iflags, "ptr", $penviron, $sdirtype, $sdir, "ptr", $pstartupinfo, "ptr", $pprocess) | |
753 | If @error Then Return SetError(@error, @extended, False) | |
754 | Return $aresult[0] | |
755 | EndFunc | |
756 | ||
757 | Func _winapi_createrectrgn($ileftrect, $itoprect, $irightrect, $ibottomrect) | |
758 | Local $aresult = DllCall("gdi32.dll", "handle", "CreateRectRgn", "int", $ileftrect, "int", $itoprect, "int", $irightrect, "int", $ibottomrect) | |
759 | If @error Then Return SetError(@error, @extended, 0) | |
760 | Return $aresult[0] | |
761 | EndFunc | |
762 | ||
763 | Func _winapi_createroundrectrgn($ileftrect, $itoprect, $irightrect, $ibottomrect, $iwidthellipse, $iheightellipse) | |
764 | Local $aresult = DllCall("gdi32.dll", "handle", "CreateRoundRectRgn", "int", $ileftrect, "int", $itoprect, "int", $irightrect, "int", $ibottomrect, "int", $iwidthellipse, "int", $iheightellipse) | |
765 | If @error Then Return SetError(@error, @extended, 0) | |
766 | Return $aresult[0] | |
767 | EndFunc | |
768 | ||
769 | Func _winapi_createsolidbitmap($hwnd, $icolor, $iwidth, $iheight, $brgb = 1) | |
770 | Local $hdc = _winapi_getdc($hwnd) | |
771 | Local $hdestdc = _winapi_createcompatibledc($hdc) | |
772 | Local $hbitmap = _winapi_createcompatiblebitmap($hdc, $iwidth, $iheight) | |
773 | Local $hold = _winapi_selectobject($hdestdc, $hbitmap) | |
774 | Local $trect = DllStructCreate($tagrect) | |
775 | DllStructSetData($trect, 1, 0) | |
776 | DllStructSetData($trect, 2, 0) | |
777 | DllStructSetData($trect, 3, $iwidth) | |
778 | DllStructSetData($trect, 4, $iheight) | |
779 | If $brgb Then | |
780 | $icolor = BitOR(BitAND($icolor, 65280), BitShift(BitAND($icolor, 255), -16), BitShift(BitAND($icolor, 16711680), 16)) | |
781 | EndIf | |
782 | Local $hbrush = _winapi_createsolidbrush($icolor) | |
783 | _winapi_fillrect($hdestdc, DllStructGetPtr($trect), $hbrush) | |
784 | If @error Then | |
785 | _winapi_deleteobject($hbitmap) | |
786 | $hbitmap = 0 | |
787 | EndIf | |
788 | _winapi_deleteobject($hbrush) | |
789 | _winapi_releasedc($hwnd, $hdc) | |
790 | _winapi_selectobject($hdestdc, $hold) | |
791 | _winapi_deletedc($hdestdc) | |
792 | If NOT $hbitmap Then Return SetError(1, 0, 0) | |
793 | Return $hbitmap | |
794 | EndFunc | |
795 | ||
796 | Func _winapi_createsolidbrush($ncolor) | |
797 | Local $aresult = DllCall("gdi32.dll", "handle", "CreateSolidBrush", "dword", $ncolor) | |
798 | If @error Then Return SetError(@error, @extended, 0) | |
799 | Return $aresult[0] | |
800 | EndFunc | |
801 | ||
802 | Func _winapi_createwindowex($iexstyle, $sclass, $sname, $istyle, $ix, $iy, $iwidth, $iheight, $hparent, $hmenu = 0, $hinstance = 0, $pparam = 0) | |
803 | If $hinstance = 0 Then $hinstance = _winapi_getmodulehandle("") | |
804 | 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) | |
805 | If @error Then Return SetError(@error, @extended, 0) | |
806 | Return $aresult[0] | |
807 | EndFunc | |
808 | ||
809 | Func _winapi_defwindowproc($hwnd, $imsg, $iwparam, $ilparam) | |
810 | Local $aresult = DllCall("user32.dll", "lresult", "DefWindowProc", "hwnd", $hwnd, "uint", $imsg, "wparam", $iwparam, "lparam", $ilparam) | |
811 | If @error Then Return SetError(@error, @extended, 0) | |
812 | Return $aresult[0] | |
813 | EndFunc | |
814 | ||
815 | Func _winapi_deletedc($hdc) | |
816 | Local $aresult = DllCall("gdi32.dll", "bool", "DeleteDC", "handle", $hdc) | |
817 | If @error Then Return SetError(@error, @extended, False) | |
818 | Return $aresult[0] | |
819 | EndFunc | |
820 | ||
821 | Func _winapi_deleteobject($hobject) | |
822 | Local $aresult = DllCall("gdi32.dll", "bool", "DeleteObject", "handle", $hobject) | |
823 | If @error Then Return SetError(@error, @extended, False) | |
824 | Return $aresult[0] | |
825 | EndFunc | |
826 | ||
827 | Func _winapi_destroyicon($hicon) | |
828 | Local $aresult = DllCall("user32.dll", "bool", "DestroyIcon", "handle", $hicon) | |
829 | If @error Then Return SetError(@error, @extended, False) | |
830 | Return $aresult[0] | |
831 | EndFunc | |
832 | ||
833 | Func _winapi_destroywindow($hwnd) | |
834 | Local $aresult = DllCall("user32.dll", "bool", "DestroyWindow", "hwnd", $hwnd) | |
835 | If @error Then Return SetError(@error, @extended, False) | |
836 | Return $aresult[0] | |
837 | EndFunc | |
838 | ||
839 | Func _winapi_drawedge($hdc, $ptrrect, $nedgetype, $grfflags) | |
840 | Local $aresult = DllCall("user32.dll", "bool", "DrawEdge", "handle", $hdc, "ptr", $ptrrect, "uint", $nedgetype, "uint", $grfflags) | |
841 | If @error Then Return SetError(@error, @extended, False) | |
842 | Return $aresult[0] | |
843 | EndFunc | |
844 | ||
845 | Func _winapi_drawframecontrol($hdc, $ptrrect, $ntype, $nstate) | |
846 | Local $aresult = DllCall("user32.dll", "bool", "DrawFrameControl", "handle", $hdc, "ptr", $ptrrect, "uint", $ntype, "uint", $nstate) | |
847 | If @error Then Return SetError(@error, @extended, False) | |
848 | Return $aresult[0] | |
849 | EndFunc | |
850 | ||
851 | Func _winapi_drawicon($hdc, $ix, $iy, $hicon) | |
852 | Local $aresult = DllCall("user32.dll", "bool", "DrawIcon", "handle", $hdc, "int", $ix, "int", $iy, "handle", $hicon) | |
853 | If @error Then Return SetError(@error, @extended, False) | |
854 | Return $aresult[0] | |
855 | EndFunc | |
856 | ||
857 | Func _winapi_drawiconex($hdc, $ix, $iy, $hicon, $iwidth = 0, $iheight = 0, $istep = 0, $hbrush = 0, $iflags = 3) | |
858 | Local $ioptions | |
859 | Switch $iflags | |
860 | Case 1 | |
861 | $ioptions = $__winapiconstant_di_mask | |
862 | Case 2 | |
863 | $ioptions = $__winapiconstant_di_image | |
864 | Case 3 | |
865 | $ioptions = $__winapiconstant_di_normal | |
866 | Case 4 | |
867 | $ioptions = $__winapiconstant_di_compat | |
868 | Case 5 | |
869 | $ioptions = $__winapiconstant_di_defaultsize | |
870 | Case Else | |
871 | $ioptions = $__winapiconstant_di_nomirror | |
872 | EndSwitch | |
873 | 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) | |
874 | If @error Then Return SetError(@error, @extended, False) | |
875 | Return $aresult[0] | |
876 | EndFunc | |
877 | ||
878 | Func _winapi_drawline($hdc, $ix1, $iy1, $ix2, $iy2) | |
879 | _winapi_moveto($hdc, $ix1, $iy1) | |
880 | If @error Then Return SetError(@error, @extended, False) | |
881 | _winapi_lineto($hdc, $ix2, $iy2) | |
882 | If @error Then Return SetError(@error, @extended, False) | |
883 | Return True | |
884 | EndFunc | |
885 | ||
886 | Func _winapi_drawtext($hdc, $stext, ByRef $trect, $iflags) | |
887 | Local $aresult = DllCall("user32.dll", "int", "DrawTextW", "handle", $hdc, "wstr", $stext, "int", -1, "ptr", DllStructGetPtr($trect), "uint", $iflags) | |
888 | If @error Then Return SetError(@error, @extended, 0) | |
889 | Return $aresult[0] | |
890 | EndFunc | |
891 | ||
892 | Func _winapi_enablewindow($hwnd, $fenable = True) | |
893 | Local $aresult = DllCall("user32.dll", "bool", "EnableWindow", "hwnd", $hwnd, "bool", $fenable) | |
894 | If @error Then Return SetError(@error, @extended, False) | |
895 | Return $aresult[0] | |
896 | EndFunc | |
897 | ||
898 | Func _winapi_enumdisplaydevices($sdevice, $idevnum) | |
899 | Local $pname = 0, $iflags = 0, $adevice[5] | |
900 | If $sdevice <> "" Then | |
901 | Local $tname = DllStructCreate("wchar Text[" & StringLen($sdevice) + 1 & "]") | |
902 | $pname = DllStructGetPtr($tname) | |
903 | DllStructSetData($tname, "Text", $sdevice) | |
904 | EndIf | |
905 | Local $tdevice = DllStructCreate($tagdisplay_device) | |
906 | Local $pdevice = DllStructGetPtr($tdevice) | |
907 | Local $idevice = DllStructGetSize($tdevice) | |
908 | DllStructSetData($tdevice, "Size", $idevice) | |
909 | DllCall("user32.dll", "bool", "EnumDisplayDevicesW", "ptr", $pname, "dword", $idevnum, "ptr", $pdevice, "dword", 1) | |
910 | If @error Then Return SetError(@error, @extended, 0) | |
911 | Local $in = DllStructGetData($tdevice, "Flags") | |
912 | If BitAND($in, $__winapiconstant_display_device_attached_to_desktop) <> 0 Then $iflags = BitOR($iflags, 1) | |
913 | If BitAND($in, $__winapiconstant_display_device_primary_device) <> 0 Then $iflags = BitOR($iflags, 2) | |
914 | If BitAND($in, $__winapiconstant_display_device_mirroring_driver) <> 0 Then $iflags = BitOR($iflags, 4) | |
915 | If BitAND($in, $__winapiconstant_display_device_vga_compatible) <> 0 Then $iflags = BitOR($iflags, 8) | |
916 | If BitAND($in, $__winapiconstant_display_device_removable) <> 0 Then $iflags = BitOR($iflags, 16) | |
917 | If BitAND($in, $__winapiconstant_display_device_modespruned) <> 0 Then $iflags = BitOR($iflags, 32) | |
918 | $adevice[0] = True | |
919 | $adevice[1] = DllStructGetData($tdevice, "Name") | |
920 | $adevice[2] = DllStructGetData($tdevice, "String") | |
921 | $adevice[3] = $iflags | |
922 | $adevice[4] = DllStructGetData($tdevice, "ID") | |
923 | Return $adevice | |
924 | EndFunc | |
925 | ||
926 | Func _winapi_enumwindows($fvisible = True, $hwnd = Default) | |
927 | __winapi_enumwindowsinit() | |
928 | If $hwnd = Default Then $hwnd = _winapi_getdesktopwindow() | |
929 | __winapi_enumwindowschild($hwnd, $fvisible) | |
930 | Return $__gawinlist_winapi | |
931 | EndFunc | |
932 | ||
933 | Func __winapi_enumwindowsadd($hwnd, $sclass = "") | |
934 | If $sclass = "" Then $sclass = _winapi_getclassname($hwnd) | |
935 | $__gawinlist_winapi[0][0] += 1 | |
936 | Local $icount = $__gawinlist_winapi[0][0] | |
937 | If $icount >= $__gawinlist_winapi[0][1] Then | |
938 | ReDim $__gawinlist_winapi[$icount + 64][2] | |
939 | $__gawinlist_winapi[0][1] += 64 | |
940 | EndIf | |
941 | $__gawinlist_winapi[$icount][0] = $hwnd | |
942 | $__gawinlist_winapi[$icount][1] = $sclass | |
943 | EndFunc | |
944 | ||
945 | Func __winapi_enumwindowschild($hwnd, $fvisible = True) | |
946 | $hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_child) | |
947 | While $hwnd <> 0 | |
948 | If (NOT $fvisible) OR _winapi_iswindowvisible($hwnd) Then | |
949 | __winapi_enumwindowschild($hwnd, $fvisible) | |
950 | __winapi_enumwindowsadd($hwnd) | |
951 | EndIf | |
952 | $hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_hwndnext) | |
953 | WEnd | |
954 | EndFunc | |
955 | ||
956 | Func __winapi_enumwindowsinit() | |
957 | ReDim $__gawinlist_winapi[64][2] | |
958 | $__gawinlist_winapi[0][0] = 0 | |
959 | $__gawinlist_winapi[0][1] = 64 | |
960 | EndFunc | |
961 | ||
962 | Func _winapi_enumwindowspopup() | |
963 | __winapi_enumwindowsinit() | |
964 | Local $hwnd = _winapi_getwindow(_winapi_getdesktopwindow(), $__winapiconstant_gw_child) | |
965 | Local $sclass | |
966 | While $hwnd <> 0 | |
967 | If _winapi_iswindowvisible($hwnd) Then | |
968 | $sclass = _winapi_getclassname($hwnd) | |
969 | If $sclass = "#32768" Then | |
970 | __winapi_enumwindowsadd($hwnd) | |
971 | ElseIf $sclass = "ToolbarWindow32" Then | |
972 | __winapi_enumwindowsadd($hwnd) | |
973 | ElseIf $sclass = "ToolTips_Class32" Then | |
974 | __winapi_enumwindowsadd($hwnd) | |
975 | ElseIf $sclass = "BaseBar" Then | |
976 | __winapi_enumwindowschild($hwnd) | |
977 | EndIf | |
978 | EndIf | |
979 | $hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_hwndnext) | |
980 | WEnd | |
981 | Return $__gawinlist_winapi | |
982 | EndFunc | |
983 | ||
984 | Func _winapi_enumwindowstop() | |
985 | __winapi_enumwindowsinit() | |
986 | Local $hwnd = _winapi_getwindow(_winapi_getdesktopwindow(), $__winapiconstant_gw_child) | |
987 | While $hwnd <> 0 | |
988 | If _winapi_iswindowvisible($hwnd) Then __winapi_enumwindowsadd($hwnd) | |
989 | $hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_hwndnext) | |
990 | WEnd | |
991 | Return $__gawinlist_winapi | |
992 | EndFunc | |
993 | ||
994 | Func _winapi_expandenvironmentstrings($sstring) | |
995 | Local $aresult = DllCall("kernel32.dll", "dword", "ExpandEnvironmentStringsW", "wstr", $sstring, "wstr", "", "dword", 4096) | |
996 | If @error Then Return SetError(@error, @extended, "") | |
997 | Return $aresult[2] | |
998 | EndFunc | |
999 | ||
1000 | Func _winapi_extracticonex($sfile, $iindex, $plarge, $psmall, $iicons) | |
1001 | Local $aresult = DllCall("shell32.dll", "uint", "ExtractIconExW", "wstr", $sfile, "int", $iindex, "handle", $plarge, "handle", $psmall, "uint", $iicons) | |
1002 | If @error Then Return SetError(@error, @extended, 0) | |
1003 | Return $aresult[0] | |
1004 | EndFunc | |
1005 | ||
1006 | Func _winapi_fatalappexit($smessage) | |
1007 | DllCall("kernel32.dll", "none", "FatalAppExitW", "uint", 0, "wstr", $smessage) | |
1008 | If @error Then Return SetError(@error, @extended) | |
1009 | EndFunc | |
1010 | ||
1011 | Func _winapi_fillrect($hdc, $ptrrect, $hbrush) | |
1012 | Local $aresult | |
1013 | If IsPtr($hbrush) Then | |
1014 | $aresult = DllCall("user32.dll", "int", "FillRect", "handle", $hdc, "ptr", $ptrrect, "handle", $hbrush) | |
1015 | Else | |
1016 | $aresult = DllCall("user32.dll", "int", "FillRect", "handle", $hdc, "ptr", $ptrrect, "dword", $hbrush) | |
1017 | EndIf | |
1018 | If @error Then Return SetError(@error, @extended, False) | |
1019 | Return $aresult[0] | |
1020 | EndFunc | |
1021 | ||
1022 | Func _winapi_findexecutable($sfilename, $sdirectory = "") | |
1023 | Local $aresult = DllCall("shell32.dll", "INT", "FindExecutableW", "wstr", $sfilename, "wstr", $sdirectory, "wstr", "") | |
1024 | If @error Then Return SetError(@error, @extended, 0) | |
1025 | Return SetExtended($aresult[0], $aresult[3]) | |
1026 | EndFunc | |
1027 | ||
1028 | Func _winapi_findwindow($sclassname, $swindowname) | |
1029 | Local $aresult = DllCall("user32.dll", "hwnd", "FindWindowW", "wstr", $sclassname, "wstr", $swindowname) | |
1030 | If @error Then Return SetError(@error, @extended, 0) | |
1031 | Return $aresult[0] | |
1032 | EndFunc | |
1033 | ||
1034 | Func _winapi_flashwindow($hwnd, $finvert = True) | |
1035 | Local $aresult = DllCall("user32.dll", "bool", "FlashWindow", "hwnd", $hwnd, "bool", $finvert) | |
1036 | If @error Then Return SetError(@error, @extended, False) | |
1037 | Return $aresult[0] | |
1038 | EndFunc | |
1039 | ||
1040 | Func _winapi_flashwindowex($hwnd, $iflags = 3, $icount = 3, $itimeout = 0) | |
1041 | Local $tflash = DllStructCreate($tagflashwinfo) | |
1042 | Local $pflash = DllStructGetPtr($tflash) | |
1043 | Local $iflash = DllStructGetSize($tflash) | |
1044 | Local $imode = 0 | |
1045 | If BitAND($iflags, 1) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_caption) | |
1046 | If BitAND($iflags, 2) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_tray) | |
1047 | If BitAND($iflags, 4) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_timer) | |
1048 | If BitAND($iflags, 8) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_timernofg) | |
1049 | DllStructSetData($tflash, "Size", $iflash) | |
1050 | DllStructSetData($tflash, "hWnd", $hwnd) | |
1051 | DllStructSetData($tflash, "Flags", $imode) | |
1052 | DllStructSetData($tflash, "Count", $icount) | |
1053 | DllStructSetData($tflash, "Timeout", $itimeout) | |
1054 | Local $aresult = DllCall("user32.dll", "bool", "FlashWindowEx", "ptr", $pflash) | |
1055 | If @error Then Return SetError(@error, @extended, False) | |
1056 | Return $aresult[0] | |
1057 | EndFunc | |
1058 | ||
1059 | Func _winapi_floattoint($nfloat) | |
1060 | Local $tfloat = DllStructCreate("float") | |
1061 | Local $tint = DllStructCreate("int", DllStructGetPtr($tfloat)) | |
1062 | DllStructSetData($tfloat, 1, $nfloat) | |
1063 | Return DllStructGetData($tint, 1) | |
1064 | EndFunc | |
1065 | ||
1066 | Func _winapi_flushfilebuffers($hfile) | |
1067 | Local $aresult = DllCall("kernel32.dll", "bool", "FlushFileBuffers", "handle", $hfile) | |
1068 | If @error Then Return SetError(@error, @extended, False) | |
1069 | Return $aresult[0] | |
1070 | EndFunc | |
1071 | ||
1072 | Func _winapi_formatmessage($iflags, $psource, $imessageid, $ilanguageid, ByRef $pbuffer, $isize, $varguments) | |
1073 | Local $sbuffertype = "ptr" | |
1074 | If IsString($pbuffer) Then $sbuffertype = "wstr" | |
1075 | Local $aresult = DllCall("Kernel32.dll", "dword", "FormatMessageW", "dword", $iflags, "ptr", $psource, "dword", $imessageid, "dword", $ilanguageid, $sbuffertype, $pbuffer, "dword", $isize, "ptr", $varguments) | |
1076 | If @error Then Return SetError(@error, @extended, 0) | |
1077 | If $sbuffertype = "wstr" Then $pbuffer = $aresult[5] | |
1078 | Return $aresult[0] | |
1079 | EndFunc | |
1080 | ||
1081 | Func _winapi_framerect($hdc, $ptrrect, $hbrush) | |
1082 | Local $aresult = DllCall("user32.dll", "int", "FrameRect", "handle", $hdc, "ptr", $ptrrect, "handle", $hbrush) | |
1083 | If @error Then Return SetError(@error, @extended, False) | |
1084 | Return $aresult[0] | |
1085 | EndFunc | |
1086 | ||
1087 | Func _winapi_freelibrary($hmodule) | |
1088 | Local $aresult = DllCall("kernel32.dll", "bool", "FreeLibrary", "handle", $hmodule) | |
1089 | If @error Then Return SetError(@error, @extended, False) | |
1090 | Return $aresult[0] | |
1091 | EndFunc | |
1092 | ||
1093 | Func _winapi_getancestor($hwnd, $iflags = 1) | |
1094 | Local $aresult = DllCall("user32.dll", "hwnd", "GetAncestor", "hwnd", $hwnd, "uint", $iflags) | |
1095 | If @error Then Return SetError(@error, @extended, 0) | |
1096 | Return $aresult[0] | |
1097 | EndFunc | |
1098 | ||
1099 | Func _winapi_getasynckeystate($ikey) | |
1100 | Local $aresult = DllCall("user32.dll", "short", "GetAsyncKeyState", "int", $ikey) | |
1101 | If @error Then Return SetError(@error, @extended, 0) | |
1102 | Return $aresult[0] | |
1103 | EndFunc | |
1104 | ||
1105 | Func _winapi_getbkmode($hdc) | |
1106 | Local $aresult = DllCall("gdi32.dll", "int", "GetBkMode", "handle", $hdc) | |
1107 | If @error Then Return SetError(@error, @extended, 0) | |
1108 | Return $aresult[0] | |
1109 | EndFunc | |
1110 | ||
1111 | Func _winapi_getclassname($hwnd) | |
1112 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
1113 | Local $aresult = DllCall("user32.dll", "int", "GetClassNameW", "hwnd", $hwnd, "wstr", "", "int", 4096) | |
1114 | If @error Then Return SetError(@error, @extended, False) | |
1115 | Return SetExtended($aresult[0], $aresult[2]) | |
1116 | EndFunc | |
1117 | ||
1118 | Func _winapi_getclientheight($hwnd) | |
1119 | Local $trect = _winapi_getclientrect($hwnd) | |
1120 | If @error Then Return SetError(@error, @extended, 0) | |
1121 | Return DllStructGetData($trect, "Bottom") - DllStructGetData($trect, "Top") | |
1122 | EndFunc | |
1123 | ||
1124 | Func _winapi_getclientwidth($hwnd) | |
1125 | Local $trect = _winapi_getclientrect($hwnd) | |
1126 | If @error Then Return SetError(@error, @extended, 0) | |
1127 | Return DllStructGetData($trect, "Right") - DllStructGetData($trect, "Left") | |
1128 | EndFunc | |
1129 | ||
1130 | Func _winapi_getclientrect($hwnd) | |
1131 | Local $trect = DllStructCreate($tagrect) | |
1132 | DllCall("user32.dll", "bool", "GetClientRect", "hwnd", $hwnd, "ptr", DllStructGetPtr($trect)) | |
1133 | If @error Then Return SetError(@error, @extended, 0) | |
1134 | Return $trect | |
1135 | EndFunc | |
1136 | ||
1137 | Func _winapi_getcurrentprocess() | |
1138 | Local $aresult = DllCall("kernel32.dll", "handle", "GetCurrentProcess") | |
1139 | If @error Then Return SetError(@error, @extended, 0) | |
1140 | Return $aresult[0] | |
1141 | EndFunc | |
1142 | ||
1143 | Func _winapi_getcurrentprocessid() | |
1144 | Local $aresult = DllCall("kernel32.dll", "dword", "GetCurrentProcessId") | |
1145 | If @error Then Return SetError(@error, @extended, 0) | |
1146 | Return $aresult[0] | |
1147 | EndFunc | |
1148 | ||
1149 | Func _winapi_getcurrentthread() | |
1150 | Local $aresult = DllCall("kernel32.dll", "handle", "GetCurrentThread") | |
1151 | If @error Then Return SetError(@error, @extended, 0) | |
1152 | Return $aresult[0] | |
1153 | EndFunc | |
1154 | ||
1155 | Func _winapi_getcurrentthreadid() | |
1156 | Local $aresult = DllCall("kernel32.dll", "dword", "GetCurrentThreadId") | |
1157 | If @error Then Return SetError(@error, @extended, 0) | |
1158 | Return $aresult[0] | |
1159 | EndFunc | |
1160 | ||
1161 | Func _winapi_getcursorinfo() | |
1162 | Local $tcursor = DllStructCreate($tagcursorinfo) | |
1163 | Local $icursor = DllStructGetSize($tcursor) | |
1164 | DllStructSetData($tcursor, "Size", $icursor) | |
1165 | DllCall("user32.dll", "bool", "GetCursorInfo", "ptr", DllStructGetPtr($tcursor)) | |
1166 | If @error Then Return SetError(@error, @extended, 0) | |
1167 | Local $acursor[5] | |
1168 | $acursor[0] = True | |
1169 | $acursor[1] = DllStructGetData($tcursor, "Flags") <> 0 | |
1170 | $acursor[2] = DllStructGetData($tcursor, "hCursor") | |
1171 | $acursor[3] = DllStructGetData($tcursor, "X") | |
1172 | $acursor[4] = DllStructGetData($tcursor, "Y") | |
1173 | Return $acursor | |
1174 | EndFunc | |
1175 | ||
1176 | Func _winapi_getdc($hwnd) | |
1177 | Local $aresult = DllCall("user32.dll", "handle", "GetDC", "hwnd", $hwnd) | |
1178 | If @error Then Return SetError(@error, @extended, 0) | |
1179 | Return $aresult[0] | |
1180 | EndFunc | |
1181 | ||
1182 | Func _winapi_getdesktopwindow() | |
1183 | Local $aresult = DllCall("user32.dll", "hwnd", "GetDesktopWindow") | |
1184 | If @error Then Return SetError(@error, @extended, 0) | |
1185 | Return $aresult[0] | |
1186 | EndFunc | |
1187 | ||
1188 | Func _winapi_getdevicecaps($hdc, $iindex) | |
1189 | Local $aresult = DllCall("gdi32.dll", "int", "GetDeviceCaps", "handle", $hdc, "int", $iindex) | |
1190 | If @error Then Return SetError(@error, @extended, 0) | |
1191 | Return $aresult[0] | |
1192 | EndFunc | |
1193 | ||
1194 | Func _winapi_getdibits($hdc, $hbmp, $istartscan, $iscanlines, $pbits, $pbi, $iusage) | |
1195 | Local $aresult = DllCall("gdi32.dll", "int", "GetDIBits", "handle", $hdc, "handle", $hbmp, "uint", $istartscan, "uint", $iscanlines, "ptr", $pbits, "ptr", $pbi, "uint", $iusage) | |
1196 | If @error Then Return SetError(@error, @extended, False) | |
1197 | Return $aresult[0] | |
1198 | EndFunc | |
1199 | ||
1200 | Func _winapi_getdlgctrlid($hwnd) | |
1201 | Local $aresult = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hwnd) | |
1202 | If @error Then Return SetError(@error, @extended, 0) | |
1203 | Return $aresult[0] | |
1204 | EndFunc | |
1205 | ||
1206 | Func _winapi_getdlgitem($hwnd, $iitemid) | |
1207 | Local $aresult = DllCall("user32.dll", "hwnd", "GetDlgItem", "hwnd", $hwnd, "int", $iitemid) | |
1208 | If @error Then Return SetError(@error, @extended, 0) | |
1209 | Return $aresult[0] | |
1210 | EndFunc | |
1211 | ||
1212 | Func _winapi_getfocus() | |
1213 | Local $aresult = DllCall("user32.dll", "hwnd", "GetFocus") | |
1214 | If @error Then Return SetError(@error, @extended, 0) | |
1215 | Return $aresult[0] | |
1216 | EndFunc | |
1217 | ||
1218 | Func _winapi_getforegroundwindow() | |
1219 | Local $aresult = DllCall("user32.dll", "hwnd", "GetForegroundWindow") | |
1220 | If @error Then Return SetError(@error, @extended, 0) | |
1221 | Return $aresult[0] | |
1222 | EndFunc | |
1223 | ||
1224 | Func _winapi_getguiresources($iflag = 0, $hprocess = -1) | |
1225 | If $hprocess = -1 Then $hprocess = _winapi_getcurrentprocess() | |
1226 | Local $aresult = DllCall("user32.dll", "dword", "GetGuiResources", "handle", $hprocess, "dword", $iflag) | |
1227 | If @error Then Return SetError(@error, @extended, 0) | |
1228 | Return $aresult[0] | |
1229 | EndFunc | |
1230 | ||
1231 | Func _winapi_geticoninfo($hicon) | |
1232 | Local $tinfo = DllStructCreate($tagiconinfo) | |
1233 | DllCall("user32.dll", "bool", "GetIconInfo", "handle", $hicon, "ptr", DllStructGetPtr($tinfo)) | |
1234 | If @error Then Return SetError(@error, @extended, 0) | |
1235 | Local $aicon[6] | |
1236 | $aicon[0] = True | |
1237 | $aicon[1] = DllStructGetData($tinfo, "Icon") <> 0 | |
1238 | $aicon[2] = DllStructGetData($tinfo, "XHotSpot") | |
1239 | $aicon[3] = DllStructGetData($tinfo, "YHotSpot") | |
1240 | $aicon[4] = DllStructGetData($tinfo, "hMask") | |
1241 | $aicon[5] = DllStructGetData($tinfo, "hColor") | |
1242 | Return $aicon | |
1243 | EndFunc | |
1244 | ||
1245 | Func _winapi_getfilesizeex($hfile) | |
1246 | Local $aresult = DllCall("kernel32.dll", "bool", "GetFileSizeEx", "handle", $hfile, "int64*", 0) | |
1247 | If @error Then Return SetError(@error, @extended, 0) | |
1248 | Return $aresult[2] | |
1249 | EndFunc | |
1250 | ||
1251 | Func _winapi_getlasterrormessage() | |
1252 | Local $tbufferptr = DllStructCreate("ptr") | |
1253 | Local $pbufferptr = DllStructGetPtr($tbufferptr) | |
1254 | Local $ncount = _winapi_formatmessage(BitOR($__winapiconstant_format_message_allocate_buffer, $__winapiconstant_format_message_from_system), 0, _winapi_getlasterror(), 0, $pbufferptr, 0, 0) | |
1255 | If @error Then Return SetError(@error, 0, "") | |
1256 | Local $stext = "" | |
1257 | Local $pbuffer = DllStructGetData($tbufferptr, 1) | |
1258 | If $pbuffer Then | |
1259 | If $ncount > 0 Then | |
1260 | Local $tbuffer = DllStructCreate("wchar[" & ($ncount + 1) & "]", $pbuffer) | |
1261 | $stext = DllStructGetData($tbuffer, 1) | |
1262 | EndIf | |
1263 | _winapi_localfree($pbuffer) | |
1264 | EndIf | |
1265 | Return $stext | |
1266 | EndFunc | |
1267 | ||
1268 | Func _winapi_getlayeredwindowattributes($hwnd, ByRef $i_transcolor, ByRef $transparency, $ascolorref = False) | |
1269 | $i_transcolor = -1 | |
1270 | $transparency = -1 | |
1271 | Local $aresult = DllCall("user32.dll", "bool", "GetLayeredWindowAttributes", "hwnd", $hwnd, "dword*", $i_transcolor, "byte*", $transparency, "dword*", 0) | |
1272 | If @error Then Return SetError(@error, @extended, 0) | |
1273 | If NOT $ascolorref Then | |
1274 | $aresult[2] = Hex(String($aresult[2]), 6) | |
1275 | $aresult[2] = "0x" & StringMid($aresult[2], 5, 2) & StringMid($aresult[2], 3, 2) & StringMid($aresult[2], 1, 2) | |
1276 | EndIf | |
1277 | $i_transcolor = $aresult[2] | |
1278 | $transparency = $aresult[3] | |
1279 | Return $aresult[4] | |
1280 | EndFunc | |
1281 | ||
1282 | Func _winapi_getmodulehandle($smodulename) | |
1283 | Local $smodulenametype = "wstr" | |
1284 | If $smodulename = "" Then | |
1285 | $smodulename = 0 | |
1286 | $smodulenametype = "ptr" | |
1287 | EndIf | |
1288 | Local $aresult = DllCall("kernel32.dll", "handle", "GetModuleHandleW", $smodulenametype, $smodulename) | |
1289 | If @error Then Return SetError(@error, @extended, 0) | |
1290 | Return $aresult[0] | |
1291 | EndFunc | |
1292 | ||
1293 | Func _winapi_getmousepos($ftoclient = False, $hwnd = 0) | |
1294 | Local $imode = Opt("MouseCoordMode", 1) | |
1295 | Local $apos = MouseGetPos() | |
1296 | Opt("MouseCoordMode", $imode) | |
1297 | Local $tpoint = DllStructCreate($tagpoint) | |
1298 | DllStructSetData($tpoint, "X", $apos[0]) | |
1299 | DllStructSetData($tpoint, "Y", $apos[1]) | |
1300 | If $ftoclient Then | |
1301 | _winapi_screentoclient($hwnd, $tpoint) | |
1302 | If @error Then Return SetError(@error, @extended, 0) | |
1303 | EndIf | |
1304 | Return $tpoint | |
1305 | EndFunc | |
1306 | ||
1307 | Func _winapi_getmouseposx($ftoclient = False, $hwnd = 0) | |
1308 | Local $tpoint = _winapi_getmousepos($ftoclient, $hwnd) | |
1309 | If @error Then Return SetError(@error, @extended, 0) | |
1310 | Return DllStructGetData($tpoint, "X") | |
1311 | EndFunc | |
1312 | ||
1313 | Func _winapi_getmouseposy($ftoclient = False, $hwnd = 0) | |
1314 | Local $tpoint = _winapi_getmousepos($ftoclient, $hwnd) | |
1315 | If @error Then Return SetError(@error, @extended, 0) | |
1316 | Return DllStructGetData($tpoint, "Y") | |
1317 | EndFunc | |
1318 | ||
1319 | Func _winapi_getobject($hobject, $isize, $pobject) | |
1320 | Local $aresult = DllCall("gdi32.dll", "int", "GetObject", "handle", $hobject, "int", $isize, "ptr", $pobject) | |
1321 | If @error Then Return SetError(@error, @extended, 0) | |
1322 | Return $aresult[0] | |
1323 | EndFunc | |
1324 | ||
1325 | Func _winapi_getopenfilename($stitle = "", $sfilter = "All files (*.*)", $sinitaldir = ".", $sdefaultfile = "", $sdefaultext = "", $ifilterindex = 1, $iflags = 0, $iflagsex = 0, $hwndowner = 0) | |
1326 | Local $ipathlen = 4096 | |
1327 | Local $inulls = 0 | |
1328 | Local $tofn = DllStructCreate($tagopenfilename) | |
1329 | Local $afiles[1] = [0] | |
1330 | Local $iflag = $iflags | |
1331 | Local $asflines = StringSplit($sfilter, "|") | |
1332 | Local $asfilter[$asflines[0] * 2 + 1] | |
1333 | Local $istart, $ifinal, $stfilter | |
1334 | $asfilter[0] = $asflines[0] * 2 | |
1335 | For $i = 1 To $asflines[0] | |
1336 | $istart = StringInStr($asflines[$i], "(", 0, 1) | |
1337 | $ifinal = StringInStr($asflines[$i], ")", 0, -1) | |
1338 | $asfilter[$i * 2 - 1] = StringStripWS(StringLeft($asflines[$i], $istart - 1), 3) | |
1339 | $asfilter[$i * 2] = StringStripWS(StringTrimRight(StringTrimLeft($asflines[$i], $istart), StringLen($asflines[$i]) - $ifinal + 1), 3) | |
1340 | $stfilter &= "wchar[" & StringLen($asfilter[$i * 2 - 1]) + 1 & "];wchar[" & StringLen($asfilter[$i * 2]) + 1 & "];" | |
1341 | Next | |
1342 | Local $ttitle = DllStructCreate("wchar Title[" & StringLen($stitle) + 1 & "]") | |
1343 | Local $tinitialdir = DllStructCreate("wchar InitDir[" & StringLen($sinitaldir) + 1 & "]") | |
1344 | Local $tfilter = DllStructCreate($stfilter & "wchar") | |
1345 | Local $tpath = DllStructCreate("wchar Path[" & $ipathlen & "]") | |
1346 | Local $textn = DllStructCreate("wchar Extension[" & StringLen($sdefaultext) + 1 & "]") | |
1347 | For $i = 1 To $asfilter[0] | |
1348 | DllStructSetData($tfilter, $i, $asfilter[$i]) | |
1349 | Next | |
1350 | DllStructSetData($ttitle, "Title", $stitle) | |
1351 | DllStructSetData($tinitialdir, "InitDir", $sinitaldir) | |
1352 | DllStructSetData($tpath, "Path", $sdefaultfile) | |
1353 | DllStructSetData($textn, "Extension", $sdefaultext) | |
1354 | DllStructSetData($tofn, "StructSize", DllStructGetSize($tofn)) | |
1355 | DllStructSetData($tofn, "hwndOwner", $hwndowner) | |
1356 | DllStructSetData($tofn, "lpstrFilter", DllStructGetPtr($tfilter)) | |
1357 | DllStructSetData($tofn, "nFilterIndex", $ifilterindex) | |
1358 | DllStructSetData($tofn, "lpstrFile", DllStructGetPtr($tpath)) | |
1359 | DllStructSetData($tofn, "nMaxFile", $ipathlen) | |
1360 | DllStructSetData($tofn, "lpstrInitialDir", DllStructGetPtr($tinitialdir)) | |
1361 | DllStructSetData($tofn, "lpstrTitle", DllStructGetPtr($ttitle)) | |
1362 | DllStructSetData($tofn, "Flags", $iflag) | |
1363 | DllStructSetData($tofn, "lpstrDefExt", DllStructGetPtr($textn)) | |
1364 | DllStructSetData($tofn, "FlagsEx", $iflagsex) | |
1365 | DllCall("comdlg32.dll", "bool", "GetOpenFileNameW", "ptr", DllStructGetPtr($tofn)) | |
1366 | If @error Then Return SetError(@error, @extended, $afiles) | |
1367 | If BitAND($iflags, $ofn_allowmultiselect) = $ofn_allowmultiselect AND BitAND($iflags, $ofn_explorer) = $ofn_explorer Then | |
1368 | For $x = 1 To $ipathlen | |
1369 | If DllStructGetData($tpath, "Path", $x) = Chr(0) Then | |
1370 | DllStructSetData($tpath, "Path", "|", $x) | |
1371 | $inulls += 1 | |
1372 | Else | |
1373 | $inulls = 0 | |
1374 | EndIf | |
1375 | If $inulls = 2 Then ExitLoop | |
1376 | Next | |
1377 | DllStructSetData($tpath, "Path", Chr(0), $x - 1) | |
1378 | $afiles = StringSplit(DllStructGetData($tpath, "Path"), "|") | |
1379 | If $afiles[0] = 1 Then Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path")) | |
1380 | Return StringSplit(DllStructGetData($tpath, "Path"), "|") | |
1381 | ElseIf BitAND($iflags, $ofn_allowmultiselect) = $ofn_allowmultiselect Then | |
1382 | $afiles = StringSplit(DllStructGetData($tpath, "Path"), " ") | |
1383 | If $afiles[0] = 1 Then Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path")) | |
1384 | Return StringSplit(StringReplace(DllStructGetData($tpath, "Path"), " ", "|"), "|") | |
1385 | Else | |
1386 | Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path")) | |
1387 | EndIf | |
1388 | EndFunc | |
1389 | ||
1390 | Func _winapi_getoverlappedresult($hfile, $poverlapped, ByRef $ibytes, $fwait = False) | |
1391 | Local $aresult = DllCall("kernel32.dll", "bool", "GetOverlappedResult", "handle", $hfile, "ptr", $poverlapped, "dword*", 0, "bool", $fwait) | |
1392 | If @error Then Return SetError(@error, @extended, False) | |
1393 | $ibytes = $aresult[3] | |
1394 | Return $aresult[0] | |
1395 | EndFunc | |
1396 | ||
1397 | Func _winapi_getparent($hwnd) | |
1398 | Local $aresult = DllCall("user32.dll", "hwnd", "GetParent", "hwnd", $hwnd) | |
1399 | If @error Then Return SetError(@error, @extended, 0) | |
1400 | Return $aresult[0] | |
1401 | EndFunc | |
1402 | ||
1403 | Func _winapi_getprocessaffinitymask($hprocess) | |
1404 | Local $aresult = DllCall("kernel32.dll", "bool", "GetProcessAffinityMask", "handle", $hprocess, "dword_ptr*", 0, "dword_ptr*", 0) | |
1405 | If @error Then Return SetError(@error, @extended, 0) | |
1406 | Local $amask[3] | |
1407 | $amask[0] = True | |
1408 | $amask[1] = $aresult[2] | |
1409 | $amask[2] = $aresult[3] | |
1410 | Return $amask | |
1411 | EndFunc | |
1412 | ||
1413 | Func _winapi_getsavefilename($stitle = "", $sfilter = "All files (*.*)", $sinitaldir = ".", $sdefaultfile = "", $sdefaultext = "", $ifilterindex = 1, $iflags = 0, $iflagsex = 0, $hwndowner = 0) | |
1414 | Local $ipathlen = 4096 | |
1415 | Local $tofn = DllStructCreate($tagopenfilename) | |
1416 | Local $afiles[1] = [0] | |
1417 | Local $iflag = $iflags | |
1418 | Local $asflines = StringSplit($sfilter, "|") | |
1419 | Local $asfilter[$asflines[0] * 2 + 1] | |
1420 | Local $istart, $ifinal, $stfilter | |
1421 | $asfilter[0] = $asflines[0] * 2 | |
1422 | For $i = 1 To $asflines[0] | |
1423 | $istart = StringInStr($asflines[$i], "(", 0, 1) | |
1424 | $ifinal = StringInStr($asflines[$i], ")", 0, -1) | |
1425 | $asfilter[$i * 2 - 1] = StringStripWS(StringLeft($asflines[$i], $istart - 1), 3) | |
1426 | $asfilter[$i * 2] = StringStripWS(StringTrimRight(StringTrimLeft($asflines[$i], $istart), StringLen($asflines[$i]) - $ifinal + 1), 3) | |
1427 | $stfilter &= "wchar[" & StringLen($asfilter[$i * 2 - 1]) + 1 & "];wchar[" & StringLen($asfilter[$i * 2]) + 1 & "];" | |
1428 | Next | |
1429 | Local $ttitle = DllStructCreate("wchar Title[" & StringLen($stitle) + 1 & "]") | |
1430 | Local $tinitialdir = DllStructCreate("wchar InitDir[" & StringLen($sinitaldir) + 1 & "]") | |
1431 | Local $tfilter = DllStructCreate($stfilter & "wchar") | |
1432 | Local $tpath = DllStructCreate("wchar Path[" & $ipathlen & "]") | |
1433 | Local $textn = DllStructCreate("wchar Extension[" & StringLen($sdefaultext) + 1 & "]") | |
1434 | For $i = 1 To $asfilter[0] | |
1435 | DllStructSetData($tfilter, $i, $asfilter[$i]) | |
1436 | Next | |
1437 | DllStructSetData($ttitle, "Title", $stitle) | |
1438 | DllStructSetData($tinitialdir, "InitDir", $sinitaldir) | |
1439 | DllStructSetData($tpath, "Path", $sdefaultfile) | |
1440 | DllStructSetData($textn, "Extension", $sdefaultext) | |
1441 | DllStructSetData($tofn, "StructSize", DllStructGetSize($tofn)) | |
1442 | DllStructSetData($tofn, "hwndOwner", $hwndowner) | |
1443 | DllStructSetData($tofn, "lpstrFilter", DllStructGetPtr($tfilter)) | |
1444 | DllStructSetData($tofn, "nFilterIndex", $ifilterindex) | |
1445 | DllStructSetData($tofn, "lpstrFile", DllStructGetPtr($tpath)) | |
1446 | DllStructSetData($tofn, "nMaxFile", $ipathlen) | |
1447 | DllStructSetData($tofn, "lpstrInitialDir", DllStructGetPtr($tinitialdir)) | |
1448 | DllStructSetData($tofn, "lpstrTitle", DllStructGetPtr($ttitle)) | |
1449 | DllStructSetData($tofn, "Flags", $iflag) | |
1450 | DllStructSetData($tofn, "lpstrDefExt", DllStructGetPtr($textn)) | |
1451 | DllStructSetData($tofn, "FlagsEx", $iflagsex) | |
1452 | DllCall("comdlg32.dll", "bool", "GetSaveFileNameW", "ptr", DllStructGetPtr($tofn)) | |
1453 | If @error Then Return SetError(@error, @extended, $afiles) | |
1454 | Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path")) | |
1455 | EndFunc | |
1456 | ||
1457 | Func _winapi_getstockobject($iobject) | |
1458 | Local $aresult = DllCall("gdi32.dll", "handle", "GetStockObject", "int", $iobject) | |
1459 | If @error Then Return SetError(@error, @extended, 0) | |
1460 | Return $aresult[0] | |
1461 | EndFunc | |
1462 | ||
1463 | Func _winapi_getstdhandle($istdhandle) | |
1464 | If $istdhandle < 0 OR $istdhandle > 2 Then Return SetError(2, 0, -1) | |
1465 | Local Const $ahandle[3] = [-10, -11, -12] | |
1466 | Local $aresult = DllCall("kernel32.dll", "handle", "GetStdHandle", "dword", $ahandle[$istdhandle]) | |
1467 | If @error Then Return SetError(@error, @extended, -1) | |
1468 | Return $aresult[0] | |
1469 | EndFunc | |
1470 | ||
1471 | Func _winapi_getsyscolor($iindex) | |
1472 | Local $aresult = DllCall("user32.dll", "dword", "GetSysColor", "int", $iindex) | |
1473 | If @error Then Return SetError(@error, @extended, 0) | |
1474 | Return $aresult[0] | |
1475 | EndFunc | |
1476 | ||
1477 | Func _winapi_getsyscolorbrush($iindex) | |
1478 | Local $aresult = DllCall("user32.dll", "handle", "GetSysColorBrush", "int", $iindex) | |
1479 | If @error Then Return SetError(@error, @extended, 0) | |
1480 | Return $aresult[0] | |
1481 | EndFunc | |
1482 | ||
1483 | Func _winapi_getsystemmetrics($iindex) | |
1484 | Local $aresult = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $iindex) | |
1485 | If @error Then Return SetError(@error, @extended, 0) | |
1486 | Return $aresult[0] | |
1487 | EndFunc | |
1488 | ||
1489 | Func _winapi_gettextextentpoint32($hdc, $stext) | |
1490 | Local $tsize = DllStructCreate($tagsize) | |
1491 | Local $isize = StringLen($stext) | |
1492 | DllCall("gdi32.dll", "bool", "GetTextExtentPoint32W", "handle", $hdc, "wstr", $stext, "int", $isize, "ptr", DllStructGetPtr($tsize)) | |
1493 | If @error Then Return SetError(@error, @extended, 0) | |
1494 | Return $tsize | |
1495 | EndFunc | |
1496 | ||
1497 | Func _winapi_getwindow($hwnd, $icmd) | |
1498 | Local $aresult = DllCall("user32.dll", "hwnd", "GetWindow", "hwnd", $hwnd, "uint", $icmd) | |
1499 | If @error Then Return SetError(@error, @extended, 0) | |
1500 | Return $aresult[0] | |
1501 | EndFunc | |
1502 | ||
1503 | Func _winapi_getwindowdc($hwnd) | |
1504 | Local $aresult = DllCall("user32.dll", "handle", "GetWindowDC", "hwnd", $hwnd) | |
1505 | If @error Then Return SetError(@error, @extended, 0) | |
1506 | Return $aresult[0] | |
1507 | EndFunc | |
1508 | ||
1509 | Func _winapi_getwindowheight($hwnd) | |
1510 | Local $trect = _winapi_getwindowrect($hwnd) | |
1511 | If @error Then Return SetError(@error, @extended, 0) | |
1512 | Return DllStructGetData($trect, "Bottom") - DllStructGetData($trect, "Top") | |
1513 | EndFunc | |
1514 | ||
1515 | Func _winapi_getwindowlong($hwnd, $iindex) | |
1516 | Local $sfuncname = "GetWindowLongW" | |
1517 | If @AutoItX64 Then $sfuncname = "GetWindowLongPtrW" | |
1518 | Local $aresult = DllCall("user32.dll", "long_ptr", $sfuncname, "hwnd", $hwnd, "int", $iindex) | |
1519 | If @error Then Return SetError(@error, @extended, 0) | |
1520 | Return $aresult[0] | |
1521 | EndFunc | |
1522 | ||
1523 | Func _winapi_getwindowplacement($hwnd) | |
1524 | Local $twindowplacement = DllStructCreate($tagwindowplacement) | |
1525 | DllStructSetData($twindowplacement, "length", DllStructGetSize($twindowplacement)) | |
1526 | Local $pwindowplacement = DllStructGetPtr($twindowplacement) | |
1527 | DllCall("user32.dll", "bool", "GetWindowPlacement", "hwnd", $hwnd, "ptr", $pwindowplacement) | |
1528 | If @error Then Return SetError(@error, @extended, 0) | |
1529 | Return $twindowplacement | |
1530 | EndFunc | |
1531 | ||
1532 | Func _winapi_getwindowrect($hwnd) | |
1533 | Local $trect = DllStructCreate($tagrect) | |
1534 | DllCall("user32.dll", "bool", "GetWindowRect", "hwnd", $hwnd, "ptr", DllStructGetPtr($trect)) | |
1535 | If @error Then Return SetError(@error, @extended, 0) | |
1536 | Return $trect | |
1537 | EndFunc | |
1538 | ||
1539 | Func _winapi_getwindowrgn($hwnd, $hrgn) | |
1540 | Local $aresult = DllCall("user32.dll", "int", "GetWindowRgn", "hwnd", $hwnd, "handle", $hrgn) | |
1541 | If @error Then Return SetError(@error, @extended, 0) | |
1542 | Return $aresult[0] | |
1543 | EndFunc | |
1544 | ||
1545 | Func _winapi_getwindowtext($hwnd) | |
1546 | Local $aresult = DllCall("user32.dll", "int", "GetWindowTextW", "hwnd", $hwnd, "wstr", "", "int", 4096) | |
1547 | If @error Then Return SetError(@error, @extended, "") | |
1548 | Return SetExtended($aresult[0], $aresult[2]) | |
1549 | EndFunc | |
1550 | ||
1551 | Func _winapi_getwindowthreadprocessid($hwnd, ByRef $ipid) | |
1552 | Local $aresult = DllCall("user32.dll", "dword", "GetWindowThreadProcessId", "hwnd", $hwnd, "dword*", 0) | |
1553 | If @error Then Return SetError(@error, @extended, 0) | |
1554 | $ipid = $aresult[2] | |
1555 | Return $aresult[0] | |
1556 | EndFunc | |
1557 | ||
1558 | Func _winapi_getwindowwidth($hwnd) | |
1559 | Local $trect = _winapi_getwindowrect($hwnd) | |
1560 | If @error Then Return SetError(@error, @extended, 0) | |
1561 | Return DllStructGetData($trect, "Right") - DllStructGetData($trect, "Left") | |
1562 | EndFunc | |
1563 | ||
1564 | Func _winapi_getxyfrompoint(ByRef $tpoint, ByRef $ix, ByRef $iy) | |
1565 | $ix = DllStructGetData($tpoint, "X") | |
1566 | $iy = DllStructGetData($tpoint, "Y") | |
1567 | EndFunc | |
1568 | ||
1569 | Func _winapi_globalmemorystatus() | |
1570 | Local $tmem = DllStructCreate($tagmemorystatusex) | |
1571 | Local $pmem = DllStructGetPtr($tmem) | |
1572 | Local $imem = DllStructGetSize($tmem) | |
1573 | DllStructSetData($tmem, 1, $imem) | |
1574 | DllCall("kernel32.dll", "none", "GlobalMemoryStatusEx", "ptr", $pmem) | |
1575 | If @error Then Return SetError(@error, @extended, 0) | |
1576 | Local $amem[7] | |
1577 | $amem[0] = DllStructGetData($tmem, 2) | |
1578 | $amem[1] = DllStructGetData($tmem, 3) | |
1579 | $amem[2] = DllStructGetData($tmem, 4) | |
1580 | $amem[3] = DllStructGetData($tmem, 5) | |
1581 | $amem[4] = DllStructGetData($tmem, 6) | |
1582 | $amem[5] = DllStructGetData($tmem, 7) | |
1583 | $amem[6] = DllStructGetData($tmem, 8) | |
1584 | Return $amem | |
1585 | EndFunc | |
1586 | ||
1587 | Func _winapi_guidfromstring($sguid) | |
1588 | Local $tguid = DllStructCreate($tagguid) | |
1589 | _winapi_guidfromstringex($sguid, DllStructGetPtr($tguid)) | |
1590 | If @error Then Return SetError(@error, @extended, 0) | |
1591 | Return $tguid | |
1592 | EndFunc | |
1593 | ||
1594 | Func _winapi_guidfromstringex($sguid, $pguid) | |
1595 | Local $aresult = DllCall("ole32.dll", "long", "CLSIDFromString", "wstr", $sguid, "ptr", $pguid) | |
1596 | If @error Then Return SetError(@error, @extended, False) | |
1597 | Return $aresult[0] | |
1598 | EndFunc | |
1599 | ||
1600 | Func _winapi_hiword($ilong) | |
1601 | Return BitShift($ilong, 16) | |
1602 | EndFunc | |
1603 | ||
1604 | Func _winapi_inprocess($hwnd, ByRef $hlastwnd) | |
1605 | If $hwnd = $hlastwnd Then Return True | |
1606 | For $ii = $__gainprocess_winapi[0][0] To 1 Step -1 | |
1607 | If $hwnd = $__gainprocess_winapi[$ii][0] Then | |
1608 | If $__gainprocess_winapi[$ii][1] Then | |
1609 | $hlastwnd = $hwnd | |
1610 | Return True | |
1611 | Else | |
1612 | Return False | |
1613 | EndIf | |
1614 | EndIf | |
1615 | Next | |
1616 | Local $iprocessid | |
1617 | _winapi_getwindowthreadprocessid($hwnd, $iprocessid) | |
1618 | Local $icount = $__gainprocess_winapi[0][0] + 1 | |
1619 | If $icount >= 64 Then $icount = 1 | |
1620 | $__gainprocess_winapi[0][0] = $icount | |
1621 | $__gainprocess_winapi[$icount][0] = $hwnd | |
1622 | $__gainprocess_winapi[$icount][1] = ($iprocessid = @AutoItPID) | |
1623 | Return $__gainprocess_winapi[$icount][1] | |
1624 | EndFunc | |
1625 | ||
1626 | Func _winapi_inttofloat($iint) | |
1627 | Local $tint = DllStructCreate("int") | |
1628 | Local $tfloat = DllStructCreate("float", DllStructGetPtr($tint)) | |
1629 | DllStructSetData($tint, 1, $iint) | |
1630 | Return DllStructGetData($tfloat, 1) | |
1631 | EndFunc | |
1632 | ||
1633 | Func _winapi_isclassname($hwnd, $sclassname) | |
1634 | Local $sseparator = Opt("GUIDataSeparatorChar") | |
1635 | Local $aclassname = StringSplit($sclassname, $sseparator) | |
1636 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
1637 | Local $sclasscheck = _winapi_getclassname($hwnd) | |
1638 | For $x = 1 To UBound($aclassname) - 1 | |
1639 | If StringUpper(StringMid($sclasscheck, 1, StringLen($aclassname[$x]))) = StringUpper($aclassname[$x]) Then Return True | |
1640 | Next | |
1641 | Return False | |
1642 | EndFunc | |
1643 | ||
1644 | Func _winapi_iswindow($hwnd) | |
1645 | Local $aresult = DllCall("user32.dll", "bool", "IsWindow", "hwnd", $hwnd) | |
1646 | If @error Then Return SetError(@error, @extended, 0) | |
1647 | Return $aresult[0] | |
1648 | EndFunc | |
1649 | ||
1650 | Func _winapi_iswindowvisible($hwnd) | |
1651 | Local $aresult = DllCall("user32.dll", "bool", "IsWindowVisible", "hwnd", $hwnd) | |
1652 | If @error Then Return SetError(@error, @extended, 0) | |
1653 | Return $aresult[0] | |
1654 | EndFunc | |
1655 | ||
1656 | Func _winapi_invalidaterect($hwnd, $trect = 0, $ferase = True) | |
1657 | Local $prect = 0 | |
1658 | If IsDllStruct($trect) Then $prect = DllStructGetPtr($trect) | |
1659 | Local $aresult = DllCall("user32.dll", "bool", "InvalidateRect", "hwnd", $hwnd, "ptr", $prect, "bool", $ferase) | |
1660 | If @error Then Return SetError(@error, @extended, False) | |
1661 | Return $aresult[0] | |
1662 | EndFunc | |
1663 | ||
1664 | Func _winapi_lineto($hdc, $ix, $iy) | |
1665 | Local $aresult = DllCall("gdi32.dll", "bool", "LineTo", "handle", $hdc, "int", $ix, "int", $iy) | |
1666 | If @error Then Return SetError(@error, @extended, False) | |
1667 | Return $aresult[0] | |
1668 | EndFunc | |
1669 | ||
1670 | Func _winapi_loadbitmap($hinstance, $sbitmap) | |
1671 | Local $sbitmaptype = "int" | |
1672 | If IsString($sbitmap) Then $sbitmaptype = "wstr" | |
1673 | Local $aresult = DllCall("user32.dll", "handle", "LoadBitmapW", "handle", $hinstance, $sbitmaptype, $sbitmap) | |
1674 | If @error Then Return SetError(@error, @extended, 0) | |
1675 | Return $aresult[0] | |
1676 | EndFunc | |
1677 | ||
1678 | Func _winapi_loadimage($hinstance, $simage, $itype, $ixdesired, $iydesired, $iload) | |
1679 | Local $aresult, $simagetype = "int" | |
1680 | If IsString($simage) Then $simagetype = "wstr" | |
1681 | $aresult = DllCall("user32.dll", "handle", "LoadImageW", "handle", $hinstance, $simagetype, $simage, "uint", $itype, "int", $ixdesired, "int", $iydesired, "uint", $iload) | |
1682 | If @error Then Return SetError(@error, @extended, 0) | |
1683 | Return $aresult[0] | |
1684 | EndFunc | |
1685 | ||
1686 | Func _winapi_loadlibrary($sfilename) | |
1687 | Local $aresult = DllCall("kernel32.dll", "handle", "LoadLibraryW", "wstr", $sfilename) | |
1688 | If @error Then Return SetError(@error, @extended, 0) | |
1689 | Return $aresult[0] | |
1690 | EndFunc | |
1691 | ||
1692 | Func _winapi_loadlibraryex($sfilename, $iflags = 0) | |
1693 | Local $aresult = DllCall("kernel32.dll", "handle", "LoadLibraryExW", "wstr", $sfilename, "ptr", 0, "dword", $iflags) | |
1694 | If @error Then Return SetError(@error, @extended, 0) | |
1695 | Return $aresult[0] | |
1696 | EndFunc | |
1697 | ||
1698 | Func _winapi_loadshell32icon($iiconid) | |
1699 | Local $ticons = DllStructCreate("ptr Data") | |
1700 | Local $picons = DllStructGetPtr($ticons) | |
1701 | Local $iicons = _winapi_extracticonex("shell32.dll", $iiconid, 0, $picons, 1) | |
1702 | If @error Then Return SetError(@error, @extended, 0) | |
1703 | If $iicons <= 0 Then Return SetError(1, 0, 0) | |
1704 | Return DllStructGetData($ticons, "Data") | |
1705 | EndFunc | |
1706 | ||
1707 | Func _winapi_loadstring($hinstance, $istringid) | |
1708 | Local $aresult = DllCall("user32.dll", "int", "LoadStringW", "handle", $hinstance, "uint", $istringid, "wstr", "", "int", 4096) | |
1709 | If @error Then Return SetError(@error, @extended, "") | |
1710 | Return SetExtended($aresult[0], $aresult[3]) | |
1711 | EndFunc | |
1712 | ||
1713 | Func _winapi_localfree($hmem) | |
1714 | Local $aresult = DllCall("kernel32.dll", "handle", "LocalFree", "handle", $hmem) | |
1715 | If @error Then Return SetError(@error, @extended, False) | |
1716 | Return $aresult[0] | |
1717 | EndFunc | |
1718 | ||
1719 | Func _winapi_loword($ilong) | |
1720 | Return BitAND($ilong, 65535) | |
1721 | EndFunc | |
1722 | ||
1723 | Func _winapi_makelangid($lgidprimary, $lgidsub) | |
1724 | Return BitOR(BitShift($lgidsub, -10), $lgidprimary) | |
1725 | EndFunc | |
1726 | ||
1727 | Func _winapi_makelcid($lgid, $srtid) | |
1728 | Return BitOR(BitShift($srtid, -16), $lgid) | |
1729 | EndFunc | |
1730 | ||
1731 | Func _winapi_makelong($ilo, $ihi) | |
1732 | Return BitOR(BitShift($ihi, -16), BitAND($ilo, 65535)) | |
1733 | EndFunc | |
1734 | ||
1735 | Func _winapi_makeqword($lodword, $hidword) | |
1736 | Local $tint64 = DllStructCreate("uint64") | |
1737 | Local $tdwords = DllStructCreate("dword;dword", DllStructGetPtr($tint64)) | |
1738 | DllStructSetData($tdwords, 1, $lodword) | |
1739 | DllStructSetData($tdwords, 2, $hidword) | |
1740 | Return DllStructGetData($tint64, 1) | |
1741 | EndFunc | |
1742 | ||
1743 | Func _winapi_messagebeep($itype = 1) | |
1744 | Local $isound | |
1745 | Switch $itype | |
1746 | Case 1 | |
1747 | $isound = 0 | |
1748 | Case 2 | |
1749 | $isound = 16 | |
1750 | Case 3 | |
1751 | $isound = 32 | |
1752 | Case 4 | |
1753 | $isound = 48 | |
1754 | Case 5 | |
1755 | $isound = 64 | |
1756 | Case Else | |
1757 | $isound = -1 | |
1758 | EndSwitch | |
1759 | Local $aresult = DllCall("user32.dll", "bool", "MessageBeep", "uint", $isound) | |
1760 | If @error Then Return SetError(@error, @extended, False) | |
1761 | Return $aresult[0] | |
1762 | EndFunc | |
1763 | ||
1764 | Func _winapi_msgbox($iflags, $stitle, $stext) | |
1765 | BlockInput(0) | |
1766 | MsgBox($iflags, $stitle, $stext & " ") | |
1767 | EndFunc | |
1768 | ||
1769 | Func _winapi_mouse_event($iflags, $ix = 0, $iy = 0, $idata = 0, $iextrainfo = 0) | |
1770 | DllCall("user32.dll", "none", "mouse_event", "dword", $iflags, "dword", $ix, "dword", $iy, "dword", $idata, "ulong_ptr", $iextrainfo) | |
1771 | If @error Then Return SetError(@error, @extended) | |
1772 | EndFunc | |
1773 | ||
1774 | Func _winapi_moveto($hdc, $ix, $iy) | |
1775 | Local $aresult = DllCall("gdi32.dll", "bool", "MoveToEx", "handle", $hdc, "int", $ix, "int", $iy, "ptr", 0) | |
1776 | If @error Then Return SetError(@error, @extended, False) | |
1777 | Return $aresult[0] | |
1778 | EndFunc | |
1779 | ||
1780 | Func _winapi_movewindow($hwnd, $ix, $iy, $iwidth, $iheight, $frepaint = True) | |
1781 | Local $aresult = DllCall("user32.dll", "bool", "MoveWindow", "hwnd", $hwnd, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight, "bool", $frepaint) | |
1782 | If @error Then Return SetError(@error, @extended, False) | |
1783 | Return $aresult[0] | |
1784 | EndFunc | |
1785 | ||
1786 | Func _winapi_muldiv($inumber, $inumerator, $idenominator) | |
1787 | Local $aresult = DllCall("kernel32.dll", "int", "MulDiv", "int", $inumber, "int", $inumerator, "int", $idenominator) | |
1788 | If @error Then Return SetError(@error, @extended, -1) | |
1789 | Return $aresult[0] | |
1790 | EndFunc | |
1791 | ||
1792 | Func _winapi_multibytetowidechar($stext, $icodepage = 0, $iflags = 0, $bretstring = False) | |
1793 | Local $stexttype = "ptr", $ptext = $stext | |
1794 | If IsDllStruct($stext) Then | |
1795 | $ptext = DllStructGetPtr($stext) | |
1796 | Else | |
1797 | If NOT IsPtr($stext) Then $stexttype = "STR" | |
1798 | EndIf | |
1799 | Local $aresult = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $icodepage, "dword", $iflags, $stexttype, $ptext, "int", -1, "ptr", 0, "int", 0) | |
1800 | If @error Then Return SetError(@error, @extended, 0) | |
1801 | Local $iout = $aresult[0] | |
1802 | Local $tout = DllStructCreate("wchar[" & $iout & "]") | |
1803 | Local $pout = DllStructGetPtr($tout) | |
1804 | $aresult = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $icodepage, "dword", $iflags, $stexttype, $ptext, "int", -1, "ptr", $pout, "int", $iout) | |
1805 | If @error Then Return SetError(@error, @extended, 0) | |
1806 | If $bretstring Then Return DllStructGetData($tout, 1) | |
1807 | Return $tout | |
1808 | EndFunc | |
1809 | ||
1810 | Func _winapi_multibytetowidecharex($stext, $ptext, $icodepage = 0, $iflags = 0) | |
1811 | Local $aresult = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $icodepage, "dword", $iflags, "STR", $stext, "int", -1, "ptr", $ptext, "int", (StringLen($stext) + 1) * 2) | |
1812 | If @error Then Return SetError(@error, @extended, False) | |
1813 | Return $aresult[0] | |
1814 | EndFunc | |
1815 | ||
1816 | Func _winapi_openprocess($iaccess, $finherit, $iprocessid, $fdebugpriv = False) | |
1817 | Local $aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid) | |
1818 | If @error Then Return SetError(@error, @extended, 0) | |
1819 | If $aresult[0] Then Return $aresult[0] | |
1820 | If NOT $fdebugpriv Then Return 0 | |
1821 | Local $htoken = _security__openthreadtokenex(BitOR($token_adjust_privileges, $token_query)) | |
1822 | If @error Then Return SetError(@error, @extended, 0) | |
1823 | _security__setprivilege($htoken, "SeDebugPrivilege", True) | |
1824 | Local $ierror = @error | |
1825 | Local $ilasterror = @extended | |
1826 | Local $iret = 0 | |
1827 | If NOT @error Then | |
1828 | $aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid) | |
1829 | $ierror = @error | |
1830 | $ilasterror = @extended | |
1831 | If $aresult[0] Then $iret = $aresult[0] | |
1832 | _security__setprivilege($htoken, "SeDebugPrivilege", False) | |
1833 | If @error Then | |
1834 | $ierror = @error | |
1835 | $ilasterror = @extended | |
1836 | EndIf | |
1837 | EndIf | |
1838 | _winapi_closehandle($htoken) | |
1839 | Return SetError($ierror, $ilasterror, $iret) | |
1840 | EndFunc | |
1841 | ||
1842 | Func __winapi_parsefiledialogpath($spath) | |
1843 | Local $afiles[3] | |
1844 | $afiles[0] = 2 | |
1845 | Local $stemp = StringMid($spath, 1, StringInStr($spath, "\", 0, -1) - 1) | |
1846 | $afiles[1] = $stemp | |
1847 | $afiles[2] = StringMid($spath, StringInStr($spath, "\", 0, -1) + 1) | |
1848 | Return $afiles | |
1849 | EndFunc | |
1850 | ||
1851 | Func _winapi_pathfindonpath(Const $szfile, $aextrapaths = "", Const $szpathdelimiter = @LF) | |
1852 | Local $iextracount = 0 | |
1853 | If IsString($aextrapaths) Then | |
1854 | If StringLen($aextrapaths) Then | |
1855 | $aextrapaths = StringSplit($aextrapaths, $szpathdelimiter, 1 + 2) | |
1856 | $iextracount = UBound($aextrapaths, 1) | |
1857 | EndIf | |
1858 | ElseIf IsArray($aextrapaths) Then | |
1859 | $iextracount = UBound($aextrapaths) | |
1860 | EndIf | |
1861 | Local $tpaths, $tpathptrs | |
1862 | If $iextracount Then | |
1863 | Local $szstruct = "" | |
1864 | For $path In $aextrapaths | |
1865 | $szstruct &= "wchar[" & StringLen($path) + 1 & "];" | |
1866 | Next | |
1867 | $tpaths = DllStructCreate($szstruct) | |
1868 | $tpathptrs = DllStructCreate("ptr[" & $iextracount + 1 & "]") | |
1869 | For $i = 1 To $iextracount | |
1870 | DllStructSetData($tpaths, $i, $aextrapaths[$i - 1]) | |
1871 | DllStructSetData($tpathptrs, 1, DllStructGetPtr($tpaths, $i), $i) | |
1872 | Next | |
1873 | DllStructSetData($tpathptrs, 1, Ptr(0), $iextracount + 1) | |
1874 | EndIf | |
1875 | Local $aresult = DllCall("shlwapi.dll", "bool", "PathFindOnPathW", "wstr", $szfile, "ptr", DllStructGetPtr($tpathptrs)) | |
1876 | If @error Then Return SetError(@error, @extended, False) | |
1877 | If $aresult[0] = 0 Then Return SetError(1, 0, $szfile) | |
1878 | Return $aresult[1] | |
1879 | EndFunc | |
1880 | ||
1881 | Func _winapi_pointfromrect(ByRef $trect, $fcenter = True) | |
1882 | Local $ix1 = DllStructGetData($trect, "Left") | |
1883 | Local $iy1 = DllStructGetData($trect, "Top") | |
1884 | Local $ix2 = DllStructGetData($trect, "Right") | |
1885 | Local $iy2 = DllStructGetData($trect, "Bottom") | |
1886 | If $fcenter Then | |
1887 | $ix1 = $ix1 + (($ix2 - $ix1) / 2) | |
1888 | $iy1 = $iy1 + (($iy2 - $iy1) / 2) | |
1889 | EndIf | |
1890 | Local $tpoint = DllStructCreate($tagpoint) | |
1891 | DllStructSetData($tpoint, "X", $ix1) | |
1892 | DllStructSetData($tpoint, "Y", $iy1) | |
1893 | Return $tpoint | |
1894 | EndFunc | |
1895 | ||
1896 | Func _winapi_postmessage($hwnd, $imsg, $iwparam, $ilparam) | |
1897 | Local $aresult = DllCall("user32.dll", "bool", "PostMessage", "hwnd", $hwnd, "uint", $imsg, "wparam", $iwparam, "lparam", $ilparam) | |
1898 | If @error Then Return SetError(@error, @extended, False) | |
1899 | Return $aresult[0] | |
1900 | EndFunc | |
1901 | ||
1902 | Func _winapi_primarylangid($lgid) | |
1903 | Return BitAND($lgid, 1023) | |
1904 | EndFunc | |
1905 | ||
1906 | Func _winapi_ptinrect(ByRef $trect, ByRef $tpoint) | |
1907 | Local $ix = DllStructGetData($tpoint, "X") | |
1908 | Local $iy = DllStructGetData($tpoint, "Y") | |
1909 | Local $aresult = DllCall("user32.dll", "bool", "PtInRect", "ptr", DllStructGetPtr($trect), "long", $ix, "long", $iy) | |
1910 | If @error Then Return SetError(@error, @extended, False) | |
1911 | Return $aresult[0] | |
1912 | EndFunc | |
1913 | ||
1914 | Func _winapi_readfile($hfile, $pbuffer, $itoread, ByRef $iread, $poverlapped = 0) | |
1915 | Local $aresult = DllCall("kernel32.dll", "bool", "ReadFile", "handle", $hfile, "ptr", $pbuffer, "dword", $itoread, "dword*", 0, "ptr", $poverlapped) | |
1916 | If @error Then Return SetError(@error, @extended, False) | |
1917 | $iread = $aresult[4] | |
1918 | Return $aresult[0] | |
1919 | EndFunc | |
1920 | ||
1921 | Func _winapi_readprocessmemory($hprocess, $pbaseaddress, $pbuffer, $isize, ByRef $iread) | |
1922 | Local $aresult = DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", $hprocess, "ptr", $pbaseaddress, "ptr", $pbuffer, "ulong_ptr", $isize, "ulong_ptr*", 0) | |
1923 | If @error Then Return SetError(@error, @extended, False) | |
1924 | $iread = $aresult[5] | |
1925 | Return $aresult[0] | |
1926 | EndFunc | |
1927 | ||
1928 | Func _winapi_rectisempty(ByRef $trect) | |
1929 | Return (DllStructGetData($trect, "Left") = 0) AND (DllStructGetData($trect, "Top") = 0) AND (DllStructGetData($trect, "Right") = 0) AND (DllStructGetData($trect, "Bottom") = 0) | |
1930 | EndFunc | |
1931 | ||
1932 | Func _winapi_redrawwindow($hwnd, $trect = 0, $hregion = 0, $iflags = 5) | |
1933 | Local $prect = 0 | |
1934 | If $trect <> 0 Then $prect = DllStructGetPtr($trect) | |
1935 | Local $aresult = DllCall("user32.dll", "bool", "RedrawWindow", "hwnd", $hwnd, "ptr", $prect, "handle", $hregion, "uint", $iflags) | |
1936 | If @error Then Return SetError(@error, @extended, False) | |
1937 | Return $aresult[0] | |
1938 | EndFunc | |
1939 | ||
1940 | Func _winapi_registerwindowmessage($smessage) | |
1941 | Local $aresult = DllCall("user32.dll", "uint", "RegisterWindowMessageW", "wstr", $smessage) | |
1942 | If @error Then Return SetError(@error, @extended, 0) | |
1943 | Return $aresult[0] | |
1944 | EndFunc | |
1945 | ||
1946 | Func _winapi_releasecapture() | |
1947 | Local $aresult = DllCall("user32.dll", "bool", "ReleaseCapture") | |
1948 | If @error Then Return SetError(@error, @extended, False) | |
1949 | Return $aresult[0] | |
1950 | EndFunc | |
1951 | ||
1952 | Func _winapi_releasedc($hwnd, $hdc) | |
1953 | Local $aresult = DllCall("user32.dll", "int", "ReleaseDC", "hwnd", $hwnd, "handle", $hdc) | |
1954 | If @error Then Return SetError(@error, @extended, False) | |
1955 | Return $aresult[0] | |
1956 | EndFunc | |
1957 | ||
1958 | Func _winapi_screentoclient($hwnd, ByRef $tpoint) | |
1959 | Local $aresult = DllCall("user32.dll", "bool", "ScreenToClient", "hwnd", $hwnd, "ptr", DllStructGetPtr($tpoint)) | |
1960 | If @error Then Return SetError(@error, @extended, False) | |
1961 | Return $aresult[0] | |
1962 | EndFunc | |
1963 | ||
1964 | Func _winapi_selectobject($hdc, $hgdiobj) | |
1965 | Local $aresult = DllCall("gdi32.dll", "handle", "SelectObject", "handle", $hdc, "handle", $hgdiobj) | |
1966 | If @error Then Return SetError(@error, @extended, False) | |
1967 | Return $aresult[0] | |
1968 | EndFunc | |
1969 | ||
1970 | Func _winapi_setbkcolor($hdc, $icolor) | |
1971 | Local $aresult = DllCall("gdi32.dll", "INT", "SetBkColor", "handle", $hdc, "dword", $icolor) | |
1972 | If @error Then Return SetError(@error, @extended, -1) | |
1973 | Return $aresult[0] | |
1974 | EndFunc | |
1975 | ||
1976 | Func _winapi_setbkmode($hdc, $ibkmode) | |
1977 | Local $aresult = DllCall("gdi32.dll", "int", "SetBkMode", "handle", $hdc, "int", $ibkmode) | |
1978 | If @error Then Return SetError(@error, @extended, 0) | |
1979 | Return $aresult[0] | |
1980 | EndFunc | |
1981 | ||
1982 | Func _winapi_setcapture($hwnd) | |
1983 | Local $aresult = DllCall("user32.dll", "hwnd", "SetCapture", "hwnd", $hwnd) | |
1984 | If @error Then Return SetError(@error, @extended, 0) | |
1985 | Return $aresult[0] | |
1986 | EndFunc | |
1987 | ||
1988 | Func _winapi_setcursor($hcursor) | |
1989 | Local $aresult = DllCall("user32.dll", "handle", "SetCursor", "handle", $hcursor) | |
1990 | If @error Then Return SetError(@error, @extended, 0) | |
1991 | Return $aresult[0] | |
1992 | EndFunc | |
1993 | ||
1994 | Func _winapi_setdefaultprinter($sprinter) | |
1995 | Local $aresult = DllCall("winspool.drv", "bool", "SetDefaultPrinterW", "wstr", $sprinter) | |
1996 | If @error Then Return SetError(@error, @extended, False) | |
1997 | Return $aresult[0] | |
1998 | EndFunc | |
1999 | ||
2000 | Func _winapi_setdibits($hdc, $hbmp, $istartscan, $iscanlines, $pbits, $pbmi, $icoloruse = 0) | |
2001 | Local $aresult = DllCall("gdi32.dll", "int", "SetDIBits", "handle", $hdc, "handle", $hbmp, "uint", $istartscan, "uint", $iscanlines, "ptr", $pbits, "ptr", $pbmi, "uint", $icoloruse) | |
2002 | If @error Then Return SetError(@error, @extended, False) | |
2003 | Return $aresult[0] | |
2004 | EndFunc | |
2005 | ||
2006 | Func _winapi_setendoffile($hfile) | |
2007 | Local $aresult = DllCall("kernel32.dll", "bool", "SetEndOfFile", "handle", $hfile) | |
2008 | If @error Then Return SetError(@error, @extended, False) | |
2009 | Return $aresult[0] | |
2010 | EndFunc | |
2011 | ||
2012 | Func _winapi_setevent($hevent) | |
2013 | Local $aresult = DllCall("kernel32.dll", "bool", "SetEvent", "handle", $hevent) | |
2014 | If @error Then Return SetError(@error, @extended, False) | |
2015 | Return $aresult[0] | |
2016 | EndFunc | |
2017 | ||
2018 | Func _winapi_setfilepointer($hfile, $ipos, $imethod = 0) | |
2019 | Local $aresult = DllCall("kernel32.dll", "INT", "SetFilePointer", "handle", $hfile, "long", $ipos, "ptr", 0, "long", $imethod) | |
2020 | If @error Then Return SetError(@error, @extended, -1) | |
2021 | Return $aresult[0] | |
2022 | EndFunc | |
2023 | ||
2024 | Func _winapi_setfocus($hwnd) | |
2025 | Local $aresult = DllCall("user32.dll", "hwnd", "SetFocus", "hwnd", $hwnd) | |
2026 | If @error Then Return SetError(@error, @extended, 0) | |
2027 | Return $aresult[0] | |
2028 | EndFunc | |
2029 | ||
2030 | Func _winapi_setfont($hwnd, $hfont, $fredraw = True) | |
2031 | _sendmessage($hwnd, $__winapiconstant_wm_setfont, $hfont, $fredraw, 0, "hwnd") | |
2032 | EndFunc | |
2033 | ||
2034 | Func _winapi_sethandleinformation($hobject, $imask, $iflags) | |
2035 | Local $aresult = DllCall("kernel32.dll", "bool", "SetHandleInformation", "handle", $hobject, "dword", $imask, "dword", $iflags) | |
2036 | If @error Then Return SetError(@error, @extended, False) | |
2037 | Return $aresult[0] | |
2038 | EndFunc | |
2039 | ||
2040 | Func _winapi_setlayeredwindowattributes($hwnd, $i_transcolor, $transparency = 255, $dwflags = 3, $iscolorref = False) | |
2041 | If $dwflags = Default OR $dwflags = "" OR $dwflags < 0 Then $dwflags = 3 | |
2042 | If NOT $iscolorref Then | |
2043 | $i_transcolor = Hex(String($i_transcolor), 6) | |
2044 | $i_transcolor = Execute("0x00" & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2)) | |
2045 | EndIf | |
2046 | Local $aresult = DllCall("user32.dll", "bool", "SetLayeredWindowAttributes", "hwnd", $hwnd, "dword", $i_transcolor, "byte", $transparency, "dword", $dwflags) | |
2047 | If @error Then Return SetError(@error, @extended, False) | |
2048 | Return $aresult[0] | |
2049 | EndFunc | |
2050 | ||
2051 | Func _winapi_setparent($hwndchild, $hwndparent) | |
2052 | Local $aresult = DllCall("user32.dll", "hwnd", "SetParent", "hwnd", $hwndchild, "hwnd", $hwndparent) | |
2053 | If @error Then Return SetError(@error, @extended, 0) | |
2054 | Return $aresult[0] | |
2055 | EndFunc | |
2056 | ||
2057 | Func _winapi_setprocessaffinitymask($hprocess, $imask) | |
2058 | Local $aresult = DllCall("kernel32.dll", "bool", "SetProcessAffinityMask", "handle", $hprocess, "ulong_ptr", $imask) | |
2059 | If @error Then Return SetError(@error, @extended, False) | |
2060 | Return $aresult[0] | |
2061 | EndFunc | |
2062 | ||
2063 | Func _winapi_setsyscolors($velements, $vcolors) | |
2064 | Local $isearray = IsArray($velements), $iscarray = IsArray($vcolors) | |
2065 | Local $ielementnum | |
2066 | If NOT $iscarray AND NOT $isearray Then | |
2067 | $ielementnum = 1 | |
2068 | ElseIf $iscarray OR $isearray Then | |
2069 | If NOT $iscarray OR NOT $isearray Then Return SetError(-1, -1, False) | |
2070 | If UBound($velements) <> UBound($vcolors) Then Return SetError(-1, -1, False) | |
2071 | $ielementnum = UBound($velements) | |
2072 | EndIf | |
2073 | Local $telements = DllStructCreate("int Element[" & $ielementnum & "]") | |
2074 | Local $tcolors = DllStructCreate("dword NewColor[" & $ielementnum & "]") | |
2075 | Local $pelements = DllStructGetPtr($telements) | |
2076 | Local $pcolors = DllStructGetPtr($tcolors) | |
2077 | If NOT $isearray Then | |
2078 | DllStructSetData($telements, "Element", $velements, 1) | |
2079 | Else | |
2080 | For $x = 0 To $ielementnum - 1 | |
2081 | DllStructSetData($telements, "Element", $velements[$x], $x + 1) | |
2082 | Next | |
2083 | EndIf | |
2084 | If NOT $iscarray Then | |
2085 | DllStructSetData($tcolors, "NewColor", $vcolors, 1) | |
2086 | Else | |
2087 | For $x = 0 To $ielementnum - 1 | |
2088 | DllStructSetData($tcolors, "NewColor", $vcolors[$x], $x + 1) | |
2089 | Next | |
2090 | EndIf | |
2091 | Local $aresult = DllCall("user32.dll", "bool", "SetSysColors", "int", $ielementnum, "ptr", $pelements, "ptr", $pcolors) | |
2092 | If @error Then Return SetError(@error, @extended, False) | |
2093 | Return $aresult[0] | |
2094 | EndFunc | |
2095 | ||
2096 | Func _winapi_settextcolor($hdc, $icolor) | |
2097 | Local $aresult = DllCall("gdi32.dll", "INT", "SetTextColor", "handle", $hdc, "dword", $icolor) | |
2098 | If @error Then Return SetError(@error, @extended, -1) | |
2099 | Return $aresult[0] | |
2100 | EndFunc | |
2101 | ||
2102 | Func _winapi_setwindowlong($hwnd, $iindex, $ivalue) | |
2103 | _winapi_setlasterror(0) | |
2104 | Local $sfuncname = "SetWindowLongW" | |
2105 | If @AutoItX64 Then $sfuncname = "SetWindowLongPtrW" | |
2106 | Local $aresult = DllCall("user32.dll", "long_ptr", $sfuncname, "hwnd", $hwnd, "int", $iindex, "long_ptr", $ivalue) | |
2107 | If @error Then Return SetError(@error, @extended, 0) | |
2108 | Return $aresult[0] | |
2109 | EndFunc | |
2110 | ||
2111 | Func _winapi_setwindowplacement($hwnd, $pwindowplacement) | |
2112 | Local $aresult = DllCall("user32.dll", "bool", "SetWindowPlacement", "hwnd", $hwnd, "ptr", $pwindowplacement) | |
2113 | If @error Then Return SetError(@error, @extended, False) | |
2114 | Return $aresult[0] | |
2115 | EndFunc | |
2116 | ||
2117 | Func _winapi_setwindowpos($hwnd, $hafter, $ix, $iy, $icx, $icy, $iflags) | |
2118 | Local $aresult = DllCall("user32.dll", "bool", "SetWindowPos", "hwnd", $hwnd, "hwnd", $hafter, "int", $ix, "int", $iy, "int", $icx, "int", $icy, "uint", $iflags) | |
2119 | If @error Then Return SetError(@error, @extended, False) | |
2120 | Return $aresult[0] | |
2121 | EndFunc | |
2122 | ||
2123 | Func _winapi_setwindowrgn($hwnd, $hrgn, $bredraw = True) | |
2124 | Local $aresult = DllCall("user32.dll", "int", "SetWindowRgn", "hwnd", $hwnd, "handle", $hrgn, "bool", $bredraw) | |
2125 | If @error Then Return SetError(@error, @extended, False) | |
2126 | Return $aresult[0] | |
2127 | EndFunc | |
2128 | ||
2129 | Func _winapi_setwindowshookex($idhook, $lpfn, $hmod, $dwthreadid = 0) | |
2130 | Local $aresult = DllCall("user32.dll", "handle", "SetWindowsHookEx", "int", $idhook, "ptr", $lpfn, "handle", $hmod, "dword", $dwthreadid) | |
2131 | If @error Then Return SetError(@error, @extended, 0) | |
2132 | Return $aresult[0] | |
2133 | EndFunc | |
2134 | ||
2135 | Func _winapi_setwindowtext($hwnd, $stext) | |
2136 | Local $aresult = DllCall("user32.dll", "bool", "SetWindowTextW", "hwnd", $hwnd, "wstr", $stext) | |
2137 | If @error Then Return SetError(@error, @extended, False) | |
2138 | Return $aresult[0] | |
2139 | EndFunc | |
2140 | ||
2141 | Func _winapi_showcursor($fshow) | |
2142 | Local $aresult = DllCall("user32.dll", "int", "ShowCursor", "bool", $fshow) | |
2143 | If @error Then Return SetError(@error, @extended, 0) | |
2144 | Return $aresult[0] | |
2145 | EndFunc | |
2146 | ||
2147 | Func _winapi_showerror($stext, $fexit = True) | |
2148 | _winapi_msgbox(266256, "Error", $stext) | |
2149 | If $fexit Then Exit | |
2150 | EndFunc | |
2151 | ||
2152 | Func _winapi_showmsg($stext) | |
2153 | _winapi_msgbox(64 + 4096, "Information", $stext) | |
2154 | EndFunc | |
2155 | ||
2156 | Func _winapi_showwindow($hwnd, $icmdshow = 5) | |
2157 | Local $aresult = DllCall("user32.dll", "bool", "ShowWindow", "hwnd", $hwnd, "int", $icmdshow) | |
2158 | If @error Then Return SetError(@error, @extended, False) | |
2159 | Return $aresult[0] | |
2160 | EndFunc | |
2161 | ||
2162 | Func _winapi_stringfromguid($pguid) | |
2163 | Local $aresult = DllCall("ole32.dll", "int", "StringFromGUID2", "ptr", $pguid, "wstr", "", "int", 40) | |
2164 | If @error Then Return SetError(@error, @extended, "") | |
2165 | Return SetExtended($aresult[0], $aresult[2]) | |
2166 | EndFunc | |
2167 | ||
2168 | Func _winapi_sublangid($lgid) | |
2169 | Return BitShift($lgid, 10) | |
2170 | EndFunc | |
2171 | ||
2172 | Func _winapi_systemparametersinfo($iaction, $iparam = 0, $vparam = 0, $iwinini = 0) | |
2173 | Local $aresult = DllCall("user32.dll", "bool", "SystemParametersInfoW", "uint", $iaction, "uint", $iparam, "ptr", $vparam, "uint", $iwinini) | |
2174 | If @error Then Return SetError(@error, @extended, False) | |
2175 | Return $aresult[0] | |
2176 | EndFunc | |
2177 | ||
2178 | Func _winapi_twipsperpixelx() | |
2179 | Local $lngdc, $twipsperpixelx | |
2180 | $lngdc = _winapi_getdc(0) | |
2181 | $twipsperpixelx = 1440 / _winapi_getdevicecaps($lngdc, $__winapiconstant_logpixelsx) | |
2182 | _winapi_releasedc(0, $lngdc) | |
2183 | Return $twipsperpixelx | |
2184 | EndFunc | |
2185 | ||
2186 | Func _winapi_twipsperpixely() | |
2187 | Local $lngdc, $twipsperpixely | |
2188 | $lngdc = _winapi_getdc(0) | |
2189 | $twipsperpixely = 1440 / _winapi_getdevicecaps($lngdc, $__winapiconstant_logpixelsy) | |
2190 | _winapi_releasedc(0, $lngdc) | |
2191 | Return $twipsperpixely | |
2192 | EndFunc | |
2193 | ||
2194 | Func _winapi_unhookwindowshookex($hhk) | |
2195 | Local $aresult = DllCall("user32.dll", "bool", "UnhookWindowsHookEx", "handle", $hhk) | |
2196 | If @error Then Return SetError(@error, @extended, False) | |
2197 | Return $aresult[0] | |
2198 | EndFunc | |
2199 | ||
2200 | Func _winapi_updatelayeredwindow($hwnd, $hdcdest, $pptdest, $psize, $hdcsrce, $pptsrce, $irgb, $pblend, $iflags) | |
2201 | 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) | |
2202 | If @error Then Return SetError(@error, @extended, False) | |
2203 | Return $aresult[0] | |
2204 | EndFunc | |
2205 | ||
2206 | Func _winapi_updatewindow($hwnd) | |
2207 | Local $aresult = DllCall("user32.dll", "bool", "UpdateWindow", "hwnd", $hwnd) | |
2208 | If @error Then Return SetError(@error, @extended, False) | |
2209 | Return $aresult[0] | |
2210 | EndFunc | |
2211 | ||
2212 | Func _winapi_waitforinputidle($hprocess, $itimeout = -1) | |
2213 | Local $aresult = DllCall("user32.dll", "dword", "WaitForInputIdle", "handle", $hprocess, "dword", $itimeout) | |
2214 | If @error Then Return SetError(@error, @extended, False) | |
2215 | Return $aresult[0] | |
2216 | EndFunc | |
2217 | ||
2218 | Func _winapi_waitformultipleobjects($icount, $phandles, $fwaitall = False, $itimeout = -1) | |
2219 | Local $aresult = DllCall("kernel32.dll", "INT", "WaitForMultipleObjects", "dword", $icount, "ptr", $phandles, "bool", $fwaitall, "dword", $itimeout) | |
2220 | If @error Then Return SetError(@error, @extended, -1) | |
2221 | Return $aresult[0] | |
2222 | EndFunc | |
2223 | ||
2224 | Func _winapi_waitforsingleobject($hhandle, $itimeout = -1) | |
2225 | Local $aresult = DllCall("kernel32.dll", "INT", "WaitForSingleObject", "handle", $hhandle, "dword", $itimeout) | |
2226 | If @error Then Return SetError(@error, @extended, -1) | |
2227 | Return $aresult[0] | |
2228 | EndFunc | |
2229 | ||
2230 | Func _winapi_widechartomultibyte($punicode, $icodepage = 0, $bretstring = True) | |
2231 | Local $sunicodetype = "ptr" | |
2232 | If IsDllStruct($punicode) Then | |
2233 | $punicode = DllStructGetPtr($punicode) | |
2234 | Else | |
2235 | If NOT IsPtr($punicode) Then $sunicodetype = "wstr" | |
2236 | EndIf | |
2237 | Local $aresult = DllCall("kernel32.dll", "int", "WideCharToMultiByte", "uint", $icodepage, "dword", 0, $sunicodetype, $punicode, "int", -1, "ptr", 0, "int", 0, "ptr", 0, "ptr", 0) | |
2238 | If @error Then Return SetError(@error, @extended, "") | |
2239 | Local $tmultibyte = DllStructCreate("char[" & $aresult[0] & "]") | |
2240 | Local $pmultibyte = DllStructGetPtr($tmultibyte) | |
2241 | $aresult = DllCall("kernel32.dll", "int", "WideCharToMultiByte", "uint", $icodepage, "dword", 0, $sunicodetype, $punicode, "int", -1, "ptr", $pmultibyte, "int", $aresult[0], "ptr", 0, "ptr", 0) | |
2242 | If @error Then Return SetError(@error, @extended, "") | |
2243 | If $bretstring Then Return DllStructGetData($tmultibyte, 1) | |
2244 | Return $tmultibyte | |
2245 | EndFunc | |
2246 | ||
2247 | Func _winapi_windowfrompoint(ByRef $tpoint) | |
2248 | Local $tpointcast = DllStructCreate("int64", DllStructGetPtr($tpoint)) | |
2249 | Local $aresult = DllCall("user32.dll", "hwnd", "WindowFromPoint", "int64", DllStructGetData($tpointcast, 1)) | |
2250 | If @error Then Return SetError(@error, @extended, 0) | |
2251 | Return $aresult[0] | |
2252 | EndFunc | |
2253 | ||
2254 | Func _winapi_writeconsole($hconsole, $stext) | |
2255 | Local $aresult = DllCall("kernel32.dll", "bool", "WriteConsoleW", "handle", $hconsole, "wstr", $stext, "dword", StringLen($stext), "dword*", 0, "ptr", 0) | |
2256 | If @error Then Return SetError(@error, @extended, False) | |
2257 | Return $aresult[0] | |
2258 | EndFunc | |
2259 | ||
2260 | Func _winapi_writefile($hfile, $pbuffer, $itowrite, ByRef $iwritten, $poverlapped = 0) | |
2261 | Local $aresult = DllCall("kernel32.dll", "bool", "WriteFile", "handle", $hfile, "ptr", $pbuffer, "dword", $itowrite, "dword*", 0, "ptr", $poverlapped) | |
2262 | If @error Then Return SetError(@error, @extended, False) | |
2263 | $iwritten = $aresult[4] | |
2264 | Return $aresult[0] | |
2265 | EndFunc | |
2266 | ||
2267 | Func _winapi_writeprocessmemory($hprocess, $pbaseaddress, $pbuffer, $isize, ByRef $iwritten, $sbuffer = "ptr") | |
2268 | Local $aresult = DllCall("kernel32.dll", "bool", "WriteProcessMemory", "handle", $hprocess, "ptr", $pbaseaddress, $sbuffer, $pbuffer, "ulong_ptr", $isize, "ulong_ptr*", 0) | |
2269 | If @error Then Return SetError(@error, @extended, False) | |
2270 | $iwritten = $aresult[5] | |
2271 | Return $aresult[0] | |
2272 | EndFunc | |
2273 | ||
2274 | Global Const $fw_dontcare = 0 | |
2275 | Global Const $fw_thin = 100 | |
2276 | Global Const $fw_extralight = 200 | |
2277 | Global Const $fw_ultralight = 200 | |
2278 | Global Const $fw_light = 300 | |
2279 | Global Const $fw_normal = 400 | |
2280 | Global Const $fw_regular = 400 | |
2281 | Global Const $fw_medium = 500 | |
2282 | Global Const $fw_semibold = 600 | |
2283 | Global Const $fw_demibold = 600 | |
2284 | Global Const $fw_bold = 700 | |
2285 | Global Const $fw_extrabold = 800 | |
2286 | Global Const $fw_ultrabold = 800 | |
2287 | Global Const $fw_heavy = 900 | |
2288 | Global Const $fw_black = 900 | |
2289 | Global Const $cf_effects = 256 | |
2290 | Global Const $cf_printerfonts = 2 | |
2291 | Global Const $cf_screenfonts = 1 | |
2292 | Global Const $cf_noscriptsel = 8388608 | |
2293 | Global Const $cf_inittologfontstruct = 64 | |
2294 | Global Const $logpixelsx = 88 | |
2295 | Global Const $logpixelsy = 90 | |
2296 | Global Const $ansi_charset = 0 | |
2297 | Global Const $baltic_charset = 186 | |
2298 | Global Const $chinesebig5_charset = 136 | |
2299 | Global Const $default_charset = 1 | |
2300 | Global Const $easteurope_charset = 238 | |
2301 | Global Const $gb2312_charset = 134 | |
2302 | Global Const $greek_charset = 161 | |
2303 | Global Const $hangeul_charset = 129 | |
2304 | Global Const $mac_charset = 77 | |
2305 | Global Const $oem_charset = 255 | |
2306 | Global Const $russian_charset = 204 | |
2307 | Global Const $shiftjis_charset = 128 | |
2308 | Global Const $symbol_charset = 2 | |
2309 | Global Const $turkish_charset = 162 | |
2310 | Global Const $vietnamese_charset = 163 | |
2311 | Global Const $out_character_precis = 2 | |
2312 | Global Const $out_default_precis = 0 | |
2313 | Global Const $out_device_precis = 5 | |
2314 | Global Const $out_outline_precis = 8 | |
2315 | Global Const $out_ps_only_precis = 10 | |
2316 | Global Const $out_raster_precis = 6 | |
2317 | Global Const $out_string_precis = 1 | |
2318 | Global Const $out_stroke_precis = 3 | |
2319 | Global Const $out_tt_only_precis = 7 | |
2320 | Global Const $out_tt_precis = 4 | |
2321 | Global Const $clip_character_precis = 1 | |
2322 | Global Const $clip_default_precis = 0 | |
2323 | Global Const $clip_embedded = 128 | |
2324 | Global Const $clip_lh_angles = 16 | |
2325 | Global Const $clip_mask = 15 | |
2326 | Global Const $clip_stroke_precis = 2 | |
2327 | Global Const $clip_tt_always = 32 | |
2328 | Global Const $antialiased_quality = 4 | |
2329 | Global Const $default_quality = 0 | |
2330 | Global Const $draft_quality = 1 | |
2331 | Global Const $nonantialiased_quality = 3 | |
2332 | Global Const $proof_quality = 2 | |
2333 | Global Const $default_pitch = 0 | |
2334 | Global Const $fixed_pitch = 1 | |
2335 | Global Const $variable_pitch = 2 | |
2336 | Global Const $ff_decorative = 80 | |
2337 | Global Const $ff_dontcare = 0 | |
2338 | Global Const $ff_modern = 48 | |
2339 | Global Const $ff_roman = 16 | |
2340 | Global Const $ff_script = 64 | |
2341 | Global Const $ff_swiss = 32 | |
2342 | Global Const $__miscconstant_cc_anycolor = 256 | |
2343 | Global Const $__miscconstant_cc_fullopen = 2 | |
2344 | Global Const $__miscconstant_cc_rgbinit = 1 | |
2345 | Global Const $tagchoosecolor = "dword Size;hwnd hWndOwnder;handle hInstance;dword rgbResult;ptr CustColors;dword Flags;lparam lCustData;" & "ptr lpfnHook;ptr lpTemplateName" | |
2346 | Global Const $tagchoosefont = "dword Size;hwnd hWndOwner;handle hDC;ptr LogFont;int PointSize;dword Flags;dword rgbColors;lparam CustData;" & "ptr fnHook;ptr TemplateName;handle hInstance;ptr szStyle;word FontType;int SizeMin;int SizeMax" | |
2347 | ||
2348 | Func _choosecolor($ireturntype = 0, $icolorref = 0, $ireftype = 0, $hwndownder = 0) | |
2349 | Local $custcolors = "dword[16]" | |
2350 | Local $tchoose = DllStructCreate($tagchoosecolor) | |
2351 | Local $tcc = DllStructCreate($custcolors) | |
2352 | If $ireftype = 1 Then | |
2353 | $icolorref = Int($icolorref) | |
2354 | ElseIf $ireftype = 2 Then | |
2355 | $icolorref = Hex(String($icolorref), 6) | |
2356 | $icolorref = "0x" & StringMid($icolorref, 5, 2) & StringMid($icolorref, 3, 2) & StringMid($icolorref, 1, 2) | |
2357 | EndIf | |
2358 | DllStructSetData($tchoose, "Size", DllStructGetSize($tchoose)) | |
2359 | DllStructSetData($tchoose, "hWndOwnder", $hwndownder) | |
2360 | DllStructSetData($tchoose, "rgbResult", $icolorref) | |
2361 | DllStructSetData($tchoose, "CustColors", DllStructGetPtr($tcc)) | |
2362 | DllStructSetData($tchoose, "Flags", BitOR($__miscconstant_cc_anycolor, $__miscconstant_cc_fullopen, $__miscconstant_cc_rgbinit)) | |
2363 | Local $aresult = DllCall("comdlg32.dll", "bool", "ChooseColor", "ptr", DllStructGetPtr($tchoose)) | |
2364 | If @error Then Return SetError(@error, @extended, -1) | |
2365 | If $aresult[0] = 0 Then Return SetError(-3, -3, -1) | |
2366 | Local $color_picked = DllStructGetData($tchoose, "rgbResult") | |
2367 | If $ireturntype = 1 Then | |
2368 | Return "0x" & Hex(String($color_picked), 6) | |
2369 | ElseIf $ireturntype = 2 Then | |
2370 | $color_picked = Hex(String($color_picked), 6) | |
2371 | Return "0x" & StringMid($color_picked, 5, 2) & StringMid($color_picked, 3, 2) & StringMid($color_picked, 1, 2) | |
2372 | ElseIf $ireturntype = 0 Then | |
2373 | Return $color_picked | |
2374 | Else | |
2375 | Return SetError(-4, -4, -1) | |
2376 | EndIf | |
2377 | EndFunc | |
2378 | ||
2379 | Func _choosefont($sfontname = "Courier New", $ipointsize = 10, $icolorref = 0, $ifontweight = 0, $iitalic = False, $iunderline = False, $istrikethru = False, $hwndowner = 0) | |
2380 | Local $italic = 0, $underline = 0, $strikeout = 0 | |
2381 | Local $lngdc = __misc_getdc(0) | |
2382 | Local $lfheight = Round(($ipointsize * __misc_getdevicecaps($lngdc, $logpixelsx)) / 72, 0) | |
2383 | __misc_releasedc(0, $lngdc) | |
2384 | Local $tchoosefont = DllStructCreate($tagchoosefont) | |
2385 | Local $tlogfont = DllStructCreate($taglogfont) | |
2386 | DllStructSetData($tchoosefont, "Size", DllStructGetSize($tchoosefont)) | |
2387 | DllStructSetData($tchoosefont, "hWndOwner", $hwndowner) | |
2388 | DllStructSetData($tchoosefont, "LogFont", DllStructGetPtr($tlogfont)) | |
2389 | DllStructSetData($tchoosefont, "PointSize", $ipointsize) | |
2390 | DllStructSetData($tchoosefont, "Flags", BitOR($cf_screenfonts, $cf_printerfonts, $cf_effects, $cf_inittologfontstruct, $cf_noscriptsel)) | |
2391 | DllStructSetData($tchoosefont, "rgbColors", $icolorref) | |
2392 | DllStructSetData($tchoosefont, "FontType", 0) | |
2393 | DllStructSetData($tlogfont, "Height", $lfheight) | |
2394 | DllStructSetData($tlogfont, "Weight", $ifontweight) | |
2395 | DllStructSetData($tlogfont, "Italic", $iitalic) | |
2396 | DllStructSetData($tlogfont, "Underline", $iunderline) | |
2397 | DllStructSetData($tlogfont, "Strikeout", $istrikethru) | |
2398 | DllStructSetData($tlogfont, "FaceName", $sfontname) | |
2399 | Local $aresult = DllCall("comdlg32.dll", "bool", "ChooseFontW", "ptr", DllStructGetPtr($tchoosefont)) | |
2400 | If @error Then Return SetError(@error, @extended, -1) | |
2401 | If $aresult[0] = 0 Then Return SetError(-3, -3, -1) | |
2402 | Local $fontname = DllStructGetData($tlogfont, "FaceName") | |
2403 | If StringLen($fontname) = 0 AND StringLen($sfontname) > 0 Then $fontname = $sfontname | |
2404 | If DllStructGetData($tlogfont, "Italic") Then $italic = 2 | |
2405 | If DllStructGetData($tlogfont, "Underline") Then $underline = 4 | |
2406 | If DllStructGetData($tlogfont, "Strikeout") Then $strikeout = 8 | |
2407 | Local $attributes = BitOR($italic, $underline, $strikeout) | |
2408 | Local $size = DllStructGetData($tchoosefont, "PointSize") / 10 | |
2409 | Local $colorref = DllStructGetData($tchoosefont, "rgbColors") | |
2410 | Local $weight = DllStructGetData($tlogfont, "Weight") | |
2411 | Local $color_picked = Hex(String($colorref), 6) | |
2412 | Return StringSplit($attributes & "," & $fontname & "," & $size & "," & $weight & "," & $colorref & "," & "0x" & $color_picked & "," & "0x" & StringMid($color_picked, 5, 2) & StringMid($color_picked, 3, 2) & StringMid($color_picked, 1, 2), ",") | |
2413 | EndFunc | |
2414 | ||
2415 | Func _clipputfile($sfile, $sseparator = "|") | |
2416 | Local Const $gmem_moveable = 2, $cf_hdrop = 15 | |
2417 | $sfile &= $sseparator & $sseparator | |
2418 | Local $nglobmemsize = (StringLen($sfile) + 20) | |
2419 | Local $aresult = DllCall("user32.dll", "bool", "OpenClipboard", "hwnd", 0) | |
2420 | If @error OR $aresult[0] = 0 Then Return SetError(1, _winapi_getlasterror(), False) | |
2421 | Local $ierror = 0, $ilasterror = 0 | |
2422 | $aresult = DllCall("user32.dll", "bool", "EmptyClipboard") | |
2423 | If @error OR NOT $aresult[0] Then | |
2424 | $ierror = 2 | |
2425 | $ilasterror = _winapi_getlasterror() | |
2426 | Else | |
2427 | $aresult = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", $gmem_moveable, "ulong_ptr", $nglobmemsize) | |
2428 | If @error OR NOT $aresult[0] Then | |
2429 | $ierror = 3 | |
2430 | $ilasterror = _winapi_getlasterror() | |
2431 | Else | |
2432 | Local $hglobal = $aresult[0] | |
2433 | $aresult = DllCall("kernel32.dll", "ptr", "GlobalLock", "handle", $hglobal) | |
2434 | If @error OR NOT $aresult[0] Then | |
2435 | $ierror = 4 | |
2436 | $ilasterror = _winapi_getlasterror() | |
2437 | Else | |
2438 | Local $hlock = $aresult[0] | |
2439 | Local $dropfiles = DllStructCreate("dword;ptr;int;int;int;char[" & StringLen($sfile) + 1 & "]", $hlock) | |
2440 | If @error Then Return SetError(5, 6, False) | |
2441 | Local $tempstruct = DllStructCreate("dword;ptr;int;int;int") | |
2442 | DllStructSetData($dropfiles, 1, DllStructGetSize($tempstruct)) | |
2443 | DllStructSetData($dropfiles, 2, 0) | |
2444 | DllStructSetData($dropfiles, 3, 0) | |
2445 | DllStructSetData($dropfiles, 4, 0) | |
2446 | DllStructSetData($dropfiles, 5, 0) | |
2447 | DllStructSetData($dropfiles, 6, $sfile) | |
2448 | For $i = 1 To StringLen($sfile) | |
2449 | If DllStructGetData($dropfiles, 6, $i) = $sseparator Then DllStructSetData($dropfiles, 6, Chr(0), $i) | |
2450 | Next | |
2451 | $aresult = DllCall("user32.dll", "handle", "SetClipboardData", "uint", $cf_hdrop, "handle", $hglobal) | |
2452 | If @error OR NOT $aresult[0] Then | |
2453 | $ierror = 6 | |
2454 | $ilasterror = _winapi_getlasterror() | |
2455 | EndIf | |
2456 | $aresult = DllCall("kernel32.dll", "bool", "GlobalUnlock", "handle", $hglobal) | |
2457 | If (@error OR NOT $aresult[0]) AND NOT $ierror AND _winapi_getlasterror() Then | |
2458 | $ierror = 8 | |
2459 | $ilasterror = _winapi_getlasterror() | |
2460 | EndIf | |
2461 | EndIf | |
2462 | $aresult = DllCall("kernel32.dll", "ptr", "GlobalFree", "handle", $hglobal) | |
2463 | If (@error OR NOT $aresult[0]) AND NOT $ierror Then | |
2464 | $ierror = 9 | |
2465 | $ilasterror = _winapi_getlasterror() | |
2466 | EndIf | |
2467 | EndIf | |
2468 | EndIf | |
2469 | $aresult = DllCall("user32.dll", "bool", "CloseClipboard") | |
2470 | If (@error OR NOT $aresult[0]) AND NOT $ierror Then Return SetError(7, _winapi_getlasterror(), False) | |
2471 | If $ierror Then Return SetError($ierror, $ilasterror, False) | |
2472 | Return True | |
2473 | EndFunc | |
2474 | ||
2475 | Func _iif($ftest, $vtrueval, $vfalseval) | |
2476 | If $ftest Then | |
2477 | Return $vtrueval | |
2478 | Else | |
2479 | Return $vfalseval | |
2480 | EndIf | |
2481 | EndFunc | |
2482 | ||
2483 | Func _mousetrap($ileft = 0, $itop = 0, $iright = 0, $ibottom = 0) | |
2484 | Local $aresult | |
2485 | If @NumParams == 0 Then | |
2486 | $aresult = DllCall("user32.dll", "bool", "ClipCursor", "ptr", 0) | |
2487 | If @error OR NOT $aresult[0] Then Return SetError(1, _winapi_getlasterror(), False) | |
2488 | Else | |
2489 | If @NumParams == 2 Then | |
2490 | $iright = $ileft + 1 | |
2491 | $ibottom = $itop + 1 | |
2492 | EndIf | |
2493 | Local $trect = DllStructCreate($tagrect) | |
2494 | DllStructSetData($trect, "Left", $ileft) | |
2495 | DllStructSetData($trect, "Top", $itop) | |
2496 | DllStructSetData($trect, "Right", $iright) | |
2497 | DllStructSetData($trect, "Bottom", $ibottom) | |
2498 | $aresult = DllCall("user32.dll", "bool", "ClipCursor", "ptr", DllStructGetPtr($trect)) | |
2499 | If @error OR NOT $aresult[0] Then Return SetError(2, _winapi_getlasterror(), False) | |
2500 | EndIf | |
2501 | Return True | |
2502 | EndFunc | |
2503 | ||
2504 | Func _singleton($soccurencename, $iflag = 0) | |
2505 | Local Const $error_already_exists = 183 | |
2506 | Local Const $security_descriptor_revision = 1 | |
2507 | Local $psecurityattributes = 0 | |
2508 | If BitAND($iflag, 2) Then | |
2509 | Local $tsecuritydescriptor = DllStructCreate("dword[5]") | |
2510 | Local $psecuritydescriptor = DllStructGetPtr($tsecuritydescriptor) | |
2511 | Local $aret = DllCall("advapi32.dll", "bool", "InitializeSecurityDescriptor", "ptr", $psecuritydescriptor, "dword", $security_descriptor_revision) | |
2512 | If @error Then Return SetError(@error, @extended, 0) | |
2513 | If $aret[0] Then | |
2514 | $aret = DllCall("advapi32.dll", "bool", "SetSecurityDescriptorDacl", "ptr", $psecuritydescriptor, "bool", 1, "ptr", 0, "bool", 0) | |
2515 | If @error Then Return SetError(@error, @extended, 0) | |
2516 | If $aret[0] Then | |
2517 | Local $structsecurityattributes = DllStructCreate($tagsecurity_attributes) | |
2518 | DllStructSetData($structsecurityattributes, 1, DllStructGetSize($structsecurityattributes)) | |
2519 | DllStructSetData($structsecurityattributes, 2, $psecuritydescriptor) | |
2520 | DllStructSetData($structsecurityattributes, 3, 0) | |
2521 | $psecurityattributes = DllStructGetPtr($structsecurityattributes) | |
2522 | EndIf | |
2523 | EndIf | |
2524 | EndIf | |
2525 | Local $handle = DllCall("kernel32.dll", "handle", "CreateMutexW", "ptr", $psecurityattributes, "bool", 1, "wstr", $soccurencename) | |
2526 | If @error Then Return SetError(@error, @extended, 0) | |
2527 | Local $lasterror = DllCall("kernel32.dll", "dword", "GetLastError") | |
2528 | If @error Then Return SetError(@error, @extended, 0) | |
2529 | If $lasterror[0] = $error_already_exists Then | |
2530 | If BitAND($iflag, 1) Then | |
2531 | Return SetError($lasterror[0], $lasterror[0], 0) | |
2532 | Else | |
2533 | Exit - 1 | |
2534 | EndIf | |
2535 | EndIf | |
2536 | Return $handle[0] | |
2537 | EndFunc | |
2538 | ||
2539 | Func _ispressed($shexkey, $vdll = "user32.dll") | |
2540 | Local $a_r = DllCall($vdll, "short", "GetAsyncKeyState", "int", "0x" & $shexkey) | |
2541 | If @error Then Return SetError(@error, @extended, False) | |
2542 | Return BitAND($a_r[0], 32768) <> 0 | |
2543 | EndFunc | |
2544 | ||
2545 | Func _versioncompare($sversion1, $sversion2) | |
2546 | If $sversion1 = $sversion2 Then Return 0 | |
2547 | Local $sep = "." | |
2548 | If StringInStr($sversion1, $sep) = 0 Then $sep = "," | |
2549 | Local $aversion1 = StringSplit($sversion1, $sep) | |
2550 | Local $aversion2 = StringSplit($sversion2, $sep) | |
2551 | If UBound($aversion1) <> UBound($aversion2) OR UBound($aversion1) = 0 Then | |
2552 | SetExtended(1) | |
2553 | If $sversion1 > $sversion2 Then | |
2554 | Return 1 | |
2555 | ElseIf $sversion1 < $sversion2 Then | |
2556 | Return - 1 | |
2557 | EndIf | |
2558 | Else | |
2559 | For $i = 1 To UBound($aversion1) - 1 | |
2560 | If StringIsDigit($aversion1[$i]) AND StringIsDigit($aversion2[$i]) Then | |
2561 | If Number($aversion1[$i]) > Number($aversion2[$i]) Then | |
2562 | Return 1 | |
2563 | ElseIf Number($aversion1[$i]) < Number($aversion2[$i]) Then | |
2564 | Return - 1 | |
2565 | EndIf | |
2566 | Else | |
2567 | SetExtended(1) | |
2568 | If $aversion1[$i] > $aversion2[$i] Then | |
2569 | Return 1 | |
2570 | ElseIf $aversion1[$i] < $aversion2[$i] Then | |
2571 | Return - 1 | |
2572 | EndIf | |
2573 | EndIf | |
2574 | Next | |
2575 | EndIf | |
2576 | Return SetError(2, 0, 0) | |
2577 | EndFunc | |
2578 | ||
2579 | Func __misc_getdc($hwnd) | |
2580 | Local $aresult = DllCall("User32.dll", "handle", "GetDC", "hwnd", $hwnd) | |
2581 | If @error OR NOT $aresult[0] Then Return SetError(1, _winapi_getlasterror(), 0) | |
2582 | Return $aresult[0] | |
2583 | EndFunc | |
2584 | ||
2585 | Func __misc_getdevicecaps($hdc, $iindex) | |
2586 | Local $aresult = DllCall("GDI32.dll", "int", "GetDeviceCaps", "handle", $hdc, "int", $iindex) | |
2587 | If @error Then Return SetError(@error, @extended, 0) | |
2588 | Return $aresult[0] | |
2589 | EndFunc | |
2590 | ||
2591 | Func __misc_releasedc($hwnd, $hdc) | |
2592 | Local $aresult = DllCall("User32.dll", "int", "ReleaseDC", "hwnd", $hwnd, "handle", $hdc) | |
2593 | If @error Then Return SetError(@error, @extended, False) | |
2594 | Return $aresult[0] <> 0 | |
2595 | EndFunc | |
2596 | ||
2597 | Global Const $bs_groupbox = 7 | |
2598 | Global Const $bs_bottom = 2048 | |
2599 | Global Const $bs_center = 768 | |
2600 | Global Const $bs_defpushbutton = 1 | |
2601 | Global Const $bs_left = 256 | |
2602 | Global Const $bs_multiline = 8192 | |
2603 | Global Const $bs_pushbox = 10 | |
2604 | Global Const $bs_pushlike = 4096 | |
2605 | Global Const $bs_right = 512 | |
2606 | Global Const $bs_rightbutton = 32 | |
2607 | Global Const $bs_top = 1024 | |
2608 | Global Const $bs_vcenter = 3072 | |
2609 | Global Const $bs_flat = 32768 | |
2610 | Global Const $bs_icon = 64 | |
2611 | Global Const $bs_bitmap = 128 | |
2612 | Global Const $bs_notify = 16384 | |
2613 | Global Const $bs_splitbutton = 12 | |
2614 | Global Const $bs_defsplitbutton = 13 | |
2615 | Global Const $bs_commandlink = 14 | |
2616 | Global Const $bs_defcommandlink = 15 | |
2617 | Global Const $bcsif_glyph = 1 | |
2618 | Global Const $bcsif_image = 2 | |
2619 | Global Const $bcsif_style = 4 | |
2620 | Global Const $bcsif_size = 8 | |
2621 | Global Const $bcss_nosplit = 1 | |
2622 | Global Const $bcss_stretch = 2 | |
2623 | Global Const $bcss_alignleft = 4 | |
2624 | Global Const $bcss_image = 8 | |
2625 | Global Const $button_imagelist_align_left = 0 | |
2626 | Global Const $button_imagelist_align_right = 1 | |
2627 | Global Const $button_imagelist_align_top = 2 | |
2628 | Global Const $button_imagelist_align_bottom = 3 | |
2629 | Global Const $button_imagelist_align_center = 4 | |
2630 | Global Const $bs_3state = 5 | |
2631 | Global Const $bs_auto3state = 6 | |
2632 | Global Const $bs_autocheckbox = 3 | |
2633 | Global Const $bs_checkbox = 2 | |
2634 | Global Const $bs_radiobutton = 4 | |
2635 | Global Const $bs_autoradiobutton = 9 | |
2636 | Global Const $bs_ownerdraw = 11 | |
2637 | Global Const $gui_ss_default_button = 0 | |
2638 | Global Const $gui_ss_default_checkbox = 0 | |
2639 | Global Const $gui_ss_default_group = 0 | |
2640 | Global Const $gui_ss_default_radio = 0 | |
2641 | Global Const $bcm_first = 5632 | |
2642 | Global Const $bcm_getidealsize = ($bcm_first + 1) | |
2643 | Global Const $bcm_getimagelist = ($bcm_first + 3) | |
2644 | Global Const $bcm_getnote = ($bcm_first + 10) | |
2645 | Global Const $bcm_getnotelength = ($bcm_first + 11) | |
2646 | Global Const $bcm_getsplitinfo = ($bcm_first + 8) | |
2647 | Global Const $bcm_gettextmargin = ($bcm_first + 5) | |
2648 | Global Const $bcm_setdropdownstate = ($bcm_first + 6) | |
2649 | Global Const $bcm_setimagelist = ($bcm_first + 2) | |
2650 | Global Const $bcm_setnote = ($bcm_first + 9) | |
2651 | Global Const $bcm_setshield = ($bcm_first + 12) | |
2652 | Global Const $bcm_setsplitinfo = ($bcm_first + 7) | |
2653 | Global Const $bcm_settextmargin = ($bcm_first + 4) | |
2654 | Global Const $bm_click = 245 | |
2655 | Global Const $bm_getcheck = 240 | |
2656 | Global Const $bm_getimage = 246 | |
2657 | Global Const $bm_getstate = 242 | |
2658 | Global Const $bm_setcheck = 241 | |
2659 | Global Const $bm_setdontclick = 248 | |
2660 | Global Const $bm_setimage = 247 | |
2661 | Global Const $bm_setstate = 243 | |
2662 | Global Const $bm_setstyle = 244 | |
2663 | Global Const $bcn_first = -1250 | |
2664 | Global Const $bcn_dropdown = ($bcn_first + 2) | |
2665 | Global Const $bcn_hotitemchange = ($bcn_first + 1) | |
2666 | Global Const $bn_clicked = 0 | |
2667 | Global Const $bn_paint = 1 | |
2668 | Global Const $bn_hilite = 2 | |
2669 | Global Const $bn_unhilite = 3 | |
2670 | Global Const $bn_disable = 4 | |
2671 | Global Const $bn_doubleclicked = 5 | |
2672 | Global Const $bn_setfocus = 6 | |
2673 | Global Const $bn_killfocus = 7 | |
2674 | Global Const $bn_pushed = $bn_hilite | |
2675 | Global Const $bn_unpushed = $bn_unhilite | |
2676 | Global Const $bn_dblclk = $bn_doubleclicked | |
2677 | Global Const $bst_checked = 1 | |
2678 | Global Const $bst_indeterminate = 2 | |
2679 | Global Const $bst_unchecked = 0 | |
2680 | Global Const $bst_focus = 8 | |
2681 | Global Const $bst_pushed = 4 | |
2682 | Global Const $bst_dontclick = 128 | |
2683 | Global Const $gui_event_close = -3 | |
2684 | Global Const $gui_event_minimize = -4 | |
2685 | Global Const $gui_event_restore = -5 | |
2686 | Global Const $gui_event_maximize = -6 | |
2687 | Global Const $gui_event_primarydown = -7 | |
2688 | Global Const $gui_event_primaryup = -8 | |
2689 | Global Const $gui_event_secondarydown = -9 | |
2690 | Global Const $gui_event_secondaryup = -10 | |
2691 | Global Const $gui_event_mousemove = -11 | |
2692 | Global Const $gui_event_resized = -12 | |
2693 | Global Const $gui_event_dropped = -13 | |
2694 | Global Const $gui_rundefmsg = "GUI_RUNDEFMSG" | |
2695 | Global Const $gui_avistop = 0 | |
2696 | Global Const $gui_avistart = 1 | |
2697 | Global Const $gui_aviclose = 2 | |
2698 | Global Const $gui_checked = 1 | |
2699 | Global Const $gui_indeterminate = 2 | |
2700 | Global Const $gui_unchecked = 4 | |
2701 | Global Const $gui_dropaccepted = 8 | |
2702 | Global Const $gui_nodropaccepted = 4096 | |
2703 | Global Const $gui_acceptfiles = $gui_dropaccepted | |
2704 | Global Const $gui_show = 16 | |
2705 | Global Const $gui_hide = 32 | |
2706 | Global Const $gui_enable = 64 | |
2707 | Global Const $gui_disable = 128 | |
2708 | Global Const $gui_focus = 256 | |
2709 | Global Const $gui_nofocus = 8192 | |
2710 | Global Const $gui_defbutton = 512 | |
2711 | Global Const $gui_expand = 1024 | |
2712 | Global Const $gui_ontop = 2048 | |
2713 | Global Const $gui_fontitalic = 2 | |
2714 | Global Const $gui_fontunder = 4 | |
2715 | Global Const $gui_fontstrike = 8 | |
2716 | Global Const $gui_dockauto = 1 | |
2717 | Global Const $gui_dockleft = 2 | |
2718 | Global Const $gui_dockright = 4 | |
2719 | Global Const $gui_dockhcenter = 8 | |
2720 | Global Const $gui_docktop = 32 | |
2721 | Global Const $gui_dockbottom = 64 | |
2722 | Global Const $gui_dockvcenter = 128 | |
2723 | Global Const $gui_dockwidth = 256 | |
2724 | Global Const $gui_dockheight = 512 | |
2725 | Global Const $gui_docksize = 768 | |
2726 | Global Const $gui_dockmenubar = 544 | |
2727 | Global Const $gui_dockstatebar = 576 | |
2728 | Global Const $gui_dockall = 802 | |
2729 | Global Const $gui_dockborders = 102 | |
2730 | Global Const $gui_gr_close = 1 | |
2731 | Global Const $gui_gr_line = 2 | |
2732 | Global Const $gui_gr_bezier = 4 | |
2733 | Global Const $gui_gr_move = 6 | |
2734 | Global Const $gui_gr_color = 8 | |
2735 | Global Const $gui_gr_rect = 10 | |
2736 | Global Const $gui_gr_ellipse = 12 | |
2737 | Global Const $gui_gr_pie = 14 | |
2738 | Global Const $gui_gr_dot = 16 | |
2739 | Global Const $gui_gr_pixel = 18 | |
2740 | Global Const $gui_gr_hint = 20 | |
2741 | Global Const $gui_gr_refresh = 22 | |
2742 | Global Const $gui_gr_pensize = 24 | |
2743 | Global Const $gui_gr_nobkcolor = -2 | |
2744 | Global Const $gui_bkcolor_default = -1 | |
2745 | Global Const $gui_bkcolor_transparent = -2 | |
2746 | Global Const $gui_bkcolor_lv_alternate = -33554432 | |
2747 | Global Const $gui_ws_ex_parentdrag = 1048576 | |
2748 | Global Const $process_terminate = 1 | |
2749 | Global Const $process_create_thread = 2 | |
2750 | Global Const $process_set_sessionid = 4 | |
2751 | Global Const $process_vm_operation = 8 | |
2752 | Global Const $process_vm_read = 16 | |
2753 | Global Const $process_vm_write = 32 | |
2754 | Global Const $process_dup_handle = 64 | |
2755 | Global Const $process_create_process = 128 | |
2756 | Global Const $process_set_quota = 256 | |
2757 | Global Const $process_set_information = 512 | |
2758 | Global Const $process_query_information = 1024 | |
2759 | Global Const $process_suspend_resume = 2048 | |
2760 | Global Const $process_all_access = 2035711 | |
2761 | Global Const $ddl_archive = 32 | |
2762 | Global Const $ddl_directory = 16 | |
2763 | Global Const $ddl_drives = 16384 | |
2764 | Global Const $ddl_exclusive = 32768 | |
2765 | Global Const $ddl_hidden = 2 | |
2766 | Global Const $ddl_readonly = 1 | |
2767 | Global Const $ddl_readwrite = 0 | |
2768 | Global Const $ddl_system = 4 | |
2769 | Global Const $color_aqua = 65535 | |
2770 | Global Const $color_black = 0 | |
2771 | Global Const $color_blue = 255 | |
2772 | Global Const $color_cream = 16776176 | |
2773 | Global Const $color_fuchsia = 16711935 | |
2774 | Global Const $color_gray = 8421504 | |
2775 | Global Const $color_green = 32768 | |
2776 | Global Const $color_lime = 65280 | |
2777 | Global Const $color_maroon = 9116770 | |
2778 | Global Const $color_medblue = 708 | |
2779 | Global Const $color_medgray = 10526884 | |
2780 | Global Const $color_moneygreen = 12639424 | |
2781 | Global Const $color_navy = 128 | |
2782 | Global Const $color_olive = 8421376 | |
2783 | Global Const $color_purple = 8388736 | |
2784 | Global Const $color_red = 16711680 | |
2785 | Global Const $color_silver = 12632256 | |
2786 | Global Const $color_skyblue = 10930928 | |
2787 | Global Const $color_teal = 32896 | |
2788 | Global Const $color_white = 16777215 | |
2789 | Global Const $color_yellow = 16776960 | |
2790 | Global Const $clr_none = -1 | |
2791 | Global Const $clr_default = -16777216 | |
2792 | Global Const $clr_aqua = 16776960 | |
2793 | Global Const $clr_black = 0 | |
2794 | Global Const $clr_blue = 16711680 | |
2795 | Global Const $clr_cream = 15793151 | |
2796 | Global Const $clr_fuchsia = 16711935 | |
2797 | Global Const $clr_gray = 8421504 | |
2798 | Global Const $clr_green = 32768 | |
2799 | Global Const $clr_lime = 65280 | |
2800 | Global Const $clr_maroon = 6429835 | |
2801 | Global Const $clr_medblue = 12845568 | |
2802 | Global Const $clr_medgray = 10789024 | |
2803 | Global Const $clr_moneygreen = 12639424 | |
2804 | Global Const $clr_navy = 8388608 | |
2805 | Global Const $clr_olive = 32896 | |
2806 | Global Const $clr_purple = 8388736 | |
2807 | Global Const $clr_red = 255 | |
2808 | Global Const $clr_silver = 12632256 | |
2809 | Global Const $clr_skyblue = 15780518 | |
2810 | Global Const $clr_teal = 8421376 | |
2811 | Global Const $clr_white = 16777215 | |
2812 | Global Const $clr_yellow = 65535 | |
2813 | Global Const $cc_anycolor = 256 | |
2814 | Global Const $cc_fullopen = 2 | |
2815 | Global Const $cc_rgbinit = 1 | |
2816 | Global Const $opt_coordsrelative = 0 | |
2817 | Global Const $opt_coordsabsolute = 1 | |
2818 | Global Const $opt_coordsclient = 2 | |
2819 | Global Const $opt_errorsilent = 0 | |
2820 | Global Const $opt_errorfatal = 1 | |
2821 | Global Const $opt_capsnostore = 0 | |
2822 | Global Const $opt_capsstore = 1 | |
2823 | Global Const $opt_matchstart = 1 | |
2824 | Global Const $opt_matchany = 2 | |
2825 | Global Const $opt_matchexact = 3 | |
2826 | Global Const $opt_matchadvanced = 4 | |
2827 | Global Const $ccs_top = 1 | |
2828 | Global Const $ccs_nomovey = 2 | |
2829 | Global Const $ccs_bottom = 3 | |
2830 | Global Const $ccs_noresize = 4 | |
2831 | Global Const $ccs_noparentalign = 8 | |
2832 | Global Const $ccs_nohilite = 16 | |
2833 | Global Const $ccs_adjustable = 32 | |
2834 | Global Const $ccs_nodivider = 64 | |
2835 | Global Const $ccs_vert = 128 | |
2836 | Global Const $ccs_left = 129 | |
2837 | Global Const $ccs_nomovex = 130 | |
2838 | Global Const $ccs_right = 131 | |
2839 | Global Const $di_mask = 1 | |
2840 | Global Const $di_image = 2 | |
2841 | Global Const $di_normal = 3 | |
2842 | Global Const $di_compat = 4 | |
2843 | Global Const $di_defaultsize = 8 | |
2844 | Global Const $di_nomirror = 16 | |
2845 | Global Const $display_device_attached_to_desktop = 1 | |
2846 | Global Const $display_device_multi_driver = 2 | |
2847 | Global Const $display_device_primary_device = 4 | |
2848 | Global Const $display_device_mirroring_driver = 8 | |
2849 | Global Const $display_device_vga_compatible = 16 | |
2850 | Global Const $display_device_removable = 32 | |
2851 | Global Const $display_device_disconnect = 33554432 | |
2852 | Global Const $display_device_remote = 67108864 | |
2853 | Global Const $display_device_modespruned = 134217728 | |
2854 | Global Const $flashw_caption = 1 | |
2855 | Global Const $flashw_tray = 2 | |
2856 | Global Const $flashw_timer = 4 | |
2857 | Global Const $flashw_timernofg = 12 | |
2858 | Global Const $format_message_allocate_buffer = 256 | |
2859 | Global Const $format_message_ignore_inserts = 512 | |
2860 | Global Const $format_message_from_string = 1024 | |
2861 | Global Const $format_message_from_hmodule = 2048 | |
2862 | Global Const $format_message_from_system = 4096 | |
2863 | Global Const $format_message_argument_array = 8192 | |
2864 | Global Const $gw_hwndfirst = 0 | |
2865 | Global Const $gw_hwndlast = 1 | |
2866 | Global Const $gw_hwndnext = 2 | |
2867 | Global Const $gw_hwndprev = 3 | |
2868 | Global Const $gw_owner = 4 | |
2869 | Global Const $gw_child = 5 | |
2870 | Global Const $gwl_wndproc = -4 | |
2871 | Global Const $gwl_hinstance = -6 | |
2872 | Global Const $gwl_hwndparent = -8 | |
2873 | Global Const $gwl_id = -12 | |
2874 | Global Const $gwl_style = -16 | |
2875 | Global Const $gwl_exstyle = -20 | |
2876 | Global Const $gwl_userdata = -21 | |
2877 | Global Const $std_cut = 0 | |
2878 | Global Const $std_copy = 1 | |
2879 | Global Const $std_paste = 2 | |
2880 | Global Const $std_undo = 3 | |
2881 | Global Const $std_redow = 4 | |
2882 | Global Const $std_delete = 5 | |
2883 | Global Const $std_filenew = 6 | |
2884 | Global Const $std_fileopen = 7 | |
2885 | Global Const $std_filesave = 8 | |
2886 | Global Const $std_printpre = 9 | |
2887 | Global Const $std_properties = 10 | |
2888 | Global Const $std_help = 11 | |
2889 | Global Const $std_find = 12 | |
2890 | Global Const $std_replace = 13 | |
2891 | Global Const $std_print = 14 | |
2892 | Global Const $lr_defaultcolor = 0 | |
2893 | Global Const $lr_monochrome = 1 | |
2894 | Global Const $lr_color = 2 | |
2895 | Global Const $lr_copyreturnorg = 4 | |
2896 | Global Const $lr_copydeleteorg = 8 | |
2897 | Global Const $lr_loadfromfile = 16 | |
2898 | Global Const $lr_loadtransparent = 32 | |
2899 | Global Const $lr_defaultsize = 64 | |
2900 | Global Const $lr_vgacolor = 128 | |
2901 | Global Const $lr_loadmap3dcolors = 4096 | |
2902 | Global Const $lr_createdibsection = 8192 | |
2903 | Global Const $lr_copyfromresource = 16384 | |
2904 | Global Const $lr_shared = 32768 | |
2905 | Global Const $image_bitmap = 0 | |
2906 | Global Const $image_icon = 1 | |
2907 | Global Const $image_cursor = 2 | |
2908 | Global Const $kb_sendspecial = 0 | |
2909 | Global Const $kb_sendraw = 1 | |
2910 | Global Const $kb_capsoff = 0 | |
2911 | Global Const $kb_capson = 1 | |
2912 | Global Const $dont_resolve_dll_references = 1 | |
2913 | Global Const $load_library_as_datafile = 2 | |
2914 | Global Const $load_with_altered_search_path = 8 | |
2915 | Global Const $objid_window = 0 | |
2916 | Global Const $objid_titlebar = -2 | |
2917 | Global Const $objid_sizegrip = -7 | |
2918 | Global Const $objid_caret = -8 | |
2919 | Global Const $objid_cursor = -9 | |
2920 | Global Const $objid_alert = -10 | |
2921 | Global Const $objid_sound = -11 | |
2922 | Global Const $vk_down = 40 | |
2923 | Global Const $vk_end = 35 | |
2924 | Global Const $vk_home = 36 | |
2925 | Global Const $vk_left = 37 | |
2926 | Global Const $vk_next = 34 | |
2927 | Global Const $vk_prior = 33 | |
2928 | Global Const $vk_right = 39 | |
2929 | Global Const $vk_up = 38 | |
2930 | Global Const $mb_ok = 0 | |
2931 | Global Const $mb_okcancel = 1 | |
2932 | Global Const $mb_abortretryignore = 2 | |
2933 | Global Const $mb_yesnocancel = 3 | |
2934 | Global Const $mb_yesno = 4 | |
2935 | Global Const $mb_retrycancel = 5 | |
2936 | Global Const $mb_iconhand = 16 | |
2937 | Global Const $mb_iconquestion = 32 | |
2938 | Global Const $mb_iconexclamation = 48 | |
2939 | Global Const $mb_iconasterisk = 64 | |
2940 | Global Const $mb_defbutton1 = 0 | |
2941 | Global Const $mb_defbutton2 = 256 | |
2942 | Global Const $mb_defbutton3 = 512 | |
2943 | Global Const $mb_applmodal = 0 | |
2944 | Global Const $mb_systemmodal = 4096 | |
2945 | Global Const $mb_taskmodal = 8192 | |
2946 | Global Const $mb_topmost = 262144 | |
2947 | Global Const $mb_rightjustified = 524288 | |
2948 | Global Const $idtimeout = -1 | |
2949 | Global Const $idok = 1 | |
2950 | Global Const $idcancel = 2 | |
2951 | Global Const $idabort = 3 | |
2952 | Global Const $idretry = 4 | |
2953 | Global Const $idignore = 5 | |
2954 | Global Const $idyes = 6 | |
2955 | Global Const $idno = 7 | |
2956 | Global Const $idtryagain = 10 | |
2957 | Global Const $idcontinue = 11 | |
2958 | Global Const $dlg_notitle = 1 | |
2959 | Global Const $dlg_notontop = 2 | |
2960 | Global Const $dlg_textleft = 4 | |
2961 | Global Const $dlg_textright = 8 | |
2962 | Global Const $dlg_moveable = 16 | |
2963 | Global Const $dlg_textvcenter = 32 | |
2964 | Global Const $tip_iconnone = 0 | |
2965 | Global Const $tip_iconasterisk = 1 | |
2966 | Global Const $tip_iconexclamation = 2 | |
2967 | Global Const $tip_iconhand = 3 | |
2968 | Global Const $tip_nosound = 16 | |
2969 | Global Const $idc_unknown = 0 | |
2970 | Global Const $idc_appstarting = 1 | |
2971 | Global Const $idc_arrow = 2 | |
2972 | Global Const $idc_cross = 3 | |
2973 | Global Const $idc_hand = 32649 | |
2974 | Global Const $idc_help = 4 | |
2975 | Global Const $idc_ibeam = 5 | |
2976 | Global Const $idc_icon = 6 | |
2977 | Global Const $idc_no = 7 | |
2978 | Global Const $idc_size = 8 | |
2979 | Global Const $idc_sizeall = 9 | |
2980 | Global Const $idc_sizenesw = 10 | |
2981 | Global Const $idc_sizens = 11 | |
2982 | Global Const $idc_sizenwse = 12 | |
2983 | Global Const $idc_sizewe = 13 | |
2984 | Global Const $idc_uparrow = 14 | |
2985 | Global Const $idc_wait = 15 | |
2986 | Global Const $idi_application = 32512 | |
2987 | Global Const $idi_asterisk = 32516 | |
2988 | Global Const $idi_exclamation = 32515 | |
2989 | Global Const $idi_hand = 32513 | |
2990 | Global Const $idi_question = 32514 | |
2991 | Global Const $idi_winlogo = 32517 | |
2992 | Global Const $sd_logoff = 0 | |
2993 | Global Const $sd_shutdown = 1 | |
2994 | Global Const $sd_reboot = 2 | |
2995 | Global Const $sd_force = 4 | |
2996 | Global Const $sd_powerdown = 8 | |
2997 | Global Const $str_nocasesense = 0 | |
2998 | Global Const $str_casesense = 1 | |
2999 | Global Const $str_stripleading = 1 | |
3000 | Global Const $str_striptrailing = 2 | |
3001 | Global Const $str_stripspaces = 4 | |
3002 | Global Const $str_stripall = 8 | |
3003 | Global Const $tray_item_exit = 3 | |
3004 | Global Const $tray_item_pause = 4 | |
3005 | Global Const $tray_item_first = 7 | |
3006 | Global Const $tray_checked = 1 | |
3007 | Global Const $tray_unchecked = 4 | |
3008 | Global Const $tray_enable = 64 | |
3009 | Global Const $tray_disable = 128 | |
3010 | Global Const $tray_focus = 256 | |
3011 | Global Const $tray_default = 512 | |
3012 | Global Const $tray_event_showicon = -3 | |
3013 | Global Const $tray_event_hideicon = -4 | |
3014 | Global Const $tray_event_flashicon = -5 | |
3015 | Global Const $tray_event_noflashicon = -6 | |
3016 | Global Const $tray_event_primarydown = -7 | |
3017 | Global Const $tray_event_primaryup = -8 | |
3018 | Global Const $tray_event_secondarydown = -9 | |
3019 | Global Const $tray_event_secondaryup = -10 | |
3020 | Global Const $tray_event_mouseover = -11 | |
3021 | Global Const $tray_event_mouseout = -12 | |
3022 | Global Const $tray_event_primarydouble = -13 | |
3023 | Global Const $tray_event_secondarydouble = -14 | |
3024 | Global Const $stdin_child = 1 | |
3025 | Global Const $stdout_child = 2 | |
3026 | Global Const $stderr_child = 4 | |
3027 | Global Const $stderr_merged = 8 | |
3028 | Global Const $stdio_inherit_parent = 16 | |
3029 | Global Const $run_create_new_console = 65536 | |
3030 | Global Const $mouseeventf_absolute = 32768 | |
3031 | Global Const $mouseeventf_move = 1 | |
3032 | Global Const $mouseeventf_leftdown = 2 | |
3033 | Global Const $mouseeventf_leftup = 4 | |
3034 | Global Const $mouseeventf_rightdown = 8 | |
3035 | Global Const $mouseeventf_rightup = 16 | |
3036 | Global Const $mouseeventf_middledown = 32 | |
3037 | Global Const $mouseeventf_middleup = 64 | |
3038 | Global Const $mouseeventf_wheel = 2048 | |
3039 | Global Const $mouseeventf_xdown = 128 | |
3040 | Global Const $mouseeventf_xup = 256 | |
3041 | Global Const $reg_none = 0 | |
3042 | Global Const $reg_sz = 1 | |
3043 | Global Const $reg_expand_sz = 2 | |
3044 | Global Const $reg_binary = 3 | |
3045 | Global Const $reg_dword = 4 | |
3046 | Global Const $reg_dword_big_endian = 5 | |
3047 | Global Const $reg_link = 6 | |
3048 | Global Const $reg_multi_sz = 7 | |
3049 | Global Const $reg_resource_list = 8 | |
3050 | Global Const $reg_full_resource_descriptor = 9 | |
3051 | Global Const $reg_resource_requirements_list = 10 | |
3052 | Global Const $hwnd_bottom = 1 | |
3053 | Global Const $hwnd_notopmost = -2 | |
3054 | Global Const $hwnd_top = 0 | |
3055 | Global Const $hwnd_topmost = -1 | |
3056 | Global Const $swp_nosize = 1 | |
3057 | Global Const $swp_nomove = 2 | |
3058 | Global Const $swp_nozorder = 4 | |
3059 | Global Const $swp_noredraw = 8 | |
3060 | Global Const $swp_noactivate = 16 | |
3061 | Global Const $swp_framechanged = 32 | |
3062 | Global Const $swp_drawframe = 32 | |
3063 | Global Const $swp_showwindow = 64 | |
3064 | Global Const $swp_hidewindow = 128 | |
3065 | Global Const $swp_nocopybits = 256 | |
3066 | Global Const $swp_noownerzorder = 512 | |
3067 | Global Const $swp_noreposition = 512 | |
3068 | Global Const $swp_nosendchanging = 1024 | |
3069 | Global Const $swp_defererase = 8192 | |
3070 | Global Const $swp_asyncwindowpos = 16384 | |
3071 | Global Const $lang_afrikaans = 54 | |
3072 | Global Const $lang_albanian = 28 | |
3073 | Global Const $lang_arabic = 1 | |
3074 | Global Const $lang_armenian = 43 | |
3075 | Global Const $lang_assamese = 77 | |
3076 | Global Const $lang_azeri = 44 | |
3077 | Global Const $lang_basque = 45 | |
3078 | Global Const $lang_belarusian = 35 | |
3079 | Global Const $lang_bengali = 69 | |
3080 | Global Const $lang_bulgarian = 2 | |
3081 | Global Const $lang_catalan = 3 | |
3082 | Global Const $lang_chinese = 4 | |
3083 | Global Const $lang_croatian = 26 | |
3084 | Global Const $lang_czech = 5 | |
3085 | Global Const $lang_danish = 6 | |
3086 | Global Const $lang_dutch = 19 | |
3087 | Global Const $lang_english = 9 | |
3088 | Global Const $lang_estonian = 37 | |
3089 | Global Const $lang_faeroese = 56 | |
3090 | Global Const $lang_farsi = 41 | |
3091 | Global Const $lang_finnish = 11 | |
3092 | Global Const $lang_french = 156 | |
3093 | Global Const $lang_georgian = 55 | |
3094 | Global Const $lang_german = 7 | |
3095 | Global Const $lang_greek = 8 | |
3096 | Global Const $lang_gujarati = 71 | |
3097 | Global Const $lang_hebrew = 13 | |
3098 | Global Const $lang_hindi = 57 | |
3099 | Global Const $lang_hungarian = 14 | |
3100 | Global Const $lang_icelandic = 15 | |
3101 | Global Const $lang_indonesian = 33 | |
3102 | Global Const $lang_italian = 16 | |
3103 | Global Const $lang_japanese = 17 | |
3104 | Global Const $lang_kannada = 75 | |
3105 | Global Const $lang_kashmiri = 96 | |
3106 | Global Const $lang_kazak = 63 | |
3107 | Global Const $lang_konkani = 87 | |
3108 | Global Const $lang_korean = 18 | |
3109 | Global Const $lang_latvian = 38 | |
3110 | Global Const $lang_lithuanian = 39 | |
3111 | Global Const $lang_macedonian = 47 | |
3112 | Global Const $lang_malay = 62 | |
3113 | Global Const $lang_malayalam = 76 | |
3114 | Global Const $lang_manipuri = 88 | |
3115 | Global Const $lang_marathi = 78 | |
3116 | Global Const $lang_nepali = 97 | |
3117 | Global Const $lang_neutral = 0 | |
3118 | Global Const $lang_norwegian = 20 | |
3119 | Global Const $lang_oriya = 72 | |
3120 | Global Const $lang_polish = 21 | |
3121 | Global Const $lang_portuguese = 22 | |
3122 | Global Const $lang_punjabi = 70 | |
3123 | Global Const $lang_romanian = 24 | |
3124 | Global Const $lang_russian = 25 | |
3125 | Global Const $lang_sanskrit = 79 | |
3126 | Global Const $lang_serbian = 26 | |
3127 | Global Const $lang_sindhi = 89 | |
3128 | Global Const $lang_slovak = 27 | |
3129 | Global Const $lang_slovenian = 36 | |
3130 | Global Const $lang_spanish = 10 | |
3131 | Global Const $lang_swahili = 65 | |
3132 | Global Const $lang_swedish = 29 | |
3133 | Global Const $lang_tamil = 73 | |
3134 | Global Const $lang_tatar = 68 | |
3135 | Global Const $lang_telugu = 74 | |
3136 | Global Const $lang_thai = 30 | |
3137 | Global Const $lang_turkish = 31 | |
3138 | Global Const $lang_ukrainian = 34 | |
3139 | Global Const $lang_urdu = 32 | |
3140 | Global Const $lang_uzbek = 67 | |
3141 | Global Const $lang_vietnamese = 42 | |
3142 | Global Const $sublang_arabic_algeria = 5 | |
3143 | Global Const $sublang_arabic_bahrain = 15 | |
3144 | Global Const $sublang_arabic_egypt = 3 | |
3145 | Global Const $sublang_arabic_iraq = 2 | |
3146 | Global Const $sublang_arabic_jordan = 11 | |
3147 | Global Const $sublang_arabic_kuwait = 13 | |
3148 | Global Const $sublang_arabic_lebanon = 12 | |
3149 | Global Const $sublang_arabic_libya = 4 | |
3150 | Global Const $sublang_arabic_morocco = 6 | |
3151 | Global Const $sublang_arabic_oman = 8 | |
3152 | Global Const $sublang_arabic_qatar = 16 | |
3153 | Global Const $sublang_arabic_saudi_arabia = 1 | |
3154 | Global Const $sublang_arabic_syria = 10 | |
3155 | Global Const $sublang_arabic_tunisia = 7 | |
3156 | Global Const $sublang_arabic_uae = 14 | |
3157 | Global Const $sublang_arabic_yemen = 9 | |
3158 | Global Const $sublang_azeri_cyrillic = 2 | |
3159 | Global Const $sublang_azeri_latin = 1 | |
3160 | Global Const $sublang_chinese_hongkong = 3 | |
3161 | Global Const $sublang_chinese_macau = 5 | |
3162 | Global Const $sublang_chinese_simplified = 2 | |
3163 | Global Const $sublang_chinese_singapore = 4 | |
3164 | Global Const $sublang_chinese_traditional = 1 | |
3165 | Global Const $sublang_default = 1 | |
3166 | Global Const $sublang_dutch = 1 | |
3167 | Global Const $sublang_dutch_belgian = 2 | |
3168 | Global Const $sublang_english_aus = 3 | |
3169 | Global Const $sublang_english_belize = 10 | |
3170 | Global Const $sublang_english_can = 4 | |
3171 | Global Const $sublang_english_caribbean = 9 | |
3172 | Global Const $sublang_english_eire = 6 | |
3173 | Global Const $sublang_english_jamaica = 8 | |
3174 | Global Const $sublang_english_nz = 5 | |
3175 | Global Const $sublang_english_philippines = 13 | |
3176 | Global Const $sublang_english_south_africa = 7 | |
3177 | Global Const $sublang_english_trinidad = 11 | |
3178 | Global Const $sublang_english_uk = 2 | |
3179 | Global Const $sublang_english_us = 1 | |
3180 | Global Const $sublang_english_zimbabwe = 12 | |
3181 | Global Const $sublang_french = 1 | |
3182 | Global Const $sublang_french_belgian = 2 | |
3183 | Global Const $sublang_french_canadian = 3 | |
3184 | Global Const $sublang_french_luxembourg = 5 | |
3185 | Global Const $sublang_french_monaco = 6 | |
3186 | Global Const $sublang_french_swiss = 4 | |
3187 | Global Const $sublang_german = 1 | |
3188 | Global Const $sublang_german_austrian = 3 | |
3189 | Global Const $sublang_german_liechtenstein = 5 | |
3190 | Global Const $sublang_german_luxembourg = 4 | |
3191 | Global Const $sublang_german_swiss = 2 | |
3192 | Global Const $sublang_italian = 1 | |
3193 | Global Const $sublang_italian_swiss = 2 | |
3194 | Global Const $sublang_kashmiri_india = 2 | |
3195 | Global Const $sublang_korean = 1 | |
3196 | Global Const $sublang_lithuanian = 1 | |
3197 | Global Const $sublang_malay_brunei_darussalam = 2 | |
3198 | Global Const $sublang_malay_malaysia = 1 | |
3199 | Global Const $sublang_nepali_india = 2 | |
3200 | Global Const $sublang_neutral = 0 | |
3201 | Global Const $sublang_norwegian_bokmal = 1 | |
3202 | Global Const $sublang_norwegian_nynorsk = 2 | |
3203 | Global Const $sublang_portuguese = 2 | |
3204 | Global Const $sublang_portuguese_brazilian = 1 | |
3205 | Global Const $sublang_serbian_cyrillic = 3 | |
3206 | Global Const $sublang_serbian_latin = 2 | |
3207 | Global Const $sublang_spanish = 1 | |
3208 | Global Const $sublang_spanish_argentina = 11 | |
3209 | Global Const $sublang_spanish_bolivia = 16 | |
3210 | Global Const $sublang_spanish_chile = 13 | |
3211 | Global Const $sublang_spanish_colombia = 9 | |
3212 | Global Const $sublang_spanish_costa_rica = 5 | |
3213 | Global Const $sublang_spanish_dominican_republic = 7 | |
3214 | Global Const $sublang_spanish_ecuador = 12 | |
3215 | Global Const $sublang_spanish_el_salvador = 17 | |
3216 | Global Const $sublang_spanish_guatemala = 4 | |
3217 | Global Const $sublang_spanish_honduras = 18 | |
3218 | Global Const $sublang_spanish_mexican = 2 | |
3219 | Global Const $sublang_spanish_modern = 3 | |
3220 | Global Const $sublang_spanish_nicaragua = 19 | |
3221 | Global Const $sublang_spanish_panama = 6 | |
3222 | Global Const $sublang_spanish_paraguay = 15 | |
3223 | Global Const $sublang_spanish_peru = 10 | |
3224 | Global Const $sublang_spanish_puerto_rico = 20 | |
3225 | Global Const $sublang_spanish_uruguay = 14 | |
3226 | Global Const $sublang_spanish_venezuela = 8 | |
3227 | Global Const $sublang_swedish = 1 | |
3228 | Global Const $sublang_swedish_finland = 2 | |
3229 | Global Const $sublang_sys_default = 2 | |
3230 | Global Const $sublang_urdu_india = 2 | |
3231 | Global Const $sublang_urdu_pakistan = 1 | |
3232 | Global Const $sublang_uzbek_cyrillic = 2 | |
3233 | Global Const $sort_default = 0 | |
3234 | Global Const $sort_japanese_xjis = 0 | |
3235 | Global Const $sort_japanese_unicode = 1 | |
3236 | Global Const $sort_chinese_big5 = 0 | |
3237 | Global Const $sort_chinese_prcp = 0 | |
3238 | Global Const $sort_chinese_unicode = 1 | |
3239 | Global Const $sort_chinese_prc = 2 | |
3240 | Global Const $sort_korean_ksc = 0 | |
3241 | Global Const $sort_korean_unicode = 1 | |
3242 | Global Const $sort_german_phone_book = 1 | |
3243 | Global Const $sort_hungarian_default = 0 | |
3244 | Global Const $sort_hungarian_technical = 1 | |
3245 | Global Const $sort_georgian_traditional = 0 | |
3246 | Global Const $sort_georgian_modern = 1 | |
3247 | Global Const $ws_tiled = 0 | |
3248 | Global Const $ws_overlapped = 0 | |
3249 | Global Const $ws_maximizebox = 65536 | |
3250 | Global Const $ws_minimizebox = 131072 | |
3251 | Global Const $ws_tabstop = 65536 | |
3252 | Global Const $ws_group = 131072 | |
3253 | Global Const $ws_sizebox = 262144 | |
3254 | Global Const $ws_thickframe = 262144 | |
3255 | Global Const $ws_sysmenu = 524288 | |
3256 | Global Const $ws_hscroll = 1048576 | |
3257 | Global Const $ws_vscroll = 2097152 | |
3258 | Global Const $ws_dlgframe = 4194304 | |
3259 | Global Const $ws_border = 8388608 | |
3260 | Global Const $ws_caption = 12582912 | |
3261 | Global Const $ws_overlappedwindow = 13565952 | |
3262 | Global Const $ws_tiledwindow = 13565952 | |
3263 | Global Const $ws_maximize = 16777216 | |
3264 | Global Const $ws_clipchildren = 33554432 | |
3265 | Global Const $ws_clipsiblings = 67108864 | |
3266 | Global Const $ws_disabled = 134217728 | |
3267 | Global Const $ws_visible = 268435456 | |
3268 | Global Const $ws_minimize = 536870912 | |
3269 | Global Const $ws_child = 1073741824 | |
3270 | Global Const $ws_popup = -2147483648 | |
3271 | Global Const $ws_popupwindow = -2138570752 | |
3272 | Global Const $ds_modalframe = 128 | |
3273 | Global Const $ds_setforeground = 512 | |
3274 | Global Const $ds_contexthelp = 8192 | |
3275 | Global Const $ws_ex_acceptfiles = 16 | |
3276 | Global Const $ws_ex_mdichild = 64 | |
3277 | Global Const $ws_ex_appwindow = 262144 | |
3278 | Global Const $ws_ex_composited = 33554432 | |
3279 | Global Const $ws_ex_clientedge = 512 | |
3280 | Global Const $ws_ex_contexthelp = 1024 | |
3281 | Global Const $ws_ex_dlgmodalframe = 1 | |
3282 | Global Const $ws_ex_leftscrollbar = 16384 | |
3283 | Global Const $ws_ex_overlappedwindow = 768 | |
3284 | Global Const $ws_ex_right = 4096 | |
3285 | Global Const $ws_ex_staticedge = 131072 | |
3286 | Global Const $ws_ex_toolwindow = 128 | |
3287 | Global Const $ws_ex_topmost = 8 | |
3288 | Global Const $ws_ex_transparent = 32 | |
3289 | Global Const $ws_ex_windowedge = 256 | |
3290 | Global Const $ws_ex_layered = 524288 | |
3291 | Global Const $ws_ex_controlparent = 65536 | |
3292 | Global Const $ws_ex_layoutrtl = 4194304 | |
3293 | Global Const $ws_ex_rtlreading = 8192 | |
3294 | Global Const $wm_gettextlength = 14 | |
3295 | Global Const $wm_gettext = 13 | |
3296 | Global Const $wm_size = 5 | |
3297 | Global Const $wm_sizing = 532 | |
3298 | Global Const $wm_user = 1024 | |
3299 | Global Const $wm_create = 1 | |
3300 | Global Const $wm_destroy = 2 | |
3301 | Global Const $wm_move = 3 | |
3302 | Global Const $wm_activate = 6 | |
3303 | Global Const $wm_setfocus = 7 | |
3304 | Global Const $wm_killfocus = 8 | |
3305 | Global Const $wm_enable = 10 | |
3306 | Global Const $wm_setredraw = 11 | |
3307 | Global Const $wm_settext = 12 | |
3308 | Global Const $wm_paint = 15 | |
3309 | Global Const $wm_close = 16 | |
3310 | Global Const $wm_quit = 18 | |
3311 | Global Const $wm_erasebkgnd = 20 | |
3312 | Global Const $wm_syscolorchange = 21 | |
3313 | Global Const $wm_showwindow = 24 | |
3314 | Global Const $wm_wininichange = 26 | |
3315 | Global Const $wm_devmodechange = 27 | |
3316 | Global Const $wm_activateapp = 28 | |
3317 | Global Const $wm_fontchange = 29 | |
3318 | Global Const $wm_timechange = 30 | |
3319 | Global Const $wm_cancelmode = 31 | |
3320 | Global Const $wm_setcursor = 32 | |
3321 | Global Const $wm_mouseactivate = 33 | |
3322 | Global Const $wm_childactivate = 34 | |
3323 | Global Const $wm_queuesync = 35 | |
3324 | Global Const $wm_getminmaxinfo = 36 | |
3325 | Global Const $wm_painticon = 38 | |
3326 | Global Const $wm_iconerasebkgnd = 39 | |
3327 | Global Const $wm_nextdlgctl = 40 | |
3328 | Global Const $wm_spoolerstatus = 42 | |
3329 | Global Const $wm_drawitem = 43 | |
3330 | Global Const $wm_measureitem = 44 | |
3331 | Global Const $wm_deleteitem = 45 | |
3332 | Global Const $wm_vkeytoitem = 46 | |
3333 | Global Const $wm_chartoitem = 47 | |
3334 | Global Const $wm_setfont = 48 | |
3335 | Global Const $wm_getfont = 49 | |
3336 | Global Const $wm_sethotkey = 50 | |
3337 | Global Const $wm_gethotkey = 51 | |
3338 | Global Const $wm_querydragicon = 55 | |
3339 | Global Const $wm_compareitem = 57 | |
3340 | Global Const $wm_getobject = 61 | |
3341 | Global Const $wm_compacting = 65 | |
3342 | Global Const $wm_commnotify = 68 | |
3343 | Global Const $wm_windowposchanging = 70 | |
3344 | Global Const $wm_windowposchanged = 71 | |
3345 | Global Const $wm_power = 72 | |
3346 | Global Const $wm_notify = 78 | |
3347 | Global Const $wm_copydata = 74 | |
3348 | Global Const $wm_canceljournal = 75 | |
3349 | Global Const $wm_inputlangchangerequest = 80 | |
3350 | Global Const $wm_inputlangchange = 81 | |
3351 | Global Const $wm_tcard = 82 | |
3352 | Global Const $wm_help = 83 | |
3353 | Global Const $wm_userchanged = 84 | |
3354 | Global Const $wm_notifyformat = 85 | |
3355 | Global Const $wm_cut = 768 | |
3356 | Global Const $wm_copy = 769 | |
3357 | Global Const $wm_paste = 770 | |
3358 | Global Const $wm_clear = 771 | |
3359 | Global Const $wm_undo = 772 | |
3360 | Global Const $wm_contextmenu = 123 | |
3361 | Global Const $wm_stylechanging = 124 | |
3362 | Global Const $wm_stylechanged = 125 | |
3363 | Global Const $wm_displaychange = 126 | |
3364 | Global Const $wm_geticon = 127 | |
3365 | Global Const $wm_seticon = 128 | |
3366 | Global Const $wm_nccreate = 129 | |
3367 | Global Const $wm_ncdestroy = 130 | |
3368 | Global Const $wm_nccalcsize = 131 | |
3369 | Global Const $wm_nchittest = 132 | |
3370 | Global Const $wm_ncpaint = 133 | |
3371 | Global Const $wm_ncactivate = 134 | |
3372 | Global Const $wm_getdlgcode = 135 | |
3373 | Global Const $wm_syncpaint = 136 | |
3374 | Global Const $wm_ncmousemove = 160 | |
3375 | Global Const $wm_nclbuttondown = 161 | |
3376 | Global Const $wm_nclbuttonup = 162 | |
3377 | Global Const $wm_nclbuttondblclk = 163 | |
3378 | Global Const $wm_ncrbuttondown = 164 | |
3379 | Global Const $wm_ncrbuttonup = 165 | |
3380 | Global Const $wm_ncrbuttondblclk = 166 | |
3381 | Global Const $wm_ncmbuttondown = 167 | |
3382 | Global Const $wm_ncmbuttonup = 168 | |
3383 | Global Const $wm_ncmbuttondblclk = 169 | |
3384 | Global Const $wm_keydown = 256 | |
3385 | Global Const $wm_keyup = 257 | |
3386 | Global Const $wm_char = 258 | |
3387 | Global Const $wm_deadchar = 259 | |
3388 | Global Const $wm_syskeydown = 260 | |
3389 | Global Const $wm_syskeyup = 261 | |
3390 | Global Const $wm_syschar = 262 | |
3391 | Global Const $wm_sysdeadchar = 263 | |
3392 | Global Const $wm_initdialog = 272 | |
3393 | Global Const $wm_command = 273 | |
3394 | Global Const $wm_syscommand = 274 | |
3395 | Global Const $wm_timer = 275 | |
3396 | Global Const $wm_hscroll = 276 | |
3397 | Global Const $wm_vscroll = 277 | |
3398 | Global Const $wm_initmenu = 278 | |
3399 | Global Const $wm_initmenupopup = 279 | |
3400 | Global Const $wm_menuselect = 287 | |
3401 | Global Const $wm_menuchar = 288 | |
3402 | Global Const $wm_enteridle = 289 | |
3403 | Global Const $wm_menurbuttonup = 290 | |
3404 | Global Const $wm_menudrag = 291 | |
3405 | Global Const $wm_menugetobject = 292 | |
3406 | Global Const $wm_uninitmenupopup = 293 | |
3407 | Global Const $wm_menucommand = 294 | |
3408 | Global Const $wm_changeuistate = 295 | |
3409 | Global Const $wm_updateuistate = 296 | |
3410 | Global Const $wm_queryuistate = 297 | |
3411 | Global Const $wm_ctlcolormsgbox = 306 | |
3412 | Global Const $wm_ctlcoloredit = 307 | |
3413 | Global Const $wm_ctlcolorlistbox = 308 | |
3414 | Global Const $wm_ctlcolorbtn = 309 | |
3415 | Global Const $wm_ctlcolordlg = 310 | |
3416 | Global Const $wm_ctlcolorscrollbar = 311 | |
3417 | Global Const $wm_ctlcolorstatic = 312 | |
3418 | Global Const $wm_ctlcolor = 25 | |
3419 | Global Const $mn_gethmenu = 481 | |
3420 | Global Const $nm_first = 0 | |
3421 | Global Const $nm_outofmemory = $nm_first - 1 | |
3422 | Global Const $nm_click = $nm_first - 2 | |
3423 | Global Const $nm_dblclk = $nm_first - 3 | |
3424 | Global Const $nm_return = $nm_first - 4 | |
3425 | Global Const $nm_rclick = $nm_first - 5 | |
3426 | Global Const $nm_rdblclk = $nm_first - 6 | |
3427 | Global Const $nm_setfocus = $nm_first - 7 | |
3428 | Global Const $nm_killfocus = $nm_first - 8 | |
3429 | Global Const $nm_customdraw = $nm_first - 12 | |
3430 | Global Const $nm_hover = $nm_first - 13 | |
3431 | Global Const $nm_nchittest = $nm_first - 14 | |
3432 | Global Const $nm_keydown = $nm_first - 15 | |
3433 | Global Const $nm_releasedcapture = $nm_first - 16 | |
3434 | Global Const $nm_setcursor = $nm_first - 17 | |
3435 | Global Const $nm_char = $nm_first - 18 | |
3436 | Global Const $nm_tooltipscreated = $nm_first - 19 | |
3437 | Global Const $nm_ldown = $nm_first - 20 | |
3438 | Global Const $nm_rdown = $nm_first - 21 | |
3439 | Global Const $nm_themechanged = $nm_first - 22 | |
3440 | Global Const $wm_mousemove = 512 | |
3441 | Global Const $wm_lbuttondown = 513 | |
3442 | Global Const $wm_lbuttonup = 514 | |
3443 | Global Const $wm_lbuttondblclk = 515 | |
3444 | Global Const $wm_rbuttondown = 516 | |
3445 | Global Const $wm_rbuttonup = 517 | |
3446 | Global Const $wm_rbuttondblck = 518 | |
3447 | Global Const $wm_mbuttondown = 519 | |
3448 | Global Const $wm_mbuttonup = 520 | |
3449 | Global Const $wm_mbuttondblck = 521 | |
3450 | Global Const $wm_mousewheel = 522 | |
3451 | Global Const $wm_xbuttondown = 523 | |
3452 | Global Const $wm_xbuttonup = 524 | |
3453 | Global Const $wm_xbuttondblclk = 525 | |
3454 | Global Const $wm_mousehwheel = 526 | |
3455 | Global Const $ps_solid = 0 | |
3456 | Global Const $ps_dash = 1 | |
3457 | Global Const $ps_dot = 2 | |
3458 | Global Const $ps_dashdot = 3 | |
3459 | Global Const $ps_dashdotdot = 4 | |
3460 | Global Const $ps_null = 5 | |
3461 | Global Const $ps_insideframe = 6 | |
3462 | Global Const $lwa_alpha = 2 | |
3463 | Global Const $lwa_colorkey = 1 | |
3464 | Global Const $rgn_and = 1 | |
3465 | Global Const $rgn_or = 2 | |
3466 | Global Const $rgn_xor = 3 | |
3467 | Global Const $rgn_diff = 4 | |
3468 | Global Const $rgn_copy = 5 | |
3469 | Global Const $errorregion = 0 | |
3470 | Global Const $nullregion = 1 | |
3471 | Global Const $simpleregion = 2 | |
3472 | Global Const $complexregion = 3 | |
3473 | Global Const $transparent = 1 | |
3474 | Global Const $opaque = 2 | |
3475 | Global Const $ccm_first = 8192 | |
3476 | Global Const $ccm_getunicodeformat = ($ccm_first + 6) | |
3477 | Global Const $ccm_setunicodeformat = ($ccm_first + 5) | |
3478 | Global Const $ccm_setbkcolor = $ccm_first + 1 | |
3479 | Global Const $ccm_setcolorscheme = $ccm_first + 2 | |
3480 | Global Const $ccm_getcolorscheme = $ccm_first + 3 | |
3481 | Global Const $ccm_getdroptarget = $ccm_first + 4 | |
3482 | Global Const $ccm_setwindowtheme = $ccm_first + 11 | |
3483 | Global Const $ga_parent = 1 | |
3484 | Global Const $ga_root = 2 | |
3485 | Global Const $ga_rootowner = 3 | |
3486 | Global Const $sm_cxscreen = 0 | |
3487 | Global Const $sm_cyscreen = 1 | |
3488 | Global Const $sm_cxvscroll = 2 | |
3489 | Global Const $sm_cyhscroll = 3 | |
3490 | Global Const $sm_cycaption = 4 | |
3491 | Global Const $sm_cxborder = 5 | |
3492 | Global Const $sm_cyborder = 6 | |
3493 | Global Const $sm_cxdlgframe = 7 | |
3494 | Global Const $sm_cydlgframe = 8 | |
3495 | Global Const $sm_cyvthumb = 9 | |
3496 | Global Const $sm_cxhthumb = 10 | |
3497 | Global Const $sm_cxicon = 11 | |
3498 | Global Const $sm_cyicon = 12 | |
3499 | Global Const $sm_cxcursor = 13 | |
3500 | Global Const $sm_cycursor = 14 | |
3501 | Global Const $sm_cymenu = 15 | |
3502 | Global Const $sm_cxfullscreen = 16 | |
3503 | Global Const $sm_cyfullscreen = 17 | |
3504 | Global Const $sm_cykanjiwindow = 18 | |
3505 | Global Const $sm_mousepresent = 19 | |
3506 | Global Const $sm_cyvscroll = 20 | |
3507 | Global Const $sm_cxhscroll = 21 | |
3508 | Global Const $sm_debug = 22 | |
3509 | Global Const $sm_swapbutton = 23 | |
3510 | Global Const $sm_reserved1 = 24 | |
3511 | Global Const $sm_reserved2 = 25 | |
3512 | Global Const $sm_reserved3 = 26 | |
3513 | Global Const $sm_reserved4 = 27 | |
3514 | Global Const $sm_cxmin = 28 | |
3515 | Global Const $sm_cymin = 29 | |
3516 | Global Const $sm_cxsize = 30 | |
3517 | Global Const $sm_cysize = 31 | |
3518 | Global Const $sm_cxframe = 32 | |
3519 | Global Const $sm_cyframe = 33 | |
3520 | Global Const $sm_cxmintrack = 34 | |
3521 | Global Const $sm_cymintrack = 35 | |
3522 | Global Const $sm_cxdoubleclk = 36 | |
3523 | Global Const $sm_cydoubleclk = 37 | |
3524 | Global Const $sm_cxiconspacing = 38 | |
3525 | Global Const $sm_cyiconspacing = 39 | |
3526 | Global Const $sm_menudropalignment = 40 | |
3527 | Global Const $sm_penwindows = 41 | |
3528 | Global Const $sm_dbcsenabled = 42 | |
3529 | Global Const $sm_cmousebuttons = 43 | |
3530 | Global Const $sm_secure = 44 | |
3531 | Global Const $sm_cxedge = 45 | |
3532 | Global Const $sm_cyedge = 46 | |
3533 | Global Const $sm_cxminspacing = 47 | |
3534 | Global Const $sm_cyminspacing = 48 | |
3535 | Global Const $sm_cxsmicon = 49 | |
3536 | Global Const $sm_cysmicon = 50 | |
3537 | Global Const $sm_cysmcaption = 51 | |
3538 | Global Const $sm_cxsmsize = 52 | |
3539 | Global Const $sm_cysmsize = 53 | |
3540 | Global Const $sm_cxmenusize = 54 | |
3541 | Global Const $sm_cymenusize = 55 | |
3542 | Global Const $sm_arrange = 56 | |
3543 | Global Const $sm_cxminimized = 57 | |
3544 | Global Const $sm_cyminimized = 58 | |
3545 | Global Const $sm_cxmaxtrack = 59 | |
3546 | Global Const $sm_cymaxtrack = 60 | |
3547 | Global Const $sm_cxmaximized = 61 | |
3548 | Global Const $sm_cymaximized = 62 | |
3549 | Global Const $sm_network = 63 | |
3550 | Global Const $sm_cleanboot = 67 | |
3551 | Global Const $sm_cxdrag = 68 | |
3552 | Global Const $sm_cydrag = 69 | |
3553 | Global Const $sm_showsounds = 70 | |
3554 | Global Const $sm_cxmenucheck = 71 | |
3555 | Global Const $sm_cymenucheck = 72 | |
3556 | Global Const $sm_slowmachine = 73 | |
3557 | Global Const $sm_mideastenabled = 74 | |
3558 | Global Const $sm_mousewheelpresent = 75 | |
3559 | Global Const $sm_xvirtualscreen = 76 | |
3560 | Global Const $sm_yvirtualscreen = 77 | |
3561 | Global Const $sm_cxvirtualscreen = 78 | |
3562 | Global Const $sm_cyvirtualscreen = 79 | |
3563 | Global Const $sm_cmonitors = 80 | |
3564 | Global Const $sm_samedisplayformat = 81 | |
3565 | Global Const $sm_immenabled = 82 | |
3566 | Global Const $sm_cxfocusborder = 83 | |
3567 | Global Const $sm_cyfocusborder = 84 | |
3568 | Global Const $sm_tabletpc = 86 | |
3569 | Global Const $sm_mediacenter = 87 | |
3570 | Global Const $sm_starter = 88 | |
3571 | Global Const $sm_serverr2 = 89 | |
3572 | Global Const $sm_cmetrics = 90 | |
3573 | Global Const $sm_remotesession = 4096 | |
3574 | Global Const $sm_shuttingdown = 8192 | |
3575 | Global Const $sm_remotecontrol = 8193 | |
3576 | Global Const $sm_caretblinkingenabled = 8194 | |
3577 | Global Const $blackness = 66 | |
3578 | Global Const $captureblt = 1073741824 | |
3579 | Global Const $dstinvert = 5570569 | |
3580 | Global Const $mergecopy = 12583114 | |
3581 | Global Const $mergepaint = 12255782 | |
3582 | Global Const $nomirrorbitmap = -2147483648 | |
3583 | Global Const $notsrccopy = 3342344 | |
3584 | Global Const $notsrcerase = 1114278 | |
3585 | Global Const $patcopy = 15728673 | |
3586 | Global Const $patinvert = 5898313 | |
3587 | Global Const $patpaint = 16452105 | |
3588 | Global Const $srcand = 8913094 | |
3589 | Global Const $srccopy = 13369376 | |
3590 | Global Const $srcerase = 4457256 | |
3591 | Global Const $srcinvert = 6684742 | |
3592 | Global Const $srcpaint = 15597702 | |
3593 | Global Const $whiteness = 16711778 | |
3594 | Global Const $dt_bottom = 8 | |
3595 | Global Const $dt_calcrect = 1024 | |
3596 | Global Const $dt_center = 1 | |
3597 | Global Const $dt_editcontrol = 8192 | |
3598 | Global Const $dt_end_ellipsis = 32768 | |
3599 | Global Const $dt_expandtabs = 64 | |
3600 | Global Const $dt_externalleading = 512 | |
3601 | Global Const $dt_hideprefix = 1048576 | |
3602 | Global Const $dt_internal = 4096 | |
3603 | Global Const $dt_left = 0 | |
3604 | Global Const $dt_modifystring = 65536 | |
3605 | Global Const $dt_noclip = 256 | |
3606 | Global Const $dt_nofullwidthcharbreak = 524288 | |
3607 | Global Const $dt_noprefix = 2048 | |
3608 | Global Const $dt_path_ellipsis = 16384 | |
3609 | Global Const $dt_prefixonly = 2097152 | |
3610 | Global Const $dt_right = 2 | |
3611 | Global Const $dt_rtlreading = 131072 | |
3612 | Global Const $dt_singleline = 32 | |
3613 | Global Const $dt_tabstop = 128 | |
3614 | Global Const $dt_top = 0 | |
3615 | Global Const $dt_vcenter = 4 | |
3616 | Global Const $dt_wordbreak = 16 | |
3617 | Global Const $dt_word_ellipsis = 262144 | |
3618 | Global Const $rdw_erase = 4 | |
3619 | Global Const $rdw_frame = 1024 | |
3620 | Global Const $rdw_internalpaint = 2 | |
3621 | Global Const $rdw_invalidate = 1 | |
3622 | Global Const $rdw_noerase = 32 | |
3623 | Global Const $rdw_noframe = 2048 | |
3624 | Global Const $rdw_nointernalpaint = 16 | |
3625 | Global Const $rdw_validate = 8 | |
3626 | Global Const $rdw_erasenow = 512 | |
3627 | Global Const $rdw_updatenow = 256 | |
3628 | Global Const $rdw_allchildren = 128 | |
3629 | Global Const $rdw_nochildren = 64 | |
3630 | Global Const $wm_renderformat = 773 | |
3631 | Global Const $wm_renderallformats = 774 | |
3632 | Global Const $wm_destroyclipboard = 775 | |
3633 | Global Const $wm_drawclipboard = 776 | |
3634 | Global Const $wm_paintclipboard = 777 | |
3635 | Global Const $wm_vscrollclipboard = 778 | |
3636 | Global Const $wm_sizeclipboard = 779 | |
3637 | Global Const $wm_askcbformatname = 780 | |
3638 | Global Const $wm_changecbchain = 781 | |
3639 | Global Const $wm_hscrollclipboard = 782 | |
3640 | Global Const $hterror = -2 | |
3641 | Global Const $httransparent = -1 | |
3642 | Global Const $htnowhere = 0 | |
3643 | Global Const $htclient = 1 | |
3644 | Global Const $htcaption = 2 | |
3645 | Global Const $htsysmenu = 3 | |
3646 | Global Const $htgrowbox = 4 | |
3647 | Global Const $htsize = $htgrowbox | |
3648 | Global Const $htmenu = 5 | |
3649 | Global Const $hthscroll = 6 | |
3650 | Global Const $htvscroll = 7 | |
3651 | Global Const $htminbutton = 8 | |
3652 | Global Const $htmaxbutton = 9 | |
3653 | Global Const $htleft = 10 | |
3654 | Global Const $htright = 11 | |
3655 | Global Const $httop = 12 | |
3656 | Global Const $httopleft = 13 | |
3657 | Global Const $httopright = 14 | |
3658 | Global Const $htbottom = 15 | |
3659 | Global Const $htbottomleft = 16 | |
3660 | Global Const $htbottomright = 17 | |
3661 | Global Const $htborder = 18 | |
3662 | Global Const $htreduce = $htminbutton | |
3663 | Global Const $htzoom = $htmaxbutton | |
3664 | Global Const $htsizefirst = $htleft | |
3665 | Global Const $htsizelast = $htbottomright | |
3666 | Global Const $htobject = 19 | |
3667 | Global Const $htclose = 20 | |
3668 | Global Const $hthelp = 21 | |
3669 | Global Const $color_scrollbar = 0 | |
3670 | Global Const $color_background = 1 | |
3671 | Global Const $color_activecaption = 2 | |
3672 | Global Const $color_inactivecaption = 3 | |
3673 | Global Const $color_menu = 4 | |
3674 | Global Const $color_window = 5 | |
3675 | Global Const $color_windowframe = 6 | |
3676 | Global Const $color_menutext = 7 | |
3677 | Global Const $color_windowtext = 8 | |
3678 | Global Const $color_captiontext = 9 | |
3679 | Global Const $color_activeborder = 10 | |
3680 | Global Const $color_inactiveborder = 11 | |
3681 | Global Const $color_appworkspace = 12 | |
3682 | Global Const $color_highlight = 13 | |
3683 | Global Const $color_highlighttext = 14 | |
3684 | Global Const $color_btnface = 15 | |
3685 | Global Const $color_btnshadow = 16 | |
3686 | Global Const $color_graytext = 17 | |
3687 | Global Const $color_btntext = 18 | |
3688 | Global Const $color_inactivecaptiontext = 19 | |
3689 | Global Const $color_btnhighlight = 20 | |
3690 | Global Const $color_3ddkshadow = 21 | |
3691 | Global Const $color_3dlight = 22 | |
3692 | Global Const $color_infotext = 23 | |
3693 | Global Const $color_infobk = 24 | |
3694 | Global Const $color_hotlight = 26 | |
3695 | Global Const $color_gradientactivecaption = 27 | |
3696 | Global Const $color_gradientinactivecaption = 28 | |
3697 | Global Const $color_menuhilight = 29 | |
3698 | Global Const $color_menubar = 30 | |
3699 | Global Const $color_desktop = 1 | |
3700 | Global Const $color_3dface = 15 | |
3701 | Global Const $color_3dshadow = 16 | |
3702 | Global Const $color_3dhighlight = 20 | |
3703 | Global Const $color_3dhilight = 20 | |
3704 | Global Const $color_btnhilight = 20 | |
3705 | Global Const $hinst_commctrl = -1 | |
3706 | Global Const $idb_std_small_color = 0 | |
3707 | Global Const $idb_std_large_color = 1 | |
3708 | Global Const $idb_view_small_color = 4 | |
3709 | Global Const $idb_view_large_color = 5 | |
3710 | Global Const $idb_hist_small_color = 8 | |
3711 | Global Const $idb_hist_large_color = 9 | |
3712 | Global Const $startf_forceofffeedback = 128 | |
3713 | Global Const $startf_forceonfeedback = 64 | |
3714 | Global Const $startf_runfullscreen = 32 | |
3715 | Global Const $startf_usecountchars = 8 | |
3716 | Global Const $startf_usefillattribute = 16 | |
3717 | Global Const $startf_usehotkey = 512 | |
3718 | Global Const $startf_useposition = 4 | |
3719 | Global Const $startf_useshowwindow = 1 | |
3720 | Global Const $startf_usesize = 2 | |
3721 | Global Const $startf_usestdhandles = 256 | |
3722 | Global Const $cdds_prepaint = 1 | |
3723 | Global Const $cdds_postpaint = 2 | |
3724 | Global Const $cdds_preerase = 3 | |
3725 | Global Const $cdds_posterase = 4 | |
3726 | Global Const $cdds_item = 65536 | |
3727 | Global Const $cdds_itemprepaint = 65537 | |
3728 | Global Const $cdds_itempostpaint = 65538 | |
3729 | Global Const $cdds_itempreerase = 65539 | |
3730 | Global Const $cdds_itemposterase = 65540 | |
3731 | Global Const $cdds_subitem = 131072 | |
3732 | Global Const $cdis_selected = 1 | |
3733 | Global Const $cdis_grayed = 2 | |
3734 | Global Const $cdis_disabled = 4 | |
3735 | Global Const $cdis_checked = 8 | |
3736 | Global Const $cdis_focus = 16 | |
3737 | Global Const $cdis_default = 32 | |
3738 | Global Const $cdis_hot = 64 | |
3739 | Global Const $cdis_marked = 128 | |
3740 | Global Const $cdis_indeterminate = 256 | |
3741 | Global Const $cdis_showkeyboardcues = 512 | |
3742 | Global Const $cdis_nearhot = 1024 | |
3743 | Global Const $cdis_othersidehot = 2048 | |
3744 | Global Const $cdis_drophilited = 4096 | |
3745 | Global Const $cdrf_dodefault = 0 | |
3746 | Global Const $cdrf_newfont = 2 | |
3747 | Global Const $cdrf_skipdefault = 4 | |
3748 | Global Const $cdrf_notifypostpaint = 16 | |
3749 | Global Const $cdrf_notifyitemdraw = 32 | |
3750 | Global Const $cdrf_notifysubitemdraw = 32 | |
3751 | Global Const $cdrf_notifyposterase = 64 | |
3752 | Global Const $cdrf_doerase = 8 | |
3753 | Global Const $cdrf_skippostpaint = 256 | |
3754 | Global Const $gui_ss_default_gui = BitOR($ws_minimizebox, $ws_caption, $ws_popup, $ws_sysmenu) | |
3755 | Global $pid | |
3756 | #Region _Memory | |
3757 | ||
3758 | Func _hextostring($strhex) | |
3759 | If StringLeft($strhex, 2) = "0x" Then Return BinaryToString($strhex) | |
3760 | Return BinaryToString("0x" & $strhex) | |
3761 | EndFunc | |
3762 | ||
3763 | Func _stringbetween($s_string, $s_start, $s_end, $v_case = -1) | |
3764 | Local $s_case = "" | |
3765 | If $v_case = Default OR $v_case = -1 Then $s_case = "(?i)" | |
3766 | Local $s_pattern_escape = "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)" | |
3767 | $s_start = StringRegExpReplace($s_start, $s_pattern_escape, "\\$1") | |
3768 | $s_end = StringRegExpReplace($s_end, $s_pattern_escape, "\\$1") | |
3769 | If $s_start = "" Then $s_start = "\A" | |
3770 | If $s_end = "" Then $s_end = "\z" | |
3771 | Local $a_ret = StringRegExp($s_string, "(?s)" & $s_case & $s_start & "(.*?)" & $s_end, 3) | |
3772 | If @error Then Return SetError(1, 0, 0) | |
3773 | Return $a_ret | |
3774 | EndFunc | |
3775 | ||
3776 | Func _stringencrypt($i_encrypt, $s_encrypttext, $s_encryptpassword, $i_encryptlevel = 1) | |
3777 | If $i_encrypt <> 0 AND $i_encrypt <> 1 Then | |
3778 | SetError(1, 0, "") | |
3779 | ElseIf $s_encrypttext = "" OR $s_encryptpassword = "" Then | |
3780 | SetError(1, 0, "") | |
3781 | Else | |
3782 | If Number($i_encryptlevel) <= 0 OR Int($i_encryptlevel) <> $i_encryptlevel Then $i_encryptlevel = 1 | |
3783 | Local $v_encryptmodified | |
3784 | Local $i_encryptcounth | |
3785 | Local $i_encryptcountg | |
3786 | Local $v_encryptswap | |
3787 | Local $av_encryptbox[256][2] | |
3788 | Local $i_encryptcounta | |
3789 | Local $i_encryptcountb | |
3790 | Local $i_encryptcountc | |
3791 | Local $i_encryptcountd | |
3792 | Local $i_encryptcounte | |
3793 | Local $v_encryptcipher | |
3794 | Local $v_encryptcipherby | |
3795 | If $i_encrypt = 1 Then | |
3796 | For $i_encryptcountf = 0 To $i_encryptlevel Step 1 | |
3797 | $i_encryptcountg = "" | |
3798 | $i_encryptcounth = "" | |
3799 | $v_encryptmodified = "" | |
3800 | For $i_encryptcountg = 1 To StringLen($s_encrypttext) | |
3801 | If $i_encryptcounth = StringLen($s_encryptpassword) Then | |
3802 | $i_encryptcounth = 1 | |
3803 | Else | |
3804 | $i_encryptcounth += 1 | |
3805 | EndIf | |
3806 | $v_encryptmodified = $v_encryptmodified & Chr(BitXOR(Asc(StringMid($s_encrypttext, $i_encryptcountg, 1)), Asc(StringMid($s_encryptpassword, $i_encryptcounth, 1)), 255)) | |
3807 | Next | |
3808 | $s_encrypttext = $v_encryptmodified | |
3809 | $i_encryptcounta = "" | |
3810 | $i_encryptcountb = 0 | |
3811 | $i_encryptcountc = "" | |
3812 | $i_encryptcountd = "" | |
3813 | $i_encryptcounte = "" | |
3814 | $v_encryptcipherby = "" | |
3815 | $v_encryptcipher = "" | |
3816 | $v_encryptswap = "" | |
3817 | $av_encryptbox = "" | |
3818 | Local $av_encryptbox[256][2] | |
3819 | For $i_encryptcounta = 0 To 255 | |
3820 | $av_encryptbox[$i_encryptcounta][1] = Asc(StringMid($s_encryptpassword, Mod($i_encryptcounta, StringLen($s_encryptpassword)) + 1, 1)) | |
3821 | $av_encryptbox[$i_encryptcounta][0] = $i_encryptcounta | |
3822 | Next | |
3823 | For $i_encryptcounta = 0 To 255 | |
3824 | $i_encryptcountb = Mod(($i_encryptcountb + $av_encryptbox[$i_encryptcounta][0] + $av_encryptbox[$i_encryptcounta][1]), 256) | |
3825 | $v_encryptswap = $av_encryptbox[$i_encryptcounta][0] | |
3826 | $av_encryptbox[$i_encryptcounta][0] = $av_encryptbox[$i_encryptcountb][0] | |
3827 | $av_encryptbox[$i_encryptcountb][0] = $v_encryptswap | |
3828 | Next | |
3829 | For $i_encryptcounta = 1 To StringLen($s_encrypttext) | |
3830 | $i_encryptcountc = Mod(($i_encryptcountc + 1), 256) | |
3831 | $i_encryptcountd = Mod(($i_encryptcountd + $av_encryptbox[$i_encryptcountc][0]), 256) | |
3832 | $i_encryptcounte = $av_encryptbox[Mod(($av_encryptbox[$i_encryptcountc][0] + $av_encryptbox[$i_encryptcountd][0]), 256)][0] | |
3833 | $v_encryptcipherby = BitXOR(Asc(StringMid($s_encrypttext, $i_encryptcounta, 1)), $i_encryptcounte) | |
3834 | $v_encryptcipher &= Hex($v_encryptcipherby, 2) | |
3835 | Next | |
3836 | $s_encrypttext = $v_encryptcipher | |
3837 | Next | |
3838 | Else | |
3839 | For $i_encryptcountf = 0 To $i_encryptlevel Step 1 | |
3840 | $i_encryptcountb = 0 | |
3841 | $i_encryptcountc = "" | |
3842 | $i_encryptcountd = "" | |
3843 | $i_encryptcounte = "" | |
3844 | $v_encryptcipherby = "" | |
3845 | $v_encryptcipher = "" | |
3846 | $v_encryptswap = "" | |
3847 | $av_encryptbox = "" | |
3848 | Local $av_encryptbox[256][2] | |
3849 | For $i_encryptcounta = 0 To 255 | |
3850 | $av_encryptbox[$i_encryptcounta][1] = Asc(StringMid($s_encryptpassword, Mod($i_encryptcounta, StringLen($s_encryptpassword)) + 1, 1)) | |
3851 | $av_encryptbox[$i_encryptcounta][0] = $i_encryptcounta | |
3852 | Next | |
3853 | For $i_encryptcounta = 0 To 255 | |
3854 | $i_encryptcountb = Mod(($i_encryptcountb + $av_encryptbox[$i_encryptcounta][0] + $av_encryptbox[$i_encryptcounta][1]), 256) | |
3855 | $v_encryptswap = $av_encryptbox[$i_encryptcounta][0] | |
3856 | $av_encryptbox[$i_encryptcounta][0] = $av_encryptbox[$i_encryptcountb][0] | |
3857 | $av_encryptbox[$i_encryptcountb][0] = $v_encryptswap | |
3858 | Next | |
3859 | For $i_encryptcounta = 1 To StringLen($s_encrypttext) Step 2 | |
3860 | $i_encryptcountc = Mod(($i_encryptcountc + 1), 256) | |
3861 | $i_encryptcountd = Mod(($i_encryptcountd + $av_encryptbox[$i_encryptcountc][0]), 256) | |
3862 | $i_encryptcounte = $av_encryptbox[Mod(($av_encryptbox[$i_encryptcountc][0] + $av_encryptbox[$i_encryptcountd][0]), 256)][0] | |
3863 | $v_encryptcipherby = BitXOR(Dec(StringMid($s_encrypttext, $i_encryptcounta, 2)), $i_encryptcounte) | |
3864 | $v_encryptcipher = $v_encryptcipher & Chr($v_encryptcipherby) | |
3865 | Next | |
3866 | $s_encrypttext = $v_encryptcipher | |
3867 | $i_encryptcountg = "" | |
3868 | $i_encryptcounth = "" | |
3869 | $v_encryptmodified = "" | |
3870 | For $i_encryptcountg = 1 To StringLen($s_encrypttext) | |
3871 | If $i_encryptcounth = StringLen($s_encryptpassword) Then | |
3872 | $i_encryptcounth = 1 | |
3873 | Else | |
3874 | $i_encryptcounth += 1 | |
3875 | EndIf | |
3876 | $v_encryptmodified &= Chr(BitXOR(Asc(StringMid($s_encrypttext, $i_encryptcountg, 1)), Asc(StringMid($s_encryptpassword, $i_encryptcounth, 1)), 255)) | |
3877 | Next | |
3878 | $s_encrypttext = $v_encryptmodified | |
3879 | Next | |
3880 | EndIf | |
3881 | Return $s_encrypttext | |
3882 | EndIf | |
3883 | EndFunc | |
3884 | ||
3885 | Func _stringexplode($sstring, $sdelimiter, $ilimit = 0) | |
3886 | If $ilimit > 0 Then | |
3887 | $sstring = StringReplace($sstring, $sdelimiter, Chr(0), $ilimit) | |
3888 | $sdelimiter = Chr(0) | |
3889 | ElseIf $ilimit < 0 Then | |
3890 | Local $iindex = StringInStr($sstring, $sdelimiter, 0, $ilimit) | |
3891 | If $iindex Then | |
3892 | $sstring = StringLeft($sstring, $iindex - 1) | |
3893 | EndIf | |
3894 | EndIf | |
3895 | Return StringSplit($sstring, $sdelimiter, 3) | |
3896 | EndFunc | |
3897 | ||
3898 | Func _stringinsert($s_string, $s_insertstring, $i_position) | |
3899 | Local $i_length, $s_start, $s_end | |
3900 | If $s_string = "" OR (NOT IsString($s_string)) Then | |
3901 | Return SetError(1, 0, $s_string) | |
3902 | ElseIf $s_insertstring = "" OR (NOT IsString($s_string)) Then | |
3903 | Return SetError(2, 0, $s_string) | |
3904 | Else | |
3905 | $i_length = StringLen($s_string) | |
3906 | If (Abs($i_position) > $i_length) OR (NOT IsInt($i_position)) Then | |
3907 | Return SetError(3, 0, $s_string) | |
3908 | EndIf | |
3909 | EndIf | |
3910 | If $i_position = 0 Then | |
3911 | Return $s_insertstring & $s_string | |
3912 | ElseIf $i_position > 0 Then | |
3913 | $s_start = StringLeft($s_string, $i_position) | |
3914 | $s_end = StringRight($s_string, $i_length - $i_position) | |
3915 | Return $s_start & $s_insertstring & $s_end | |
3916 | ElseIf $i_position < 0 Then | |
3917 | $s_start = StringLeft($s_string, Abs($i_length + $i_position)) | |
3918 | $s_end = StringRight($s_string, Abs($i_position)) | |
3919 | Return $s_start & $s_insertstring & $s_end | |
3920 | EndIf | |
3921 | EndFunc | |
3922 | ||
3923 | Func _stringproper($s_string) | |
3924 | Local $ix = 0 | |
3925 | Local $capnext = 1 | |
3926 | Local $s_nstr = "" | |
3927 | Local $s_curchar | |
3928 | For $ix = 1 To StringLen($s_string) | |
3929 | $s_curchar = StringMid($s_string, $ix, 1) | |
3930 | Select | |
3931 | Case $capnext = 1 | |
3932 | If StringRegExp($s_curchar, "[a-zA-ZÀ-ÿaS~x]") Then | |
3933 | $s_curchar = StringUpper($s_curchar) | |
3934 | $capnext = 0 | |
3935 | EndIf | |
3936 | Case NOT StringRegExp($s_curchar, "[a-zA-ZÀ-ÿaS~x]") | |
3937 | $capnext = 1 | |
3938 | Case Else | |
3939 | $s_curchar = StringLower($s_curchar) | |
3940 | EndSelect | |
3941 | $s_nstr &= $s_curchar | |
3942 | Next | |
3943 | Return $s_nstr | |
3944 | EndFunc | |
3945 | ||
3946 | Func _stringrepeat($sstring, $irepeatcount) | |
3947 | Local $sresult | |
3948 | Select | |
3949 | Case NOT StringIsInt($irepeatcount) | |
3950 | SetError(1) | |
3951 | Return "" | |
3952 | Case StringLen($sstring) < 1 | |
3953 | SetError(1) | |
3954 | Return "" | |
3955 | Case $irepeatcount <= 0 | |
3956 | SetError(1) | |
3957 | Return "" | |
3958 | Case Else | |
3959 | For $icount = 1 To $irepeatcount | |
3960 | $sresult &= $sstring | |
3961 | Next | |
3962 | Return $sresult | |
3963 | EndSelect | |
3964 | EndFunc | |
3965 | ||
3966 | Func _stringreverse($s_string) | |
3967 | Local $i_len = StringLen($s_string) | |
3968 | If $i_len < 1 Then Return SetError(1, 0, "") | |
3969 | Local $t_chars = DllStructCreate("char[" & $i_len + 1 & "]") | |
3970 | DllStructSetData($t_chars, 1, $s_string) | |
3971 | Local $a_rev = DllCall("msvcrt.dll", "ptr:cdecl", "_strrev", "ptr", DllStructGetPtr($t_chars)) | |
3972 | If @error OR $a_rev[0] = 0 Then Return SetError(2, 0, "") | |
3973 | Return DllStructGetData($t_chars, 1) | |
3974 | EndFunc | |
3975 | ||
3976 | Func _stringtohex($strchar) | |
3977 | Return Hex(StringToBinary($strchar)) | |
3978 | EndFunc | |
3979 | ||
3980 | Func _memoryopen($iv_pid, $iv_desiredaccess = 2035711, $iv_inherithandle = 1) | |
3981 | If NOT ProcessExists($iv_pid) Then | |
3982 | SetError(1) | |
3983 | Return 0 | |
3984 | EndIf | |
3985 | Local $ah_handle[2] = [DllOpen("kernel32.dll")] | |
3986 | If @error Then | |
3987 | SetError(2) | |
3988 | Return 0 | |
3989 | EndIf | |
3990 | Local $av_openprocess = DllCall($ah_handle[0], "int", "OpenProcess", "int", $iv_desiredaccess, "int", $iv_inherithandle, "int", $iv_pid) | |
3991 | If @error Then | |
3992 | DllClose($ah_handle[0]) | |
3993 | SetError(3) | |
3994 | Return 0 | |
3995 | EndIf | |
3996 | $ah_handle[1] = $av_openprocess[0] | |
3997 | Return $ah_handle | |
3998 | EndFunc | |
3999 | ||
4000 | Func _memoryread($iv_address, $ah_handle, $sv_type = "dword") | |
4001 | If NOT IsArray($ah_handle) Then | |
4002 | SetError(1) | |
4003 | Return 0 | |
4004 | EndIf | |
4005 | Local $v_buffer = DllStructCreate($sv_type) | |
4006 | If @error Then | |
4007 | SetError(@error + 1) | |
4008 | Return 0 | |
4009 | EndIf | |
4010 | DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "") | |
4011 | If NOT @error Then | |
4012 | Local $v_value = DllStructGetData($v_buffer, 1) | |
4013 | Return $v_value | |
4014 | Else | |
4015 | SetError(6) | |
4016 | Return 0 | |
4017 | EndIf | |
4018 | EndFunc | |
4019 | ||
4020 | Func _memoryreadprotected($iv_address, $ah_handle, $sv_type = "dword") | |
4021 | If NOT IsArray($ah_handle) Then | |
4022 | SetError(1) | |
4023 | Return 0 | |
4024 | EndIf | |
4025 | Local $v_buffer = DllStructCreate($sv_type) | |
4026 | If @error Then | |
4027 | SetError(@error + 1) | |
4028 | Return 0 | |
4029 | EndIf | |
4030 | Local $x = DllCall($ah_handle[0], "int", "VirtualProtectEx", "int", $ah_handle[1], "ptr", $iv_address, "int", DllStructGetSize($v_buffer), "dword", 64, "dword*", 0) | |
4031 | DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "") | |
4032 | DllCall($ah_handle[0], "int", "VirtualProtectEx", "int", $ah_handle[1], "ptr", $iv_address, "int", DllStructGetSize($v_buffer), "dword", $x[5], "dword*", 0) | |
4033 | If NOT @error Then | |
4034 | Local $v_value = DllStructGetData($v_buffer, 1) | |
4035 | Return $v_value | |
4036 | Else | |
4037 | SetError(6) | |
4038 | Return 0 | |
4039 | EndIf | |
4040 | EndFunc | |
4041 | ||
4042 | Func setconsoletitle($stitle) | |
4043 | Return DllCall("Kernel32.dll", "bool", "SetConsoleTitleW", "wstr", $stitle) | |
4044 | EndFunc | |
4045 | ||
4046 | Func _memorywrite($iv_address, $ah_handle, $v_data, $sv_type = "dword") | |
4047 | If NOT IsArray($ah_handle) Then | |
4048 | SetError(1) | |
4049 | Return 0 | |
4050 | EndIf | |
4051 | Local $v_buffer = DllStructCreate($sv_type) | |
4052 | If @error Then | |
4053 | SetError(@error + 1) | |
4054 | Return 0 | |
4055 | Else | |
4056 | DllStructSetData($v_buffer, 1, $v_data) | |
4057 | If @error Then | |
4058 | SetError(6) | |
4059 | Return 0 | |
4060 | EndIf | |
4061 | EndIf | |
4062 | DllCall($ah_handle[0], "int", "WriteProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "") | |
4063 | If NOT @error Then | |
4064 | Return 1 | |
4065 | Else | |
4066 | SetError(7) | |
4067 | Return 0 | |
4068 | EndIf | |
4069 | EndFunc | |
4070 | ||
4071 | Func _memorywriteprotected($iv_address, $ah_handle, $v_data, $sv_type = "dword") | |
4072 | If NOT IsArray($ah_handle) Then | |
4073 | SetError(1) | |
4074 | Return 0 | |
4075 | EndIf | |
4076 | Local $v_buffer = DllStructCreate($sv_type) | |
4077 | If @error Then | |
4078 | SetError(@error + 1) | |
4079 | Return 0 | |
4080 | Else | |
4081 | DllStructSetData($v_buffer, 1, $v_data) | |
4082 | If @error Then | |
4083 | SetError(6) | |
4084 | Return 0 | |
4085 | EndIf | |
4086 | EndIf | |
4087 | Local $x = DllCall($ah_handle[0], "int", "VirtualProtectEx", "int", $ah_handle[1], "ptr", $iv_address, "int", DllStructGetSize($v_buffer), "dword", 64, "dword*", 0) | |
4088 | DllCall($ah_handle[0], "int", "WriteProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "") | |
4089 | DllCall($ah_handle[0], "int", "VirtualProtectEx", "int", $ah_handle[1], "ptr", $iv_address, "int", DllStructGetSize($v_buffer), "dword", $x[5], "dword*", 0) | |
4090 | If NOT @error Then | |
4091 | Return 1 | |
4092 | Else | |
4093 | SetError(7) | |
4094 | Return 0 | |
4095 | EndIf | |
4096 | EndFunc | |
4097 | ||
4098 | Func _memoryclose($ah_handle) | |
4099 | If NOT IsArray($ah_handle) Then | |
4100 | SetError(1) | |
4101 | Return 0 | |
4102 | EndIf | |
4103 | DllCall($ah_handle[0], "int", "CloseHandle", "int", $ah_handle[1]) | |
4104 | If NOT @error Then | |
4105 | DllClose($ah_handle[0]) | |
4106 | Return 1 | |
4107 | Else | |
4108 | DllClose($ah_handle[0]) | |
4109 | SetError(2) | |
4110 | Return 0 | |
4111 | EndIf | |
4112 | EndFunc | |
4113 | ||
4114 | Func setprivilege($privilege, $benable) | |
4115 | Const $my_token_adjust_privileges = 32 | |
4116 | Const $my_token_query = 8 | |
4117 | Const $my_se_privilege_enabled = 2 | |
4118 | Local $htoken, $sp_auxret, $sp_ret, $hcurrprocess, $ntokens, $ntokenindex, $priv | |
4119 | $ntokens = 1 | |
4120 | $luid = DllStructCreate("dword;int") | |
4121 | If IsArray($privilege) Then $ntokens = UBound($privilege) | |
4122 | $token_privileges = DllStructCreate("dword;dword[" & (3 * $ntokens) & "]") | |
4123 | $newtoken_privileges = DllStructCreate("dword;dword[" & (3 * $ntokens) & "]") | |
4124 | $hcurrprocess = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess") | |
4125 | $sp_auxret = DllCall("advapi32.dll", "int", "OpenProcessToken", "hwnd", $hcurrprocess[0], "int", BitOR($my_token_adjust_privileges, $my_token_query), "int*", 0) | |
4126 | If $sp_auxret[0] Then | |
4127 | $htoken = $sp_auxret[3] | |
4128 | DllStructSetData($token_privileges, 1, 1) | |
4129 | $ntokenindex = 1 | |
4130 | While $ntokenindex <= $ntokens | |
4131 | If IsArray($privilege) Then | |
4132 | $priv = $privilege[$ntokenindex - 1] | |
4133 | Else | |
4134 | $priv = $privilege | |
4135 | EndIf | |
4136 | $ret = DllCall("advapi32.dll", "int", "LookupPrivilegeValue", "str", "", "str", $priv, "ptr", DllStructGetPtr($luid)) | |
4137 | If $ret[0] Then | |
4138 | If $benable Then | |
4139 | DllStructSetData($token_privileges, 2, $my_se_privilege_enabled, (3 * $ntokenindex)) | |
4140 | Else | |
4141 | DllStructSetData($token_privileges, 2, 0, (3 * $ntokenindex)) | |
4142 | EndIf | |
4143 | DllStructSetData($token_privileges, 2, DllStructGetData($luid, 1), (3 * ($ntokenindex - 1)) + 1) | |
4144 | DllStructSetData($token_privileges, 2, DllStructGetData($luid, 2), (3 * ($ntokenindex - 1)) + 2) | |
4145 | DllStructSetData($luid, 1, 0) | |
4146 | DllStructSetData($luid, 2, 0) | |
4147 | EndIf | |
4148 | $ntokenindex += 1 | |
4149 | WEnd | |
4150 | $ret = DllCall("advapi32.dll", "int", "AdjustTokenPrivileges", "hwnd", $htoken, "int", 0, "ptr", DllStructGetPtr($token_privileges), "int", DllStructGetSize($newtoken_privileges), "ptr", DllStructGetPtr($newtoken_privileges), "int*", 0) | |
4151 | $f = DllCall("kernel32.dll", "int", "GetLastError") | |
4152 | EndIf | |
4153 | $newtoken_privileges = 0 | |
4154 | $token_privileges = 0 | |
4155 | $luid = 0 | |
4156 | If $sp_auxret[0] = 0 Then Return 0 | |
4157 | $sp_auxret = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $htoken) | |
4158 | If NOT $ret[0] AND NOT $sp_auxret[0] Then Return 0 | |
4159 | Return $ret[0] | |
4160 | EndFunc | |
4161 | ||
4162 | Func _memorymodulegetbaseaddress($ipid, $smodule) | |
4163 | If NOT ProcessExists($ipid) Then Return SetError(1, 0, 0) | |
4164 | If NOT IsString($smodule) Then Return SetError(2, 0, 0) | |
4165 | Local $psapi = DllOpen("psapi.dll") | |
4166 | Local $hprocess | |
4167 | Local $permission = BitOR(2, 1024, 8, 16, 32) | |
4168 | If $ipid > 0 Then | |
4169 | Local $hprocess = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $permission, "int", 0, "dword", $ipid) | |
4170 | If $hprocess[0] Then | |
4171 | $hprocess = $hprocess[0] | |
4172 | EndIf | |
4173 | EndIf | |
4174 | Local $modules = DllStructCreate("ptr[1024]") | |
4175 | Local $acall = DllCall($psapi, "int", "EnumProcessModules", "ptr", $hprocess, "ptr", DllStructGetPtr($modules), "dword", DllStructGetSize($modules), "dword*", 0) | |
4176 | If $acall[4] > 0 Then | |
4177 | Local $imodnum = $acall[4] / 4 | |
4178 | Local $atemp | |
4179 | For $i = 1 To $imodnum | |
4180 | $atemp = DllCall($psapi, "dword", "GetModuleBaseNameW", "ptr", $hprocess, "ptr", Ptr(DllStructGetData($modules, 1, $i)), "wstr", "", "dword", 260) | |
4181 | If $atemp[3] = $smodule Then | |
4182 | DllClose($psapi) | |
4183 | Return Ptr(DllStructGetData($modules, 1, $i)) | |
4184 | EndIf | |
4185 | Next | |
4186 | EndIf | |
4187 | DllClose($psapi) | |
4188 | Return SetError(-1, 0, 0) | |
4189 | _memoryclose($pid) | |
4190 | EndFunc | |
4191 | ||
4192 | Func _findpattern($iv_pid, $dwstart, $bpattern, $bprotected = False) | |
4193 | If $bprotected = False Then | |
4194 | Local $dwstart2 = $dwstart - 4096 | |
4195 | Local $memopenhandle = _memoryopen($iv_pid, 2035711) | |
4196 | Do | |
4197 | $dwstart2 = $dwstart2 + 4096 | |
4198 | Local $searchbuffer = _memoryread($dwstart2, $memopenhandle, "byte[4130]") | |
4199 | Local $ncount = StringInStr($searchbuffer, $bpattern) | |
4200 | Until $ncount = NOT 0 | |
4201 | Local $ncountf = ($ncount / 2) - 1 | |
4202 | Return "0x" & Hex($dwstart2 + $ncountf) | |
4203 | _memoryclose($iv_pid) | |
4204 | ElseIf $bprotected = True Then | |
4205 | Local $dwstart2 = $dwstart - 4096 | |
4206 | Local $memopenhandle = _memoryopen($iv_pid, 2035711) | |
4207 | Do | |
4208 | $dwstart2 = $dwstart2 + 4096 | |
4209 | Local $searchbuffer = _memoryreadprotected($dwstart2, $memopenhandle, "byte[4130]") | |
4210 | Local $ncount = StringInStr($searchbuffer, $bpattern) | |
4211 | Until $ncount = NOT 0 | |
4212 | Local $ncountf = ($ncount / 2) - 1 | |
4213 | Return "0x" & Hex($dwstart2 + $ncountf) | |
4214 | _memoryclose($iv_pid) | |
4215 | EndIf | |
4216 | EndFunc | |
4217 | ||
4218 | Func _findpatternhdr($iv_pid, $dwstart, $bpattern) | |
4219 | Local $dwstart2 = $dwstart - 147456 | |
4220 | Local $memopenhandle = _memoryopen($iv_pid, 2035711) | |
4221 | Do | |
4222 | $dwstart2 = $dwstart2 + 147456 | |
4223 | Local $searchbuffer = _memoryread($dwstart2, $memopenhandle, "byte[147456]") | |
4224 | Local $ncount = StringInStr($searchbuffer, $bpattern) | |
4225 | Until $ncount = NOT 0 | |
4226 | Local $ncountf = ($ncount / 2) - 1 | |
4227 | Return "0x" & Hex($dwstart2 + $ncountf - $dwstart) | |
4228 | _memoryclose($iv_pid) | |
4229 | EndFunc | |
4230 | ||
4231 | Func _pattern($iv_pid, $dwstart, $bpattern) | |
4232 | Local $dwstart2 = $dwstart | |
4233 | Local $memopenhandle = _memoryopen($iv_pid, 2035711) | |
4234 | Local $bpatterna = StringSplit($bpattern, "*", 1) | |
4235 | Do | |
4236 | $dwstart2 = $dwstart2 + 65536 | |
4237 | Local $searchbuffer = _memoryread($dwstart2, $memopenhandle, "byte[65536]") | |
4238 | Local $ncount = StringInStr($searchbuffer, $bpattern) | |
4239 | Until $ncount = NOT 0 | |
4240 | Local $ncountf = ($ncount / 2) - 1 | |
4241 | Return "0x" & Hex($dwstart2 + $ncountf) | |
4242 | _memoryclose($iv_pid) | |
4243 | EndFunc | |
4244 | ||
4245 | Func __setprivilege($privilege, $benable) | |
4246 | Const $my_token_adjust_privileges = 32 | |
4247 | Const $my_token_query = 8 | |
4248 | Const $my_se_privilege_enabled = 2 | |
4249 | Local $htoken, $sp_auxret, $sp_ret, $hcurrprocess, $ntokens, $ntokenindex, $priv | |
4250 | $ntokens = 1 | |
4251 | $luid = DllStructCreate("dword;int") | |
4252 | If IsArray($privilege) Then $ntokens = UBound($privilege) | |
4253 | $token_privileges = DllStructCreate("dword;dword[" & (3 * $ntokens) & "]") | |
4254 | $newtoken_privileges = DllStructCreate("dword;dword[" & (3 * $ntokens) & "]") | |
4255 | $hcurrprocess = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess") | |
4256 | $sp_auxret = DllCall("advapi32.dll", "int", "OpenProcessToken", "hwnd", $hcurrprocess[0], "int", BitOR($my_token_adjust_privileges, $my_token_query), "int*", 0) | |
4257 | If $sp_auxret[0] Then | |
4258 | $htoken = $sp_auxret[3] | |
4259 | DllStructSetData($token_privileges, 1, 1) | |
4260 | $ntokenindex = 1 | |
4261 | While $ntokenindex <= $ntokens | |
4262 | If IsArray($privilege) Then | |
4263 | $priv = $privilege[$ntokenindex - 1] | |
4264 | Else | |
4265 | $priv = $privilege | |
4266 | EndIf | |
4267 | $ret = DllCall("advapi32.dll", "int", "LookupPrivilegeValue", "str", "", "str", $priv, "ptr", DllStructGetPtr($luid)) | |
4268 | If $ret[0] Then | |
4269 | If $benable Then | |
4270 | DllStructSetData($token_privileges, 2, $my_se_privilege_enabled, (3 * $ntokenindex)) | |
4271 | Else | |
4272 | DllStructSetData($token_privileges, 2, 0, (3 * $ntokenindex)) | |
4273 | EndIf | |
4274 | DllStructSetData($token_privileges, 2, DllStructGetData($luid, 1), (3 * ($ntokenindex - 1)) + 1) | |
4275 | DllStructSetData($token_privileges, 2, DllStructGetData($luid, 2), (3 * ($ntokenindex - 1)) + 2) | |
4276 | DllStructSetData($luid, 1, 0) | |
4277 | DllStructSetData($luid, 2, 0) | |
4278 | EndIf | |
4279 | $ntokenindex += 1 | |
4280 | WEnd | |
4281 | $ret = DllCall("advapi32.dll", "int", "AdjustTokenPrivileges", "hwnd", $htoken, "int", 0, "ptr", DllStructGetPtr($token_privileges), "int", DllStructGetSize($newtoken_privileges), "ptr", DllStructGetPtr($newtoken_privileges), "int*", 0) | |
4282 | $f = DllCall("kernel32.dll", "int", "GetLastError") | |
4283 | EndIf | |
4284 | $newtoken_privileges = 0 | |
4285 | $token_privileges = 0 | |
4286 | $luid = 0 | |
4287 | If $sp_auxret[0] = 0 Then Return 0 | |
4288 | $sp_auxret = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $htoken) | |
4289 | If NOT $ret[0] AND NOT $sp_auxret[0] Then Return 0 | |
4290 | Return $ret[0] | |
4291 | EndFunc | |
4292 | ||
4293 | Func swapendian($hex) | |
4294 | Return Hex(BitOR(BitOR(BitOR(BitShift($hex, 24), BitAND(BitShift($hex, -8), 16711680)), BitAND(BitShift($hex, 8), 65280)), BitShift($hex, -24)), 8) | |
4295 | EndFunc | |
4296 | ||
4297 | Func swapendian2($dw) | |
4298 | Return Hex(Int(StringToBinary(BinaryToString($dw), 1))) | |
4299 | EndFunc | |
4300 | ||
4301 | Func _getdriveinfo($sdrive) | |
4302 | $sdrive = StringRegExpReplace($sdrive, "(?i)(.*)([a-z]{1}:)(.*)", "$2") | |
4303 | Local $sdrivetype = DriveGetType($sdrive) | |
4304 | If $sdrivetype <> "Fixed" AND $sdrivetype <> "Removable" Then SetError(1, 0, 1) | |
4305 | If NOT FileExists($sdrive) Then Return SetError(1, 0, 1) | |
4306 | Local $wbemflagreturnimmediately = 16 | |
4307 | Local $wbemflagforwardonly = 32 | |
4308 | Local $colitems = "" | |
4309 | Local $apartition, $aphysicaldrive, $aout[14][2] | |
4310 | $objwmiservice = ObjGet("winmgmts:\\localhost\root\CIMV2") | |
4311 | If NOT IsObj($objwmiservice) Then Return SetError(2, 0, 2) | |
4312 | $colitems = $objwmiservice.execquery("SELECT * FROM Win32_LogicalDiskToPartition", "WQL", $wbemflagreturnimmediately + $wbemflagforwardonly) | |
4313 | If IsObj($colitems) Then | |
4314 | For $objitem In $colitems | |
4315 | If StringInStr($objitem.dependent, '"' & $sdrive & '"') Then | |
4316 | $apartition = StringRegExp($objitem.antecedent, 'DeviceID="(.*)"', 3) | |
4317 | EndIf | |
4318 | Next | |
4319 | EndIf | |
4320 | If NOT IsArray($apartition) Then Return SetError(3, 0, 3) | |
4321 | $colitems = $objwmiservice.execquery("SELECT * FROM Win32_DiskDriveToDiskPartition", "WQL", $wbemflagreturnimmediately + $wbemflagforwardonly) | |
4322 | If IsObj($colitems) Then | |
4323 | For $objitem In $colitems | |
4324 | If StringInStr($objitem.dependent, '"' & $apartition[0] & '"') Then | |
4325 | $aphysicaldrive = StringRegExp($objitem.antecedent, 'DeviceID="(.*)"', 3) | |
4326 | EndIf | |
4327 | Next | |
4328 | EndIf | |
4329 | If NOT IsArray($aphysicaldrive) Then Return SetError(4, 0, 4) | |
4330 | $aphysicaldrive[0] = StringReplace($aphysicaldrive[0], "\\", "\") | |
4331 | $colitems = $objwmiservice.execquery("SELECT * FROM Win32_DiskDrive", "WQL", $wbemflagreturnimmediately + $wbemflagforwardonly) | |
4332 | If IsObj($colitems) Then | |
4333 | For $objitem In $colitems | |
4334 | If StringInStr($objitem.deviceid, $aphysicaldrive[0]) Then | |
4335 | $aout[0][0] = "Volume-Label" | |
4336 | $aout[0][1] = DriveGetLabel($sdrive) | |
4337 | $aout[1][0] = "Serial-Nr. (Volume)" | |
4338 | $aout[1][1] = DriveGetSerial($sdrive) | |
4339 | $aout[2][0] = "Model" | |
4340 | $aout[2][1] = $objitem.model | |
4341 | $aout[3][0] = "Serial-Nr. (Drive)" | |
4342 | $aout[3][1] = StringMid($objitem.pnpdeviceid, StringInStr($objitem.pnpdeviceid, "\", 0, -1) + 1) | |
4343 | $aout[3][1] = StringReplace($aout[3][1], "&0", "") | |
4344 | $aout[4][0] = "Interface" | |
4345 | $aout[4][1] = $objitem.interfacetype | |
4346 | $aout[5][0] = "Size (Bytes)" | |
4347 | $aout[5][1] = $objitem.size | |
4348 | $aout[6][0] = "Media Type" | |
4349 | $aout[6][1] = StringRegExpReplace($objitem.mediatype, "[^[:print:]]", " ") | |
4350 | $aout[7][0] = "Total Cylinders" | |
4351 | $aout[7][1] = $objitem.totalcylinders | |
4352 | $aout[8][0] = "Total Heads" | |
4353 | $aout[8][1] = $objitem.totalheads | |
4354 | $aout[9][0] = "Total Tracks" | |
4355 | $aout[9][1] = $objitem.totaltracks | |
4356 | $aout[10][0] = "Total Sectors" | |
4357 | $aout[10][1] = $objitem.totalsectors | |
4358 | $aout[11][0] = "Tracks Per Cylinder" | |
4359 | $aout[11][1] = $objitem.trackspercylinder | |
4360 | $aout[12][0] = "Sectors Per Track" | |
4361 | $aout[12][1] = $objitem.sectorspertrack | |
4362 | $aout[13][0] = "Bytes Per Sector" | |
4363 | $aout[13][1] = $objitem.bytespersector | |
4364 | EndIf | |
4365 | Next | |
4366 | EndIf | |
4367 | $objwmiservice = "" | |
4368 | Return $aout | |
4369 | EndFunc | |
4370 | ||
4371 | Func createremotethread($hprocess, $lpthreadattributes, $dwstacksize, $lpstartaddress, $lpparameter, $dwcreationflags, $lpthreadid) | |
4372 | If NOT IsArray($hprocess) Then | |
4373 | SetError(1) | |
4374 | Return - 1 | |
4375 | EndIf | |
4376 | Return DllCall($hprocess[0], "HANDLE", "CreateRemoteThread", "HANDLE", $hprocess[1], "int", $lpthreadattributes, "int", $dwstacksize, "DWORD", $lpstartaddress, "ptr", $lpparameter, "DWORD", $dwcreationflags, "DWORD*", $lpthreadid) | |
4377 | EndFunc | |
4378 | ||
4379 | Func file_open($filename) | |
4380 | Return FileOpen($filename, 17) | |
4381 | EndFunc | |
4382 | ||
4383 | Func file_close($filehandle) | |
4384 | FileClose($filehandle) | |
4385 | EndFunc | |
4386 | ||
4387 | Func file_scanex($hfile, $pattern, $mask, $addr = 0) | |
4388 | $pattern = StringRegExpReplace($pattern, "[^0123456789ABCDEFabcdef.]", "") | |
4389 | If StringLen($pattern) = 0 Then | |
4390 | SetError(2) | |
4391 | Return - 2 | |
4392 | EndIf | |
4393 | If StringLen($pattern) / 2 <> StringLen($mask) Then | |
4394 | SetError(4) | |
4395 | Return - 4 | |
4396 | EndIf | |
4397 | Local $formatedpattern = "" | |
4398 | Local $bufferpattern | |
4399 | Local $buffermask | |
4400 | For $i = 0 To StringLen($mask) - 1 | |
4401 | $bufferpattern = StringLeft($pattern, 2) | |
4402 | $pattern = StringRight($pattern, StringLen($pattern) - 2) | |
4403 | $buffermask = StringLeft($mask, 1) | |
4404 | $mask = StringRight($mask, StringLen($mask) - 1) | |
4405 | If $buffermask = "?" Then $bufferpattern = ".." | |
4406 | $formatedpattern = $formatedpattern & $bufferpattern | |
4407 | Next | |
4408 | $pattern = $formatedpattern | |
4409 | $bytes = StringTrimLeft(file_read($hfile, $addr, 16777215), 2) | |
4410 | StringRegExp($bytes, $pattern, 1, 0) | |
4411 | If NOT @error Then | |
4412 | $retn = StringFormat("0x%.8X", 0 + ((@extended - StringLen($pattern) - 2) / 2)) | |
4413 | Return $retn | |
4414 | Else | |
4415 | Return - 3 | |
4416 | EndIf | |
4417 | EndFunc | |
4418 | ||
4419 | Func file_scan($hfile, $pattern, $addr = 0) | |
4420 | $bytes = StringTrimLeft(file_read($hfile, $addr, 16777215), 2) | |
4421 | StringRegExp($bytes, $pattern, 1, 0) | |
4422 | If NOT @error Then | |
4423 | $retn = StringFormat("0x%.8X", $addr + ((@extended - StringLen($pattern) - 2) / 2)) | |
4424 | Return $retn | |
4425 | Else | |
4426 | Return - 3 | |
4427 | EndIf | |
4428 | EndFunc | |
4429 | ||
4430 | Func file_read($hfile, $address, $length) | |
4431 | FileSetPos($hfile, $address, 0) | |
4432 | $ret = FileRead($hfile, $length) | |
4433 | FileSetPos($hfile, 0, 0) | |
4434 | Return $ret | |
4435 | EndFunc | |
4436 | ||
4437 | Func file_write($hfile, $address, $bytes) | |
4438 | FileSetPos($hfile, $address, 0) | |
4439 | $ret = FileWrite($hfile, $bytes) | |
4440 | FileSetPos($hfile, 0, 0) | |
4441 | Return $ret | |
4442 | EndFunc | |
4443 | ||
4444 | Func _memoryscanex($ah_handle, $pattern, $mask, $after = False, $iv_addrstart = 4194304, $iv_addrend = 16777215, $step = 51200) | |
4445 | If NOT IsArray($ah_handle) Then | |
4446 | SetError(1) | |
4447 | Return - 1 | |
4448 | EndIf | |
4449 | $pattern = StringRegExpReplace($pattern, "[^0123456789ABCDEFabcdef.]", "") | |
4450 | If StringLen($pattern) = 0 Then | |
4451 | SetError(2) | |
4452 | Return - 2 | |
4453 | EndIf | |
4454 | If StringLen($pattern) / 2 <> StringLen($mask) Then | |
4455 | SetError(4) | |
4456 | Return - 4 | |
4457 | EndIf | |
4458 | Local $formatedpattern = "" | |
4459 | Local $bufferpattern | |
4460 | Local $buffermask | |
4461 | For $i = 0 To StringLen($mask) - 1 | |
4462 | $bufferpattern = StringLeft($pattern, 2) | |
4463 | $pattern = StringRight($pattern, StringLen($pattern) - 2) | |
4464 | $buffermask = StringLeft($mask, 1) | |
4465 | $mask = StringRight($mask, StringLen($mask) - 1) | |
4466 | If $buffermask = "?" Then $bufferpattern = ".." | |
4467 | $formatedpattern = $formatedpattern & $bufferpattern | |
4468 | Next | |
4469 | $pattern = $formatedpattern | |
4470 | For $addr = $iv_addrstart To $iv_addrend Step $step-(StringLen($pattern) / 2 ) | |
4471 | StringRegExp(_memoryread($addr, $ah_handle, "byte[" & $step & "]"), $pattern, 1, 2) | |
4472 | If NOT @error Then | |
4473 | If $after Then | |
4474 | Return StringFormat("0x%.8X", $addr + ((@extended - 2) / 2)) | |
4475 | Else | |
4476 | Return StringFormat("0x%.8X", $addr + ((@extended - StringLen($pattern) - 2) / 2)) | |
4477 | EndIf | |
4478 | EndIf | |
4479 | Next | |
4480 | Return - 3 | |
4481 | EndFunc | |
4482 | ||
4483 | Global Const $es_left = 0 | |
4484 | Global Const $es_center = 1 | |
4485 | Global Const $es_right = 2 | |
4486 | Global Const $es_multiline = 4 | |
4487 | Global Const $es_uppercase = 8 | |
4488 | Global Const $es_lowercase = 16 | |
4489 | Global Const $es_password = 32 | |
4490 | Global Const $es_autovscroll = 64 | |
4491 | Global Const $es_autohscroll = 128 | |
4492 | Global Const $es_nohidesel = 256 | |
4493 | Global Const $es_oemconvert = 1024 | |
4494 | Global Const $es_readonly = 2048 | |
4495 | Global Const $es_wantreturn = 4096 | |
4496 | Global Const $es_number = 8192 | |
4497 | Global Const $ec_err = -1 | |
4498 | Global Const $ecm_first = 5376 | |
4499 | Global Const $em_canundo = 198 | |
4500 | Global Const $em_charfrompos = 215 | |
4501 | Global Const $em_emptyundobuffer = 205 | |
4502 | Global Const $em_fmtlines = 200 | |
4503 | Global Const $em_getcuebanner = ($ecm_first + 2) | |
4504 | Global Const $em_getfirstvisibleline = 206 | |
4505 | Global Const $em_gethandle = 189 | |
4506 | Global Const $em_getimestatus = 217 | |
4507 | Global Const $em_getlimittext = 213 | |
4508 | Global Const $em_getline = 196 | |
4509 | Global Const $em_getlinecount = 186 | |
4510 | Global Const $em_getmargins = 212 | |
4511 | Global Const $em_getmodify = 184 | |
4512 | Global Const $em_getpasswordchar = 210 | |
4513 | Global Const $em_getrect = 178 | |
4514 | Global Const $em_getsel = 176 | |
4515 | Global Const $em_getthumb = 190 | |
4516 | Global Const $em_getwordbreakproc = 209 | |
4517 | Global Const $em_hideballoontip = ($ecm_first + 4) | |
4518 | Global Const $em_limittext = 197 | |
4519 | Global Const $em_linefromchar = 201 | |
4520 | Global Const $em_lineindex = 187 | |
4521 | Global Const $em_linelength = 193 | |
4522 | Global Const $em_linescroll = 182 | |
4523 | Global Const $em_posfromchar = 214 | |
4524 | Global Const $em_replacesel = 194 | |
4525 | Global Const $em_scroll = 181 | |
4526 | Global Const $em_scrollcaret = 183 | |
4527 | Global Const $em_setcuebanner = ($ecm_first + 1) | |
4528 | Global Const $em_sethandle = 188 | |
4529 | Global Const $em_setimestatus = 216 | |
4530 | Global Const $em_setlimittext = $em_limittext | |
4531 | Global Const $em_setmargins = 211 | |
4532 | Global Const $em_setmodify = 185 | |
4533 | Global Const $em_setpasswordchar = 204 | |
4534 | Global Const $em_setreadonly = 207 | |
4535 | Global Const $em_setrect = 179 | |
4536 | Global Const $em_setrectnp = 180 | |
4537 | Global Const $em_setsel = 177 | |
4538 | Global Const $em_settabstops = 203 | |
4539 | Global Const $em_setwordbreakproc = 208 | |
4540 | Global Const $em_showballoontip = ($ecm_first + 3) | |
4541 | Global Const $em_undo = 199 | |
4542 | Global Const $ec_leftmargin = 1 | |
4543 | Global Const $ec_rightmargin = 2 | |
4544 | Global Const $ec_usefontinfo = 65535 | |
4545 | Global Const $emsis_compositionstring = 1 | |
4546 | Global Const $eimes_getcompstratonce = 1 | |
4547 | Global Const $eimes_cancelcompstrinfocus = 2 | |
4548 | Global Const $eimes_completecompstrkillfocus = 4 | |
4549 | Global Const $en_align_ltr_ec = 1792 | |
4550 | Global Const $en_align_rtl_ec = 1793 | |
4551 | Global Const $en_change = 768 | |
4552 | Global Const $en_errspace = 1280 | |
4553 | Global Const $en_hscroll = 1537 | |
4554 | Global Const $en_killfocus = 512 | |
4555 | Global Const $en_maxtext = 1281 | |
4556 | Global Const $en_setfocus = 256 | |
4557 | Global Const $en_update = 1024 | |
4558 | Global Const $en_vscroll = 1538 | |
4559 | Global Const $tti_none = 0 | |
4560 | Global Const $tti_info = 1 | |
4561 | Global Const $tti_warning = 2 | |
4562 | Global Const $tti_error = 3 | |
4563 | Global Const $tti_info_large = 4 | |
4564 | Global Const $tti_warning_large = 5 | |
4565 | Global Const $tti_error_large = 6 | |
4566 | Global Const $__editconstant_ws_vscroll = 2097152 | |
4567 | Global Const $__editconstant_ws_hscroll = 1048576 | |
4568 | Global Const $gui_ss_default_edit = BitOR($es_wantreturn, $__editconstant_ws_vscroll, $__editconstant_ws_hscroll, $es_autovscroll, $es_autohscroll) | |
4569 | Global Const $gui_ss_default_input = BitOR($es_left, $es_autohscroll) | |
4570 | Global Const $sbars_sizegrip = 256 | |
4571 | Global Const $sbt_tooltips = 2048 | |
4572 | Global Const $sbars_tooltips = 2048 | |
4573 | Global Const $sbt_sunken = 0 | |
4574 | Global Const $sbt_noborders = 256 | |
4575 | Global Const $sbt_popout = 512 | |
4576 | Global Const $sbt_rtlreading = 1024 | |
4577 | Global Const $sbt_notabparsing = 2048 | |
4578 | Global Const $sbt_ownerdraw = 4096 | |
4579 | Global Const $__statusbarconstant_wm_user = 1024 | |
4580 | Global Const $sb_getborders = ($__statusbarconstant_wm_user + 7) | |
4581 | Global Const $sb_geticon = ($__statusbarconstant_wm_user + 20) | |
4582 | Global Const $sb_getparts = ($__statusbarconstant_wm_user + 6) | |
4583 | Global Const $sb_getrect = ($__statusbarconstant_wm_user + 10) | |
4584 | Global Const $sb_gettexta = ($__statusbarconstant_wm_user + 2) | |
4585 | Global Const $sb_gettextw = ($__statusbarconstant_wm_user + 13) | |
4586 | Global Const $sb_gettext = $sb_gettexta | |
4587 | Global Const $sb_gettextlengtha = ($__statusbarconstant_wm_user + 3) | |
4588 | Global Const $sb_gettextlengthw = ($__statusbarconstant_wm_user + 12) | |
4589 | Global Const $sb_gettextlength = $sb_gettextlengtha | |
4590 | Global Const $sb_gettiptexta = ($__statusbarconstant_wm_user + 18) | |
4591 | Global Const $sb_gettiptextw = ($__statusbarconstant_wm_user + 19) | |
4592 | Global Const $sb_getunicodeformat = 8192 + 6 | |
4593 | Global Const $sb_issimple = ($__statusbarconstant_wm_user + 14) | |
4594 | Global Const $sb_setbkcolor = 8192 + 1 | |
4595 | Global Const $sb_seticon = ($__statusbarconstant_wm_user + 15) | |
4596 | Global Const $sb_setminheight = ($__statusbarconstant_wm_user + 8) | |
4597 | Global Const $sb_setparts = ($__statusbarconstant_wm_user + 4) | |
4598 | Global Const $sb_settexta = ($__statusbarconstant_wm_user + 1) | |
4599 | Global Const $sb_settextw = ($__statusbarconstant_wm_user + 11) | |
4600 | Global Const $sb_settext = $sb_settexta | |
4601 | Global Const $sb_settiptexta = ($__statusbarconstant_wm_user + 16) | |
4602 | Global Const $sb_settiptextw = ($__statusbarconstant_wm_user + 17) | |
4603 | Global Const $sb_setunicodeformat = 8192 + 5 | |
4604 | Global Const $sb_simple = ($__statusbarconstant_wm_user + 9) | |
4605 | Global Const $sb_simpleid = 255 | |
4606 | Global Const $sbn_first = -880 | |
4607 | Global Const $sbn_simplemodechange = $sbn_first - 0 | |
4608 | Global Const $gmem_fixed = 0 | |
4609 | Global Const $gmem_moveable = 2 | |
4610 | Global Const $gmem_nocompact = 16 | |
4611 | Global Const $gmem_nodiscard = 32 | |
4612 | Global Const $gmem_zeroinit = 64 | |
4613 | Global Const $gmem_modify = 128 | |
4614 | Global Const $gmem_discardable = 256 | |
4615 | Global Const $gmem_not_banked = 4096 | |
4616 | Global Const $gmem_share = 8192 | |
4617 | Global Const $gmem_ddeshare = 8192 | |
4618 | Global Const $gmem_notify = 16384 | |
4619 | Global Const $gmem_lower = 4096 | |
4620 | Global Const $gmem_valid_flags = 32626 | |
4621 | Global Const $gmem_invalid_handle = 32768 | |
4622 | Global Const $gptr = $gmem_fixed + $gmem_zeroinit | |
4623 | Global Const $ghnd = $gmem_moveable + $gmem_zeroinit | |
4624 | Global Const $mem_commit = 4096 | |
4625 | Global Const $mem_reserve = 8192 | |
4626 | Global Const $mem_top_down = 1048576 | |
4627 | Global Const $mem_shared = 134217728 | |
4628 | Global Const $page_noaccess = 1 | |
4629 | Global Const $page_readonly = 2 | |
4630 | Global Const $page_readwrite = 4 | |
4631 | Global Const $page_execute = 16 | |
4632 | Global Const $page_execute_read = 32 | |
4633 | Global Const $page_execute_readwrite = 64 | |
4634 | Global Const $page_guard = 256 | |
4635 | Global Const $page_nocache = 512 | |
4636 | Global Const $mem_decommit = 16384 | |
4637 | Global Const $mem_release = 32768 | |
4638 | Global Const $tagmemmap = "handle hProc;ulong_ptr Size;ptr Mem" | |
4639 | ||
4640 | Func _memfree(ByRef $tmemmap) | |
4641 | Local $pmemory = DllStructGetData($tmemmap, "Mem") | |
4642 | Local $hprocess = DllStructGetData($tmemmap, "hProc") | |
4643 | Local $bresult = _memvirtualfreeex($hprocess, $pmemory, 0, $mem_release) | |
4644 | DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $hprocess) | |
4645 | If @error Then Return SetError(@error, @extended, False) | |
4646 | Return $bresult | |
4647 | EndFunc | |
4648 | ||
4649 | Func _memglobalalloc($ibytes, $iflags = 0) | |
4650 | Local $aresult = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", $iflags, "ulong_ptr", $ibytes) | |
4651 | If @error Then Return SetError(@error, @extended, 0) | |
4652 | Return $aresult[0] | |
4653 | EndFunc | |
4654 | ||
4655 | Func _memglobalfree($hmem) | |
4656 | Local $aresult = DllCall("kernel32.dll", "ptr", "GlobalFree", "handle", $hmem) | |
4657 | If @error Then Return SetError(@error, @extended, False) | |
4658 | Return $aresult[0] | |
4659 | EndFunc | |
4660 | ||
4661 | Func _memgloballock($hmem) | |
4662 | Local $aresult = DllCall("kernel32.dll", "ptr", "GlobalLock", "handle", $hmem) | |
4663 | If @error Then Return SetError(@error, @extended, 0) | |
4664 | Return $aresult[0] | |
4665 | EndFunc | |
4666 | ||
4667 | Func _memglobalsize($hmem) | |
4668 | Local $aresult = DllCall("kernel32.dll", "ulong_ptr", "GlobalSize", "handle", $hmem) | |
4669 | If @error Then Return SetError(@error, @extended, 0) | |
4670 | Return $aresult[0] | |
4671 | EndFunc | |
4672 | ||
4673 | Func _memglobalunlock($hmem) | |
4674 | Local $aresult = DllCall("kernel32.dll", "bool", "GlobalUnlock", "handle", $hmem) | |
4675 | If @error Then Return SetError(@error, @extended, 0) | |
4676 | Return $aresult[0] | |
4677 | EndFunc | |
4678 | ||
4679 | Func _meminit($hwnd, $isize, ByRef $tmemmap) | |
4680 | Local $aresult = DllCall("User32.dll", "dword", "GetWindowThreadProcessId", "hwnd", $hwnd, "dword*", 0) | |
4681 | If @error Then Return SetError(@error, @extended, 0) | |
4682 | Local $iprocessid = $aresult[2] | |
4683 | If $iprocessid = 0 Then Return SetError(1, 0, 0) | |
4684 | Local $iaccess = BitOR($process_vm_operation, $process_vm_read, $process_vm_write) | |
4685 | Local $hprocess = __mem_openprocess($iaccess, False, $iprocessid, True) | |
4686 | Local $ialloc = BitOR($mem_reserve, $mem_commit) | |
4687 | Local $pmemory = _memvirtualallocex($hprocess, 0, $isize, $ialloc, $page_readwrite) | |
4688 | If $pmemory = 0 Then Return SetError(2, 0, 0) | |
4689 | $tmemmap = DllStructCreate($tagmemmap) | |
4690 | DllStructSetData($tmemmap, "hProc", $hprocess) | |
4691 | DllStructSetData($tmemmap, "Size", $isize) | |
4692 | DllStructSetData($tmemmap, "Mem", $pmemory) | |
4693 | Return $pmemory | |
4694 | EndFunc | |
4695 | ||
4696 | Func _memmovememory($psource, $pdest, $ilength) | |
4697 | DllCall("kernel32.dll", "none", "RtlMoveMemory", "ptr", $pdest, "ptr", $psource, "ulong_ptr", $ilength) | |
4698 | If @error Then Return SetError(@error, @extended) | |
4699 | EndFunc | |
4700 | ||
4701 | Func _memread(ByRef $tmemmap, $psrce, $pdest, $isize) | |
4702 | Local $aresult = DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", DllStructGetData($tmemmap, "hProc"), "ptr", $psrce, "ptr", $pdest, "ulong_ptr", $isize, "ulong_ptr*", 0) | |
4703 | If @error Then Return SetError(@error, @extended, False) | |
4704 | Return $aresult[0] | |
4705 | EndFunc | |
4706 | ||
4707 | Func _memwrite(ByRef $tmemmap, $psrce, $pdest = 0, $isize = 0, $ssrce = "ptr") | |
4708 | If $pdest = 0 Then $pdest = DllStructGetData($tmemmap, "Mem") | |
4709 | If $isize = 0 Then $isize = DllStructGetData($tmemmap, "Size") | |
4710 | Local $aresult = DllCall("kernel32.dll", "bool", "WriteProcessMemory", "handle", DllStructGetData($tmemmap, "hProc"), "ptr", $pdest, $ssrce, $psrce, "ulong_ptr", $isize, "ulong_ptr*", 0) | |
4711 | If @error Then Return SetError(@error, @extended, False) | |
4712 | Return $aresult[0] | |
4713 | EndFunc | |
4714 | ||
4715 | Func _memvirtualalloc($paddress, $isize, $iallocation, $iprotect) | |
4716 | Local $aresult = DllCall("kernel32.dll", "ptr", "VirtualAlloc", "ptr", $paddress, "ulong_ptr", $isize, "dword", $iallocation, "dword", $iprotect) | |
4717 | If @error Then Return SetError(@error, @extended, 0) | |
4718 | Return $aresult[0] | |
4719 | EndFunc | |
4720 | ||
4721 | Func _memvirtualallocex($hprocess, $paddress, $isize, $iallocation, $iprotect) | |
4722 | Local $aresult = DllCall("kernel32.dll", "ptr", "VirtualAllocEx", "handle", $hprocess, "ptr", $paddress, "ulong_ptr", $isize, "dword", $iallocation, "dword", $iprotect) | |
4723 | If @error Then Return SetError(@error, @extended, 0) | |
4724 | Return $aresult[0] | |
4725 | EndFunc | |
4726 | ||
4727 | Func _memvirtualfree($paddress, $isize, $ifreetype) | |
4728 | Local $aresult = DllCall("kernel32.dll", "bool", "VirtualFree", "ptr", $paddress, "ulong_ptr", $isize, "dword", $ifreetype) | |
4729 | If @error Then Return SetError(@error, @extended, False) | |
4730 | Return $aresult[0] | |
4731 | EndFunc | |
4732 | ||
4733 | Func _memvirtualfreeex($hprocess, $paddress, $isize, $ifreetype) | |
4734 | Local $aresult = DllCall("kernel32.dll", "bool", "VirtualFreeEx", "handle", $hprocess, "ptr", $paddress, "ulong_ptr", $isize, "dword", $ifreetype) | |
4735 | If @error Then Return SetError(@error, @extended, False) | |
4736 | Return $aresult[0] | |
4737 | EndFunc | |
4738 | ||
4739 | Func __mem_openprocess($iaccess, $finherit, $iprocessid, $fdebugpriv = False) | |
4740 | Local $aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid) | |
4741 | If @error Then Return SetError(@error, @extended, 0) | |
4742 | If $aresult[0] Then Return $aresult[0] | |
4743 | If NOT $fdebugpriv Then Return 0 | |
4744 | Local $htoken = _security__openthreadtokenex(BitOR($token_adjust_privileges, $token_query)) | |
4745 | If @error Then Return SetError(@error, @extended, 0) | |
4746 | _security__setprivilege($htoken, "SeDebugPrivilege", True) | |
4747 | Local $ierror = @error | |
4748 | Local $ilasterror = @extended | |
4749 | Local $iret = 0 | |
4750 | If NOT @error Then | |
4751 | $aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid) | |
4752 | $ierror = @error | |
4753 | $ilasterror = @extended | |
4754 | If $aresult[0] Then $iret = $aresult[0] | |
4755 | _security__setprivilege($htoken, "SeDebugPrivilege", False) | |
4756 | If @error Then | |
4757 | $ierror = @error | |
4758 | $ilasterror = @extended | |
4759 | EndIf | |
4760 | EndIf | |
4761 | DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $htoken) | |
4762 | Return SetError($ierror, $ilasterror, $iret) | |
4763 | EndFunc | |
4764 | ||
4765 | Global Const $_udf_globalids_offset = 2 | |
4766 | Global Const $_udf_globalid_max_win = 16 | |
4767 | Global Const $_udf_startid = 10000 | |
4768 | Global Const $_udf_globalid_max_ids = 55535 | |
4769 | Global Const $__udfguiconstant_ws_visible = 268435456 | |
4770 | Global Const $__udfguiconstant_ws_child = 1073741824 | |
4771 | Global $_udf_globalids_used[$_udf_globalid_max_win][$_udf_globalid_max_ids + $_udf_globalids_offset + 1] | |
4772 | ||
4773 | Func __udf_getnextglobalid($hwnd) | |
4774 | Local $nctrlid, $iusedindex = -1, $fallused = True | |
4775 | If NOT WinExists($hwnd) Then Return SetError(-1, -1, 0) | |
4776 | For $iindex = 0 To $_udf_globalid_max_win - 1 | |
4777 | If $_udf_globalids_used[$iindex][0] <> 0 Then | |
4778 | If NOT WinExists($_udf_globalids_used[$iindex][0]) Then | |
4779 | For $x = 0 To UBound($_udf_globalids_used, 2) - 1 | |
4780 | $_udf_globalids_used[$iindex][$x] = 0 | |
4781 | Next | |
4782 | $_udf_globalids_used[$iindex][1] = $_udf_startid | |
4783 | $fallused = False | |
4784 | EndIf | |
4785 | EndIf | |
4786 | Next | |
4787 | For $iindex = 0 To $_udf_globalid_max_win - 1 | |
4788 | If $_udf_globalids_used[$iindex][0] = $hwnd Then | |
4789 | $iusedindex = $iindex | |
4790 | ExitLoop | |
4791 | EndIf | |
4792 | Next | |
4793 | If $iusedindex = -1 Then | |
4794 | For $iindex = 0 To $_udf_globalid_max_win - 1 | |
4795 | If $_udf_globalids_used[$iindex][0] = 0 Then | |
4796 | $_udf_globalids_used[$iindex][0] = $hwnd | |
4797 | $_udf_globalids_used[$iindex][1] = $_udf_startid | |
4798 | $fallused = False | |
4799 | $iusedindex = $iindex | |
4800 | ExitLoop | |
4801 | EndIf | |
4802 | Next | |
4803 | EndIf | |
4804 | If $iusedindex = -1 AND $fallused Then Return SetError(16, 0, 0) | |
4805 | If $_udf_globalids_used[$iusedindex][1] = $_udf_startid + $_udf_globalid_max_ids Then | |
4806 | For $iidindex = $_udf_globalids_offset To UBound($_udf_globalids_used, 2) - 1 | |
4807 | If $_udf_globalids_used[$iusedindex][$iidindex] = 0 Then | |
4808 | $nctrlid = ($iidindex - $_udf_globalids_offset) + 10000 | |
4809 | $_udf_globalids_used[$iusedindex][$iidindex] = $nctrlid | |
4810 | Return $nctrlid | |
4811 | EndIf | |
4812 | Next | |
4813 | Return SetError(-1, $_udf_globalid_max_ids, 0) | |
4814 | EndIf | |
4815 | $nctrlid = $_udf_globalids_used[$iusedindex][1] | |
4816 | $_udf_globalids_used[$iusedindex][1] += 1 | |
4817 | $_udf_globalids_used[$iusedindex][($nctrlid - 10000) + $_udf_globalids_offset] = $nctrlid | |
4818 | Return $nctrlid | |
4819 | EndFunc | |
4820 | ||
4821 | Func __udf_freeglobalid($hwnd, $iglobalid) | |
4822 | If $iglobalid - $_udf_startid < 0 OR $iglobalid - $_udf_startid > $_udf_globalid_max_ids Then Return SetError(-1, 0, False) | |
4823 | For $iindex = 0 To $_udf_globalid_max_win - 1 | |
4824 | If $_udf_globalids_used[$iindex][0] = $hwnd Then | |
4825 | For $x = $_udf_globalids_offset To UBound($_udf_globalids_used, 2) - 1 | |
4826 | If $_udf_globalids_used[$iindex][$x] = $iglobalid Then | |
4827 | $_udf_globalids_used[$iindex][$x] = 0 | |
4828 | Return True | |
4829 | EndIf | |
4830 | Next | |
4831 | Return SetError(-3, 0, False) | |
4832 | EndIf | |
4833 | Next | |
4834 | Return SetError(-2, 0, False) | |
4835 | EndFunc | |
4836 | ||
4837 | Func __udf_debugprint($stext, $iline = @ScriptLineNumber, $err = @error, $ext = @extended) | |
4838 | ConsoleWrite("!===========================================================" & @CRLF & "+======================================================" & @CRLF & "-->Line(" & StringFormat("%04d", $iline) & "):" & @TAB & $stext & @CRLF & "+======================================================" & @CRLF) | |
4839 | Return SetError($err, $ext, 1) | |
4840 | EndFunc | |
4841 | ||
4842 | Func __udf_validateclassname($hwnd, $sclassnames) | |
4843 | __udf_debugprint("This is for debugging only, set the debug variable to false before submitting") | |
4844 | If _winapi_isclassname($hwnd, $sclassnames) Then Return True | |
4845 | Local $sseparator = Opt("GUIDataSeparatorChar") | |
4846 | $sclassnames = StringReplace($sclassnames, $sseparator, ",") | |
4847 | __udf_debugprint("Invalid Class Type(s):" & @LF & @TAB & "Expecting Type(s): " & $sclassnames & @LF & @TAB & "Received Type : " & _winapi_getclassname($hwnd)) | |
4848 | Exit | |
4849 | EndFunc | |
4850 | ||
4851 | Global $__ghsblastwnd | |
4852 | Global $debug_sb = False | |
4853 | Global Const $__statusbarconstant_classname = "msctls_statusbar32" | |
4854 | Global Const $__statusbarconstant_wm_size = 5 | |
4855 | Global Const $__statusbarconstant_clr_default = -16777216 | |
4856 | Global Const $tagborders = "int BX;int BY;int RX" | |
4857 | ||
4858 | Func _guictrlstatusbar_create($hwnd, $vpartedge = -1, $vparttext = "", $istyles = -1, $iexstyles = -1) | |
4859 | If NOT IsHWnd($hwnd) Then Return SetError(1, 0, 0) | |
4860 | Local $istyle = BitOR($__udfguiconstant_ws_child, $__udfguiconstant_ws_visible) | |
4861 | If $istyles = -1 Then $istyles = 0 | |
4862 | If $iexstyles = -1 Then $iexstyles = 0 | |
4863 | Local $apartwidth[1], $aparttext[1] | |
4864 | If @NumParams > 1 Then | |
4865 | If IsArray($vpartedge) Then | |
4866 | $apartwidth = $vpartedge | |
4867 | Else | |
4868 | $apartwidth[0] = $vpartedge | |
4869 | EndIf | |
4870 | If @NumParams = 2 Then | |
4871 | ReDim $aparttext[UBound($apartwidth)] | |
4872 | Else | |
4873 | If IsArray($vparttext) Then | |
4874 | $aparttext = $vparttext | |
4875 | Else | |
4876 | $aparttext[0] = $vparttext | |
4877 | EndIf | |
4878 | If UBound($apartwidth) <> UBound($aparttext) Then | |
4879 | Local $ilast | |
4880 | If UBound($apartwidth) > UBound($aparttext) Then | |
4881 | $ilast = UBound($aparttext) | |
4882 | ReDim $aparttext[UBound($apartwidth)] | |
4883 | For $x = $ilast To UBound($aparttext) - 1 | |
4884 | $apartwidth[$x] = "" | |
4885 | Next | |
4886 | Else | |
4887 | $ilast = UBound($apartwidth) | |
4888 | ReDim $apartwidth[UBound($aparttext)] | |
4889 | For $x = $ilast To UBound($apartwidth) - 1 | |
4890 | $apartwidth[$x] = $apartwidth[$x - 1] + 75 | |
4891 | Next | |
4892 | $apartwidth[UBound($aparttext) - 1] = -1 | |
4893 | EndIf | |
4894 | EndIf | |
4895 | EndIf | |
4896 | If NOT IsHWnd($hwnd) Then $hwnd = HWnd($hwnd) | |
4897 | If @NumParams > 3 Then $istyle = BitOR($istyle, $istyles) | |
4898 | EndIf | |
4899 | Local $nctrlid = __udf_getnextglobalid($hwnd) | |
4900 | If @error Then Return SetError(@error, @extended, 0) | |
4901 | Local $hwndsbar = _winapi_createwindowex($iexstyles, $__statusbarconstant_classname, "", $istyle, 0, 0, 0, 0, $hwnd, $nctrlid) | |
4902 | If @error Then Return SetError(@error, @extended, 0) | |
4903 | If @NumParams > 1 Then | |
4904 | _guictrlstatusbar_setparts($hwndsbar, UBound($apartwidth), $apartwidth) | |
4905 | For $x = 0 To UBound($aparttext) - 1 | |
4906 | _guictrlstatusbar_settext($hwndsbar, $aparttext[$x], $x) | |
4907 | Next | |
4908 | EndIf | |
4909 | Return $hwndsbar | |
4910 | EndFunc | |
4911 | ||
4912 | Func _guictrlstatusbar_destroy(ByRef $hwnd) | |
4913 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
4914 | If NOT _winapi_isclassname($hwnd, $__statusbarconstant_classname) Then Return SetError(2, 2, False) | |
4915 | Local $destroyed = 0 | |
4916 | If IsHWnd($hwnd) Then | |
4917 | If _winapi_inprocess($hwnd, $__ghsblastwnd) Then | |
4918 | Local $nctrlid = _winapi_getdlgctrlid($hwnd) | |
4919 | Local $hparent = _winapi_getparent($hwnd) | |
4920 | $destroyed = _winapi_destroywindow($hwnd) | |
4921 | Local $iret = __udf_freeglobalid($hparent, $nctrlid) | |
4922 | If NOT $iret Then | |
4923 | EndIf | |
4924 | Else | |
4925 | Return SetError(1, 1, False) | |
4926 | EndIf | |
4927 | EndIf | |
4928 | If $destroyed Then $hwnd = 0 | |
4929 | Return $destroyed <> 0 | |
4930 | EndFunc | |
4931 | ||
4932 | Func _guictrlstatusbar_embedcontrol($hwnd, $ipart, $hcontrol, $ifit = 4) | |
4933 | Local $arect = _guictrlstatusbar_getrect($hwnd, $ipart) | |
4934 | Local $ibarx = $arect[0] | |
4935 | Local $ibary = $arect[1] | |
4936 | Local $ibarw = $arect[2] - $ibarx | |
4937 | Local $ibarh = $arect[3] - $ibary | |
4938 | Local $iconx = $ibarx | |
4939 | Local $icony = $ibary | |
4940 | Local $iconw = _winapi_getwindowwidth($hcontrol) | |
4941 | Local $iconh = _winapi_getwindowheight($hcontrol) | |
4942 | If $iconw > $ibarw Then $iconw = $ibarw | |
4943 | If $iconh > $ibarh Then $iconh = $ibarh | |
4944 | Local $ipadx = ($ibarw - $iconw) / 2 | |
4945 | Local $ipady = ($ibarh - $iconh) / 2 | |
4946 | If $ipadx < 0 Then $ipadx = 0 | |
4947 | If $ipady < 0 Then $ipady = 0 | |
4948 | If BitAND($ifit, 1) = 1 Then $iconx = $ibarx + $ipadx | |
4949 | If BitAND($ifit, 2) = 2 Then $icony = $ibary + $ipady | |
4950 | If BitAND($ifit, 4) = 4 Then | |
4951 | $ipadx = _guictrlstatusbar_getbordersrect($hwnd) | |
4952 | $ipady = _guictrlstatusbar_getbordersvert($hwnd) | |
4953 | $iconx = $ibarx | |
4954 | If _guictrlstatusbar_issimple($hwnd) Then $iconx += $ipadx | |
4955 | $icony = $ibary + $ipady | |
4956 | $iconw = $ibarw - ($ipadx * 2) | |
4957 | $iconh = $ibarh - ($ipady * 2) | |
4958 | EndIf | |
4959 | _winapi_setparent($hcontrol, $hwnd) | |
4960 | _winapi_movewindow($hcontrol, $iconx, $icony, $iconw, $iconh) | |
4961 | EndFunc | |
4962 | ||
4963 | Func _guictrlstatusbar_getborders($hwnd) | |
4964 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
4965 | Local $tborders = DllStructCreate($tagborders) | |
4966 | Local $pborders = DllStructGetPtr($tborders) | |
4967 | Local $iret | |
4968 | If _winapi_inprocess($hwnd, $__ghsblastwnd) Then | |
4969 | $iret = _sendmessage($hwnd, $sb_getborders, 0, $pborders, 0, "wparam", "ptr") | |
4970 | Else | |
4971 | Local $isize = DllStructGetSize($tborders) | |
4972 | Local $tmemmap | |
4973 | Local $pmemory = _meminit($hwnd, $isize, $tmemmap) | |
4974 | $iret = _sendmessage($hwnd, $sb_getborders, 0, $pmemory, 0, "wparam", "ptr") | |
4975 | _memread($tmemmap, $pmemory, $pborders, $isize) | |
4976 | _memfree($tmemmap) | |
4977 | EndIf | |
4978 | Local $aborders[3] | |
4979 | If $iret = 0 Then Return SetError(-1, -1, $aborders) | |
4980 | $aborders[0] = DllStructGetData($tborders, "BX") | |
4981 | $aborders[1] = DllStructGetData($tborders, "BY") | |
4982 | $aborders[2] = DllStructGetData($tborders, "RX") | |
4983 | Return $aborders | |
4984 | EndFunc | |
4985 | ||
4986 | Func _guictrlstatusbar_getbordershorz($hwnd) | |
4987 | Local $aborders = _guictrlstatusbar_getborders($hwnd) | |
4988 | Return SetError(@error, @extended, $aborders[0]) | |
4989 | EndFunc | |
4990 | ||
4991 | Func _guictrlstatusbar_getbordersrect($hwnd) | |
4992 | Local $aborders = _guictrlstatusbar_getborders($hwnd) | |
4993 | Return SetError(@error, @extended, $aborders[2]) | |
4994 | EndFunc | |
4995 | ||
4996 | Func _guictrlstatusbar_getbordersvert($hwnd) | |
4997 | Local $aborders = _guictrlstatusbar_getborders($hwnd) | |
4998 | Return SetError(@error, @extended, $aborders[1]) | |
4999 | EndFunc | |
5000 | ||
5001 | Func _guictrlstatusbar_getcount($hwnd) | |
5002 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5003 | Return _sendmessage($hwnd, $sb_getparts) | |
5004 | EndFunc | |
5005 | ||
5006 | Func _guictrlstatusbar_getheight($hwnd) | |
5007 | Local $trect = _guictrlstatusbar_getrectex($hwnd, 0) | |
5008 | Return DllStructGetData($trect, "Bottom") - DllStructGetData($trect, "Top") - (_guictrlstatusbar_getbordersvert($hwnd) * 2) | |
5009 | EndFunc | |
5010 | ||
5011 | Func _guictrlstatusbar_geticon($hwnd, $iindex = 0) | |
5012 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5013 | Return _sendmessage($hwnd, $sb_geticon, $iindex, 0, 0, "wparam", "lparam", "hwnd") | |
5014 | EndFunc | |
5015 | ||
5016 | Func _guictrlstatusbar_getparts($hwnd) | |
5017 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5018 | Local $icount = _guictrlstatusbar_getcount($hwnd) | |
5019 | Local $tparts = DllStructCreate("int[" & $icount & "]") | |
5020 | Local $pparts = DllStructGetPtr($tparts) | |
5021 | Local $aparts[$icount + 1] | |
5022 | If _winapi_inprocess($hwnd, $__ghsblastwnd) Then | |
5023 | $aparts[0] = _sendmessage($hwnd, $sb_getparts, $icount, $pparts, 0, "wparam", "ptr") | |
5024 | Else | |
5025 | Local $iparts = DllStructGetSize($tparts) | |
5026 | Local $tmemmap | |
5027 | Local $pmemory = _meminit($hwnd, $iparts, $tmemmap) | |
5028 | $aparts[0] = _sendmessage($hwnd, $sb_getparts, $icount, $pmemory, 0, "wparam", "ptr") | |
5029 | _memread($tmemmap, $pmemory, $pparts, $iparts) | |
5030 | _memfree($tmemmap) | |
5031 | EndIf | |
5032 | For $ii = 1 To $icount | |
5033 | $aparts[$ii] = DllStructGetData($tparts, 1, $ii) | |
5034 | Next | |
5035 | Return $aparts | |
5036 | EndFunc | |
5037 | ||
5038 | Func _guictrlstatusbar_getrect($hwnd, $ipart) | |
5039 | Local $trect = _guictrlstatusbar_getrectex($hwnd, $ipart) | |
5040 | If @error Then Return SetError(@error, 0, 0) | |
5041 | Local $arect[4] | |
5042 | $arect[0] = DllStructGetData($trect, "Left") | |
5043 | $arect[1] = DllStructGetData($trect, "Top") | |
5044 | $arect[2] = DllStructGetData($trect, "Right") | |
5045 | $arect[3] = DllStructGetData($trect, "Bottom") | |
5046 | Return $arect | |
5047 | EndFunc | |
5048 | ||
5049 | Func _guictrlstatusbar_getrectex($hwnd, $ipart) | |
5050 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5051 | Local $trect = DllStructCreate($tagrect) | |
5052 | Local $prect = DllStructGetPtr($trect) | |
5053 | Local $iret | |
5054 | If _winapi_inprocess($hwnd, $__ghsblastwnd) Then | |
5055 | $iret = _sendmessage($hwnd, $sb_getrect, $ipart, $prect, 0, "wparam", "ptr") | |
5056 | Else | |
5057 | Local $irect = DllStructGetSize($trect) | |
5058 | Local $tmemmap | |
5059 | Local $pmemory = _meminit($hwnd, $irect, $tmemmap) | |
5060 | $iret = _sendmessage($hwnd, $sb_getrect, $ipart, $pmemory, 0, "wparam", "ptr") | |
5061 | _memread($tmemmap, $pmemory, $prect, $irect) | |
5062 | _memfree($tmemmap) | |
5063 | EndIf | |
5064 | Return SetError($iret = 0, 0, $trect) | |
5065 | EndFunc | |
5066 | ||
5067 | Func _guictrlstatusbar_gettext($hwnd, $ipart) | |
5068 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5069 | Local $funicode = _guictrlstatusbar_getunicodeformat($hwnd) | |
5070 | Local $ibuffer = _guictrlstatusbar_gettextlength($hwnd, $ipart) | |
5071 | If $ibuffer = 0 Then Return SetError(1, 0, "") | |
5072 | Local $tbuffer | |
5073 | If $funicode Then | |
5074 | $tbuffer = DllStructCreate("wchar Text[" & $ibuffer & "]") | |
5075 | $ibuffer *= 2 | |
5076 | Else | |
5077 | $tbuffer = DllStructCreate("char Text[" & $ibuffer & "]") | |
5078 | EndIf | |
5079 | Local $pbuffer = DllStructGetPtr($tbuffer) | |
5080 | If _winapi_inprocess($hwnd, $__ghsblastwnd) Then | |
5081 | _sendmessage($hwnd, $sb_gettextw, $ipart, $pbuffer, 0, "wparam", "ptr") | |
5082 | Else | |
5083 | Local $tmemmap | |
5084 | Local $pmemory = _meminit($hwnd, $ibuffer, $tmemmap) | |
5085 | If $funicode Then | |
5086 | _sendmessage($hwnd, $sb_gettextw, $ipart, $pmemory, 0, "wparam", "ptr") | |
5087 | Else | |
5088 | _sendmessage($hwnd, $sb_gettext, $ipart, $pmemory, 0, "wparam", "ptr") | |
5089 | EndIf | |
5090 | _memread($tmemmap, $pmemory, $pbuffer, $ibuffer) | |
5091 | _memfree($tmemmap) | |
5092 | EndIf | |
5093 | Return DllStructGetData($tbuffer, "Text") | |
5094 | EndFunc | |
5095 | ||
5096 | Func _guictrlstatusbar_gettextflags($hwnd, $ipart) | |
5097 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5098 | If _guictrlstatusbar_getunicodeformat($hwnd) Then | |
5099 | Return _sendmessage($hwnd, $sb_gettextlengthw, $ipart) | |
5100 | Else | |
5101 | Return _sendmessage($hwnd, $sb_gettextlength, $ipart) | |
5102 | EndIf | |
5103 | EndFunc | |
5104 | ||
5105 | Func _guictrlstatusbar_gettextlength($hwnd, $ipart) | |
5106 | Return _winapi_loword(_guictrlstatusbar_gettextflags($hwnd, $ipart)) | |
5107 | EndFunc | |
5108 | ||
5109 | Func _guictrlstatusbar_gettextlengthex($hwnd, $ipart) | |
5110 | Return _winapi_hiword(_guictrlstatusbar_gettextflags($hwnd, $ipart)) | |
5111 | EndFunc | |
5112 | ||
5113 | Func _guictrlstatusbar_gettiptext($hwnd, $ipart) | |
5114 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5115 | Local $funicode = _guictrlstatusbar_getunicodeformat($hwnd) | |
5116 | Local $tbuffer | |
5117 | If $funicode Then | |
5118 | $tbuffer = DllStructCreate("wchar Text[4096]") | |
5119 | Else | |
5120 | $tbuffer = DllStructCreate("char Text[4096]") | |
5121 | EndIf | |
5122 | Local $pbuffer = DllStructGetPtr($tbuffer) | |
5123 | If _winapi_inprocess($hwnd, $__ghsblastwnd) Then | |
5124 | _sendmessage($hwnd, $sb_gettiptextw, _winapi_makelong($ipart, 4096), $pbuffer, 0, "wparam", "ptr") | |
5125 | Else | |
5126 | Local $tmemmap | |
5127 | Local $pmemory = _meminit($hwnd, 4096, $tmemmap) | |
5128 | If $funicode Then | |
5129 | _sendmessage($hwnd, $sb_gettiptextw, _winapi_makelong($ipart, 4096), $pmemory, 0, "wparam", "ptr") | |
5130 | Else | |
5131 | _sendmessage($hwnd, $sb_gettiptexta, _winapi_makelong($ipart, 4096), $pmemory, 0, "wparam", "ptr") | |
5132 | EndIf | |
5133 | _memread($tmemmap, $pmemory, $pbuffer, 4096) | |
5134 | _memfree($tmemmap) | |
5135 | EndIf | |
5136 | Return DllStructGetData($tbuffer, "Text") | |
5137 | EndFunc | |
5138 | ||
5139 | Func _guictrlstatusbar_getunicodeformat($hwnd) | |
5140 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5141 | Return _sendmessage($hwnd, $sb_getunicodeformat) <> 0 | |
5142 | EndFunc | |
5143 | ||
5144 | Func _guictrlstatusbar_getwidth($hwnd, $ipart) | |
5145 | Local $trect = _guictrlstatusbar_getrectex($hwnd, $ipart) | |
5146 | Return DllStructGetData($trect, "Right") - DllStructGetData($trect, "Left") - (_guictrlstatusbar_getbordershorz($hwnd) * 2) | |
5147 | EndFunc | |
5148 | ||
5149 | Func _guictrlstatusbar_issimple($hwnd) | |
5150 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5151 | Return _sendmessage($hwnd, $sb_issimple) <> 0 | |
5152 | EndFunc | |
5153 | ||
5154 | Func _guictrlstatusbar_resize($hwnd) | |
5155 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5156 | _sendmessage($hwnd, $__statusbarconstant_wm_size) | |
5157 | EndFunc | |
5158 | ||
5159 | Func _guictrlstatusbar_setbkcolor($hwnd, $icolor) | |
5160 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5161 | $icolor = _sendmessage($hwnd, $sb_setbkcolor, 0, $icolor) | |
5162 | If $icolor = $__statusbarconstant_clr_default Then Return "0x" & Hex($__statusbarconstant_clr_default) | |
5163 | Return $icolor | |
5164 | EndFunc | |
5165 | ||
5166 | Func _guictrlstatusbar_seticon($hwnd, $ipart, $hicon = -1, $siconfile = "") | |
5167 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5168 | If $hicon = -1 Then Return _sendmessage($hwnd, $sb_seticon, $ipart, $hicon, 0, "wparam", "handle") <> 0 | |
5169 | If StringLen($siconfile) <= 0 Then Return _sendmessage($hwnd, $sb_seticon, $ipart, $hicon) <> 0 | |
5170 | Local $ticon = DllStructCreate("handle") | |
5171 | Local $vresult = DllCall("shell32.dll", "uint", "ExtractIconExW", "wstr", $siconfile, "int", $hicon, "ptr", 0, "ptr", DllStructGetPtr($ticon), "uint", 1) | |
5172 | If @error Then Return SetError(@error, @extended, False) | |
5173 | $vresult = $vresult[0] | |
5174 | If $vresult > 0 Then $vresult = _sendmessage($hwnd, $sb_seticon, $ipart, DllStructGetData($ticon, 1), 0, "wparam", "handle") | |
5175 | DllCall("user32.dll", "bool", "DestroyIcon", "handle", DllStructGetData($ticon, 1)) | |
5176 | Return $vresult | |
5177 | EndFunc | |
5178 | ||
5179 | Func _guictrlstatusbar_setminheight($hwnd, $iminheight) | |
5180 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5181 | _sendmessage($hwnd, $sb_setminheight, $iminheight) | |
5182 | _guictrlstatusbar_resize($hwnd) | |
5183 | EndFunc | |
5184 | ||
5185 | Func _guictrlstatusbar_setparts($hwnd, $iaparts = -1, $iapartwidth = 25) | |
5186 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5187 | Local $tparts, $iparts = 1 | |
5188 | If IsArray($iaparts) <> 0 Then | |
5189 | $iaparts[UBound($iaparts) - 1] = -1 | |
5190 | $iparts = UBound($iaparts) | |
5191 | $tparts = DllStructCreate("int[" & $iparts & "]") | |
5192 | For $x = 0 To $iparts - 2 | |
5193 | DllStructSetData($tparts, 1, $iaparts[$x], $x + 1) | |
5194 | Next | |
5195 | DllStructSetData($tparts, 1, -1, $iparts) | |
5196 | ElseIf IsArray($iapartwidth) <> 0 Then | |
5197 | $iparts = UBound($iapartwidth) | |
5198 | $tparts = DllStructCreate("int[" & $iparts & "]") | |
5199 | For $x = 0 To $iparts - 2 | |
5200 | DllStructSetData($tparts, 1, $iapartwidth[$x], $x + 1) | |
5201 | Next | |
5202 | DllStructSetData($tparts, 1, -1, $iparts) | |
5203 | ElseIf $iaparts > 1 Then | |
5204 | $iparts = $iaparts | |
5205 | $tparts = DllStructCreate("int[" & $iparts & "]") | |
5206 | For $x = 1 To $iparts - 1 | |
5207 | DllStructSetData($tparts, 1, $iapartwidth * $x, $x) | |
5208 | Next | |
5209 | DllStructSetData($tparts, 1, -1, $iparts) | |
5210 | Else | |
5211 | $tparts = DllStructCreate("int") | |
5212 | DllStructSetData($tparts, $iparts, -1) | |
5213 | EndIf | |
5214 | Local $pparts = DllStructGetPtr($tparts) | |
5215 | If _winapi_inprocess($hwnd, $__ghsblastwnd) Then | |
5216 | _sendmessage($hwnd, $sb_setparts, $iparts, $pparts, 0, "wparam", "ptr") | |
5217 | Else | |
5218 | Local $isize = DllStructGetSize($tparts) | |
5219 | Local $tmemmap | |
5220 | Local $pmemory = _meminit($hwnd, $isize, $tmemmap) | |
5221 | _memwrite($tmemmap, $pparts) | |
5222 | _sendmessage($hwnd, $sb_setparts, $iparts, $pmemory, 0, "wparam", "ptr") | |
5223 | _memfree($tmemmap) | |
5224 | EndIf | |
5225 | _guictrlstatusbar_resize($hwnd) | |
5226 | Return True | |
5227 | EndFunc | |
5228 | ||
5229 | Func _guictrlstatusbar_setsimple($hwnd, $fsimple = True) | |
5230 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5231 | _sendmessage($hwnd, $sb_simple, $fsimple) | |
5232 | EndFunc | |
5233 | ||
5234 | Func _guictrlstatusbar_settext($hwnd, $stext = "", $ipart = 0, $iuflag = 0) | |
5235 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5236 | Local $funicode = _guictrlstatusbar_getunicodeformat($hwnd) | |
5237 | Local $ibuffer = StringLen($stext) + 1 | |
5238 | Local $ttext | |
5239 | If $funicode Then | |
5240 | $ttext = DllStructCreate("wchar Text[" & $ibuffer & "]") | |
5241 | $ibuffer *= 2 | |
5242 | Else | |
5243 | $ttext = DllStructCreate("char Text[" & $ibuffer & "]") | |
5244 | EndIf | |
5245 | Local $pbuffer = DllStructGetPtr($ttext) | |
5246 | DllStructSetData($ttext, "Text", $stext) | |
5247 | If _guictrlstatusbar_issimple($hwnd) Then $ipart = $sb_simpleid | |
5248 | Local $iret | |
5249 | If _winapi_inprocess($hwnd, $__ghsblastwnd) Then | |
5250 | $iret = _sendmessage($hwnd, $sb_settextw, BitOR($ipart, $iuflag), $pbuffer, 0, "wparam", "ptr") | |
5251 | Else | |
5252 | Local $tmemmap | |
5253 | Local $pmemory = _meminit($hwnd, $ibuffer, $tmemmap) | |
5254 | _memwrite($tmemmap, $pbuffer) | |
5255 | If $funicode Then | |
5256 | $iret = _sendmessage($hwnd, $sb_settextw, BitOR($ipart, $iuflag), $pmemory, 0, "wparam", "ptr") | |
5257 | Else | |
5258 | $iret = _sendmessage($hwnd, $sb_settext, BitOR($ipart, $iuflag), $pmemory, 0, "wparam", "ptr") | |
5259 | EndIf | |
5260 | _memfree($tmemmap) | |
5261 | EndIf | |
5262 | Return $iret <> 0 | |
5263 | EndFunc | |
5264 | ||
5265 | Func _guictrlstatusbar_settiptext($hwnd, $ipart, $stext) | |
5266 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5267 | Local $funicode = _guictrlstatusbar_getunicodeformat($hwnd) | |
5268 | Local $ibuffer = StringLen($stext) + 1 | |
5269 | Local $ttext | |
5270 | If $funicode Then | |
5271 | $ttext = DllStructCreate("wchar TipText[" & $ibuffer & "]") | |
5272 | $ibuffer *= 2 | |
5273 | Else | |
5274 | $ttext = DllStructCreate("char TipText[" & $ibuffer & "]") | |
5275 | EndIf | |
5276 | Local $pbuffer = DllStructGetPtr($ttext) | |
5277 | DllStructSetData($ttext, "TipText", $stext) | |
5278 | If _winapi_inprocess($hwnd, $__ghsblastwnd) Then | |
5279 | _sendmessage($hwnd, $sb_settiptextw, $ipart, $pbuffer, 0, "wparam", "ptr") | |
5280 | Else | |
5281 | Local $tmemmap | |
5282 | Local $pmemory = _meminit($hwnd, $ibuffer, $tmemmap) | |
5283 | _memwrite($tmemmap, $pbuffer, $pmemory, $ibuffer) | |
5284 | If $funicode Then | |
5285 | _sendmessage($hwnd, $sb_settiptextw, $ipart, $pmemory, 0, "wparam", "ptr") | |
5286 | Else | |
5287 | _sendmessage($hwnd, $sb_settiptexta, $ipart, $pmemory, 0, "wparam", "ptr") | |
5288 | EndIf | |
5289 | _memfree($tmemmap) | |
5290 | EndIf | |
5291 | EndFunc | |
5292 | ||
5293 | Func _guictrlstatusbar_setunicodeformat($hwnd, $funicode = True) | |
5294 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5295 | Return _sendmessage($hwnd, $sb_setunicodeformat, $funicode) | |
5296 | EndFunc | |
5297 | ||
5298 | Func _guictrlstatusbar_showhide($hwnd, $istate) | |
5299 | If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname) | |
5300 | If $istate <> @SW_HIDE AND $istate <> @SW_SHOW Then Return SetError(1, 1, False) | |
5301 | Return _winapi_showwindow($hwnd, $istate) | |
5302 | EndFunc | |
5303 | ||
5304 | Global $_gheditlastwnd | |
5305 | Global $debug_ed = False | |
5306 | Global Const $__editconstant_classname = "Edit" | |
5307 | Global Const $__editconstant_gui_checked = 1 | |
5308 | Global Const $__editconstant_gui_hide = 32 | |
5309 | Global Const $__editconstant_gui_event_close = -3 | |
5310 | Global Const $__editconstant_gui_enable = 64 | |
5311 | Global Const $__editconstant_gui_disable = 128 | |
5312 | Global Const $__editconstant_ss_center = 1 | |
5313 | Global Const $__editconstant_wm_setredraw = 11 | |
5314 | Global Const $__editconstant_ws_caption = 12582912 | |
5315 | Global Const $__editconstant_ws_popup = -2147483648 | |
5316 | Global Const $__editconstant_ws_tabstop = 65536 | |
5317 | Global Const $__editconstant_ws_sysmenu = 524288 | |
5318 | Global Const $__editconstant_ws_minimizebox = 131072 | |
5319 | Global Const $__editconstant_default_gui_font = 17 | |
5320 | Global Const $__editconstant_wm_setfont = 48 | |
5321 | Global Const $__editconstant_wm_gettextlength = 14 | |
5322 | Global Const $__editconstant_wm_gettext = 13 | |
5323 | Global Const $__editconstant_wm_settext = 12 | |
5324 | Global Const $__editconstant_sb_lineup = 0 | |
5325 | Global Const $__editconstant_sb_linedown = 1 | |
5326 | Global Const $__editconstant_sb_pagedown = 3 | |
5327 | Global Const $__editconstant_sb_pageup = 2 | |
5328 | Global Const $__editconstant_sb_scrollcaret = 4 | |
5329 | Global Const $tageditballoontip = "dword Size;ptr Title;ptr Text;int Icon" | |
5330 | ||
5331 | Func _guictrledit_appendtext($hwnd, $stext) | |
5332 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5333 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5334 | Local $ilength = _guictrledit_gettextlen($hwnd) | |
5335 | _guictrledit_setsel($hwnd, $ilength, $ilength) | |
5336 | _sendmessage($hwnd, $em_replacesel, True, $stext, 0, "wparam", "wstr") | |
5337 | EndFunc | |
5338 | ||
5339 | Func _guictrledit_beginupdate($hwnd) | |
5340 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5341 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5342 | Return _sendmessage($hwnd, $__editconstant_wm_setredraw) = 0 | |
5343 | EndFunc | |
5344 | ||
5345 | Func _guictrledit_canundo($hwnd) | |
5346 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5347 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5348 | Return _sendmessage($hwnd, $em_canundo) <> 0 | |
5349 | EndFunc | |
5350 | ||
5351 | Func _guictrledit_charfrompos($hwnd, $ix, $iy) | |
5352 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5353 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5354 | Local $areturn[2] | |
5355 | Local $iret = _sendmessage($hwnd, $em_charfrompos, 0, _winapi_makelong($ix, $iy)) | |
5356 | $areturn[0] = _winapi_loword($iret) | |
5357 | $areturn[1] = _winapi_hiword($iret) | |
5358 | Return $areturn | |
5359 | EndFunc | |
5360 | ||
5361 | Func _guictrledit_create($hwnd, $stext, $ix, $iy, $iwidth = 150, $iheight = 150, $istyle = 3150020, $iexstyle = 512) | |
5362 | If NOT IsHWnd($hwnd) Then Return SetError(1, 0, 0) | |
5363 | If NOT IsString($stext) Then Return SetError(2, 0, 0) | |
5364 | If $iwidth = -1 Then $iwidth = 150 | |
5365 | If $iheight = -1 Then $iheight = 150 | |
5366 | If $istyle = -1 Then $istyle = 3150020 | |
5367 | If $iexstyle = -1 Then $iexstyle = 512 | |
5368 | If BitAND($istyle, $es_readonly) = $es_readonly Then | |
5369 | $istyle = BitOR($__udfguiconstant_ws_child, $__udfguiconstant_ws_visible, $istyle) | |
5370 | Else | |
5371 | $istyle = BitOR($__udfguiconstant_ws_child, $__udfguiconstant_ws_visible, $__editconstant_ws_tabstop, $istyle) | |
5372 | EndIf | |
5373 | Local $nctrlid = __udf_getnextglobalid($hwnd) | |
5374 | If @error Then Return SetError(@error, @extended, 0) | |
5375 | Local $hedit = _winapi_createwindowex($iexstyle, $__editconstant_classname, "", $istyle, $ix, $iy, $iwidth, $iheight, $hwnd, $nctrlid) | |
5376 | _sendmessage($hedit, $__editconstant_wm_setfont, _winapi_getstockobject($__editconstant_default_gui_font), True) | |
5377 | _guictrledit_settext($hedit, $stext) | |
5378 | _guictrledit_setlimittext($hedit, 0) | |
5379 | Return $hedit | |
5380 | EndFunc | |
5381 | ||
5382 | Func _guictrledit_destroy(ByRef $hwnd) | |
5383 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5384 | If NOT _winapi_isclassname($hwnd, $__editconstant_classname) Then Return SetError(2, 2, False) | |
5385 | Local $destroyed = 0 | |
5386 | If IsHWnd($hwnd) Then | |
5387 | If _winapi_inprocess($hwnd, $_gheditlastwnd) Then | |
5388 | Local $nctrlid = _winapi_getdlgctrlid($hwnd) | |
5389 | Local $hparent = _winapi_getparent($hwnd) | |
5390 | $destroyed = _winapi_destroywindow($hwnd) | |
5391 | Local $iret = __udf_freeglobalid($hparent, $nctrlid) | |
5392 | If NOT $iret Then | |
5393 | EndIf | |
5394 | Else | |
5395 | Return SetError(1, 1, False) | |
5396 | EndIf | |
5397 | Else | |
5398 | $destroyed = GUICtrlDelete($hwnd) | |
5399 | EndIf | |
5400 | If $destroyed Then $hwnd = 0 | |
5401 | Return $destroyed <> 0 | |
5402 | EndFunc | |
5403 | ||
5404 | Func _guictrledit_emptyundobuffer($hwnd) | |
5405 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5406 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5407 | _sendmessage($hwnd, $em_emptyundobuffer) | |
5408 | EndFunc | |
5409 | ||
5410 | Func _guictrledit_endupdate($hwnd) | |
5411 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5412 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5413 | Return _sendmessage($hwnd, $__editconstant_wm_setredraw, 1) = 0 | |
5414 | EndFunc | |
5415 | ||
5416 | Func _guictrledit_fmtlines($hwnd, $fsoftbreak = False) | |
5417 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5418 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5419 | Return _sendmessage($hwnd, $em_fmtlines, $fsoftbreak) | |
5420 | EndFunc | |
5421 | ||
5422 | Func _guictrledit_find($hwnd, $freplace = False) | |
5423 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5424 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5425 | Local $ipos = 0, $icase, $ioccurance = 0, $ireplacements = 0 | |
5426 | Local $apartsrightedge[3] = [125, 225, -1] | |
5427 | Local $oldmode = Opt("GUIOnEventMode", 0) | |
5428 | Local $asel = _guictrledit_getsel($hwnd) | |
5429 | Local $stext = _guictrledit_gettext($hwnd) | |
5430 | Local $guisearch = GUICreate("Find", 349, 177, -1, -1, BitOR($__udfguiconstant_ws_child, $__editconstant_ws_minimizebox, $__editconstant_ws_caption, $__editconstant_ws_popup, $__editconstant_ws_sysmenu)) | |
5431 | Local $statusbar1 = _guictrlstatusbar_create($guisearch, $apartsrightedge) | |
5432 | _guictrlstatusbar_settext($statusbar1, "Find: ") | |
5433 | GUISetIcon(@SystemDir & "\shell32.dll", 22, $guisearch) | |
5434 | GUICtrlCreateLabel("Find what:", 9, 10, 53, 16, $__editconstant_ss_center) | |
5435 | Local $inputsearch = GUICtrlCreateInput("", 80, 8, 257, 21) | |
5436 | Local $lblreplace = GUICtrlCreateLabel("Replace with:", 9, 42, 69, 17, $__editconstant_ss_center) | |
5437 | Local $inputreplace = GUICtrlCreateInput("", 80, 40, 257, 21) | |
5438 | Local $chkwholeonly = GUICtrlCreateCheckbox("Match whole word only", 9, 72, 145, 17) | |
5439 | Local $chkmatchcase = GUICtrlCreateCheckbox("Match case", 9, 96, 145, 17) | |
5440 | Local $btnfindnext = GUICtrlCreateButton("Find Next", 168, 72, 161, 21, 0) | |
5441 | Local $btnreplace = GUICtrlCreateButton("Replace", 168, 96, 161, 21, 0) | |
5442 | Local $btnclose = GUICtrlCreateButton("Close", 104, 130, 161, 21, 0) | |
5443 | If (IsArray($asel) AND $asel <> $ec_err) Then | |
5444 | GUICtrlSetData($inputsearch, StringMid($stext, $asel[0] + 1, $asel[1] - $asel[0])) | |
5445 | If $asel[0] <> $asel[1] Then | |
5446 | $ipos = $asel[0] | |
5447 | If BitAND(GUICtrlRead($chkmatchcase), $__editconstant_gui_checked) = $__editconstant_gui_checked Then $icase = 1 | |
5448 | $ioccurance = 1 | |
5449 | Local $itpose | |
5450 | While 1 | |
5451 | $itpose = StringInStr($stext, GUICtrlRead($inputsearch), $icase, $ioccurance) | |
5452 | If NOT $itpose Then | |
5453 | $ioccurance = 0 | |
5454 | ExitLoop | |
5455 | ElseIf $itpose = $ipos + 1 Then | |
5456 | ExitLoop | |
5457 | EndIf | |
5458 | $ioccurance += 1 | |
5459 | WEnd | |
5460 | EndIf | |
5461 | _guictrlstatusbar_settext($statusbar1, "Find: " & GUICtrlRead($inputsearch)) | |
5462 | EndIf | |
5463 | If $freplace = False Then | |
5464 | GUICtrlSetState($lblreplace, $__editconstant_gui_hide) | |
5465 | GUICtrlSetState($inputreplace, $__editconstant_gui_hide) | |
5466 | GUICtrlSetState($btnreplace, $__editconstant_gui_hide) | |
5467 | Else | |
5468 | _guictrlstatusbar_settext($statusbar1, "Replacements: " & $ireplacements, 1) | |
5469 | _guictrlstatusbar_settext($statusbar1, "With: ", 2) | |
5470 | EndIf | |
5471 | GUISetState(@SW_SHOW) | |
5472 | Local $msgfind | |
5473 | While 1 | |
5474 | $msgfind = GUIGetMsg() | |
5475 | Select | |
5476 | Case $msgfind = $__editconstant_gui_event_close OR $msgfind = $btnclose | |
5477 | ExitLoop | |
5478 | Case $msgfind = $btnfindnext | |
5479 | GUICtrlSetState($btnfindnext, $__editconstant_gui_disable) | |
5480 | GUICtrlSetCursor($btnfindnext, 15) | |
5481 | Sleep(100) | |
5482 | _guictrlstatusbar_settext($statusbar1, "Find: " & GUICtrlRead($inputsearch)) | |
5483 | If $freplace = True Then | |
5484 | _guictrlstatusbar_settext($statusbar1, "Find: " & GUICtrlRead($inputsearch)) | |
5485 | _guictrlstatusbar_settext($statusbar1, "With: " & GUICtrlRead($inputreplace), 2) | |
5486 | EndIf | |
5487 | __guictrledit_findtext($hwnd, $inputsearch, $chkmatchcase, $chkwholeonly, $ipos, $ioccurance, $ireplacements) | |
5488 | Sleep(100) | |
5489 | GUICtrlSetState($btnfindnext, $__editconstant_gui_enable) | |
5490 | GUICtrlSetCursor($btnfindnext, 2) | |
5491 | Case $msgfind = $btnreplace | |
5492 | GUICtrlSetState($btnreplace, $__editconstant_gui_disable) | |
5493 | GUICtrlSetCursor($btnreplace, 15) | |
5494 | Sleep(100) | |
5495 | _guictrlstatusbar_settext($statusbar1, "Find: " & GUICtrlRead($inputsearch)) | |
5496 | _guictrlstatusbar_settext($statusbar1, "With: " & GUICtrlRead($inputreplace), 2) | |
5497 | If $ipos Then | |
5498 | _guictrledit_replacesel($hwnd, GUICtrlRead($inputreplace)) | |
5499 | $ireplacements += 1 | |
5500 | $ioccurance -= 1 | |
5501 | _guictrlstatusbar_settext($statusbar1, "Replacements: " & $ireplacements, 1) | |
5502 | EndIf | |
5503 | __guictrledit_findtext($hwnd, $inputsearch, $chkmatchcase, $chkwholeonly, $ipos, $ioccurance, $ireplacements) | |
5504 | Sleep(100) | |
5505 | GUICtrlSetState($btnreplace, $__editconstant_gui_enable) | |
5506 | GUICtrlSetCursor($btnreplace, 2) | |
5507 | EndSelect | |
5508 | WEnd | |
5509 | GUIDelete($guisearch) | |
5510 | Opt("GUIOnEventMode", $oldmode) | |
5511 | EndFunc | |
5512 | ||
5513 | Func __guictrledit_findtext($hwnd, $inputsearch, $chkmatchcase, $chkwholeonly, ByRef $ipos, ByRef $ioccurance, ByRef $ireplacements) | |
5514 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5515 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5516 | Local $icase = 0, $iwhole = 0 | |
5517 | Local $fexact = False | |
5518 | Local $sfind = GUICtrlRead($inputsearch) | |
5519 | Local $stext = _guictrledit_gettext($hwnd) | |
5520 | If BitAND(GUICtrlRead($chkmatchcase), $__editconstant_gui_checked) = $__editconstant_gui_checked Then $icase = 1 | |
5521 | If BitAND(GUICtrlRead($chkwholeonly), $__editconstant_gui_checked) = $__editconstant_gui_checked Then $iwhole = 1 | |
5522 | If $sfind <> "" Then | |
5523 | $ioccurance += 1 | |
5524 | $ipos = StringInStr($stext, $sfind, $icase, $ioccurance) | |
5525 | If $iwhole AND $ipos Then | |
5526 | Local $c_compare2 = StringMid($stext, $ipos + StringLen($sfind), 1) | |
5527 | If $ipos = 1 Then | |
5528 | If ($ipos + StringLen($sfind)) - 1 = StringLen($stext) OR ($c_compare2 = " " OR $c_compare2 = @LF OR $c_compare2 = @CR OR $c_compare2 = @CRLF OR $c_compare2 = @TAB) Then $fexact = True | |
5529 | Else | |
5530 | Local $c_compare1 = StringMid($stext, $ipos - 1, 1) | |
5531 | If ($ipos + StringLen($sfind)) - 1 = StringLen($stext) Then | |
5532 | If ($c_compare1 = " " OR $c_compare1 = @LF OR $c_compare1 = @CR OR $c_compare1 = @CRLF OR $c_compare1 = @TAB) Then $fexact = True | |
5533 | Else | |
5534 | If ($c_compare1 = " " OR $c_compare1 = @LF OR $c_compare1 = @CR OR $c_compare1 = @CRLF OR $c_compare1 = @TAB) AND ($c_compare2 = " " OR $c_compare2 = @LF OR $c_compare2 = @CR OR $c_compare2 = @CRLF OR $c_compare2 = @TAB) Then $fexact = True | |
5535 | EndIf | |
5536 | EndIf | |
5537 | If $fexact = False Then | |
5538 | __guictrledit_findtext($hwnd, $inputsearch, $chkmatchcase, $chkwholeonly, $ipos, $ioccurance, $ireplacements) | |
5539 | Else | |
5540 | _guictrledit_setsel($hwnd, $ipos - 1, ($ipos + StringLen($sfind)) - 1) | |
5541 | _guictrledit_scroll($hwnd, $__editconstant_sb_scrollcaret) | |
5542 | EndIf | |
5543 | ElseIf $iwhole AND NOT $ipos Then | |
5544 | $ioccurance = 0 | |
5545 | MsgBox(48, "Find", "Reached End of document, Can not find the string '" & $sfind & "'") | |
5546 | ElseIf NOT $iwhole Then | |
5547 | If NOT $ipos Then | |
5548 | $ioccurance = 1 | |
5549 | _guictrledit_setsel($hwnd, -1, 0) | |
5550 | _guictrledit_scroll($hwnd, $__editconstant_sb_scrollcaret) | |
5551 | $ipos = StringInStr($stext, $sfind, $icase, $ioccurance) | |
5552 | If NOT $ipos Then | |
5553 | $ioccurance = 0 | |
5554 | MsgBox(48, "Find", "Reached End of document, Can not find the string '" & $sfind & "'") | |
5555 | Else | |
5556 | _guictrledit_setsel($hwnd, $ipos - 1, ($ipos + StringLen($sfind)) - 1) | |
5557 | _guictrledit_scroll($hwnd, $__editconstant_sb_scrollcaret) | |
5558 | EndIf | |
5559 | Else | |
5560 | _guictrledit_setsel($hwnd, $ipos - 1, ($ipos + StringLen($sfind)) - 1) | |
5561 | _guictrledit_scroll($hwnd, $__editconstant_sb_scrollcaret) | |
5562 | EndIf | |
5563 | EndIf | |
5564 | EndIf | |
5565 | EndFunc | |
5566 | ||
5567 | Func _guictrledit_getfirstvisibleline($hwnd) | |
5568 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5569 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5570 | Return _sendmessage($hwnd, $em_getfirstvisibleline) | |
5571 | EndFunc | |
5572 | ||
5573 | Func _guictrledit_gethandle($hwnd) | |
5574 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5575 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5576 | Return _sendmessage($hwnd, $em_gethandle) | |
5577 | EndFunc | |
5578 | ||
5579 | Func _guictrledit_getimestatus($hwnd) | |
5580 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5581 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5582 | Return _sendmessage($hwnd, $em_getimestatus, $emsis_compositionstring) | |
5583 | EndFunc | |
5584 | ||
5585 | Func _guictrledit_getlimittext($hwnd) | |
5586 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5587 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5588 | Return _sendmessage($hwnd, $em_getlimittext) | |
5589 | EndFunc | |
5590 | ||
5591 | Func _guictrledit_getline($hwnd, $iline) | |
5592 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5593 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5594 | Local $ilength = _guictrledit_linelength($hwnd, $iline) | |
5595 | If $ilength = 0 Then Return "" | |
5596 | Local $tbuffer = DllStructCreate("short Len;wchar Text[" & $ilength & "]") | |
5597 | Local $pbuffer = DllStructGetPtr($tbuffer) | |
5598 | DllStructSetData($tbuffer, "Len", $ilength + 1) | |
5599 | Local $iret = _sendmessage($hwnd, $em_getline, $iline, $pbuffer, 0, "wparam", "ptr") | |
5600 | If $iret = 0 Then Return SetError($ec_err, $ec_err, "") | |
5601 | Local $ttext = DllStructCreate("wchar Text[" & $ilength & "]", $pbuffer) | |
5602 | Return DllStructGetData($ttext, "Text") | |
5603 | EndFunc | |
5604 | ||
5605 | Func _guictrledit_getlinecount($hwnd) | |
5606 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5607 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5608 | Return _sendmessage($hwnd, $em_getlinecount) | |
5609 | EndFunc | |
5610 | ||
5611 | Func _guictrledit_getmargins($hwnd) | |
5612 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5613 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5614 | Local $amargins[2] | |
5615 | Local $imargins = _sendmessage($hwnd, $em_getmargins) | |
5616 | $amargins[0] = _winapi_loword($imargins) | |
5617 | $amargins[1] = _winapi_hiword($imargins) | |
5618 | Return $amargins | |
5619 | EndFunc | |
5620 | ||
5621 | Func _guictrledit_getmodify($hwnd) | |
5622 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5623 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5624 | Return _sendmessage($hwnd, $em_getmodify) <> 0 | |
5625 | EndFunc | |
5626 | ||
5627 | Func _guictrledit_getpasswordchar($hwnd) | |
5628 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5629 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5630 | Return _sendmessage($hwnd, $em_getpasswordchar) | |
5631 | EndFunc | |
5632 | ||
5633 | Func _guictrledit_getrect($hwnd) | |
5634 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5635 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5636 | Local $arect[4] | |
5637 | Local $trect = _guictrledit_getrectex($hwnd) | |
5638 | $arect[0] = DllStructGetData($trect, "Left") | |
5639 | $arect[1] = DllStructGetData($trect, "Top") | |
5640 | $arect[2] = DllStructGetData($trect, "Right") | |
5641 | $arect[3] = DllStructGetData($trect, "Bottom") | |
5642 | Return $arect | |
5643 | EndFunc | |
5644 | ||
5645 | Func _guictrledit_getrectex($hwnd) | |
5646 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5647 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5648 | Local $trect = DllStructCreate($tagrect) | |
5649 | _sendmessage($hwnd, $em_getrect, 0, DllStructGetPtr($trect), 0, "wparam", "ptr") | |
5650 | Return $trect | |
5651 | EndFunc | |
5652 | ||
5653 | Func _guictrledit_getsel($hwnd) | |
5654 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5655 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5656 | Local $asel[2] | |
5657 | Local $wparam = DllStructCreate("uint Start") | |
5658 | Local $lparam = DllStructCreate("uint End") | |
5659 | _sendmessage($hwnd, $em_getsel, DllStructGetPtr($wparam), DllStructGetPtr($lparam), 0, "ptr", "ptr") | |
5660 | $asel[0] = DllStructGetData($wparam, "Start") | |
5661 | $asel[1] = DllStructGetData($lparam, "End") | |
5662 | Return $asel | |
5663 | EndFunc | |
5664 | ||
5665 | Func _guictrledit_gettext($hwnd) | |
5666 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5667 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5668 | Local $itextlen = _guictrledit_gettextlen($hwnd) + 1 | |
5669 | Local $ttext = DllStructCreate("wchar Text[" & $itextlen & "]") | |
5670 | _sendmessage($hwnd, $__editconstant_wm_gettext, $itextlen, DllStructGetPtr($ttext), 0, "wparam", "ptr") | |
5671 | Return DllStructGetData($ttext, "Text") | |
5672 | EndFunc | |
5673 | ||
5674 | Func _guictrledit_gettextlen($hwnd) | |
5675 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5676 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5677 | Return _sendmessage($hwnd, $__editconstant_wm_gettextlength) | |
5678 | EndFunc | |
5679 | ||
5680 | Func _guictrledit_getthumb($hwnd) | |
5681 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5682 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5683 | Return _sendmessage($hwnd, $em_getthumb) | |
5684 | EndFunc | |
5685 | ||
5686 | Func _guictrledit_getwordbreakproc($hwnd) | |
5687 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5688 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5689 | Return _sendmessage($hwnd, $em_getwordbreakproc) | |
5690 | EndFunc | |
5691 | ||
5692 | Func _guictrledit_hideballoontip($hwnd) | |
5693 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5694 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5695 | Return _sendmessage($hwnd, $em_hideballoontip) | |
5696 | EndFunc | |
5697 | ||
5698 | Func _guictrledit_inserttext($hwnd, $stext, $iindex = -1) | |
5699 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5700 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5701 | If $iindex = -1 Then | |
5702 | _guictrledit_appendtext($hwnd, $stext) | |
5703 | Else | |
5704 | _guictrledit_setsel($hwnd, $iindex, $iindex) | |
5705 | _sendmessage($hwnd, $em_replacesel, True, $stext, 0, "wparam", "wstr") | |
5706 | EndIf | |
5707 | EndFunc | |
5708 | ||
5709 | Func _guictrledit_linefromchar($hwnd, $iindex = -1) | |
5710 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5711 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5712 | Return _sendmessage($hwnd, $em_linefromchar, $iindex) | |
5713 | EndFunc | |
5714 | ||
5715 | Func _guictrledit_lineindex($hwnd, $iindex = -1) | |
5716 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5717 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5718 | Return _sendmessage($hwnd, $em_lineindex, $iindex) | |
5719 | EndFunc | |
5720 | ||
5721 | Func _guictrledit_linelength($hwnd, $iindex = -1) | |
5722 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5723 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5724 | Local $charindex = _guictrledit_lineindex($hwnd, $iindex) | |
5725 | Return _sendmessage($hwnd, $em_linelength, $charindex) | |
5726 | EndFunc | |
5727 | ||
5728 | Func _guictrledit_linescroll($hwnd, $ihoriz, $ivert) | |
5729 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5730 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5731 | Return _sendmessage($hwnd, $em_linescroll, $ihoriz, $ivert) <> 0 | |
5732 | EndFunc | |
5733 | ||
5734 | Func _guictrledit_posfromchar($hwnd, $iindex) | |
5735 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5736 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5737 | Local $acoord[2] | |
5738 | Local $iret = _sendmessage($hwnd, $em_posfromchar, $iindex) | |
5739 | $acoord[0] = _winapi_loword($iret) | |
5740 | $acoord[1] = _winapi_hiword($iret) | |
5741 | Return $acoord | |
5742 | EndFunc | |
5743 | ||
5744 | Func _guictrledit_replacesel($hwnd, $stext, $fundo = True) | |
5745 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5746 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5747 | _sendmessage($hwnd, $em_replacesel, $fundo, $stext, 0, "wparam", "wstr") | |
5748 | EndFunc | |
5749 | ||
5750 | Func _guictrledit_scroll($hwnd, $idirection) | |
5751 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5752 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5753 | If BitAND($idirection, $__editconstant_sb_linedown) <> $__editconstant_sb_linedown AND BitAND($idirection, $__editconstant_sb_lineup) <> $__editconstant_sb_lineup AND BitAND($idirection, $__editconstant_sb_pagedown) <> $__editconstant_sb_pagedown AND BitAND($idirection, $__editconstant_sb_pageup) <> $__editconstant_sb_pageup AND BitAND($idirection, $__editconstant_sb_scrollcaret) <> $__editconstant_sb_scrollcaret Then Return 0 | |
5754 | If $idirection == $__editconstant_sb_scrollcaret Then | |
5755 | Return _sendmessage($hwnd, $em_scrollcaret) | |
5756 | Else | |
5757 | Return _sendmessage($hwnd, $em_scroll, $idirection) | |
5758 | EndIf | |
5759 | EndFunc | |
5760 | ||
5761 | Func _guictrledit_sethandle($hwnd, $hmemory) | |
5762 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5763 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5764 | Return _sendmessage($hwnd, $em_sethandle, $hmemory, 0, 0, "hwnd") | |
5765 | EndFunc | |
5766 | ||
5767 | Func _guictrledit_setimestatus($hwnd, $icomposition) | |
5768 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5769 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5770 | Return _sendmessage($hwnd, $em_setimestatus, $emsis_compositionstring, $icomposition) | |
5771 | EndFunc | |
5772 | ||
5773 | Func _guictrledit_setlimittext($hwnd, $ilimit) | |
5774 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5775 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5776 | _sendmessage($hwnd, $em_setlimittext, $ilimit) | |
5777 | EndFunc | |
5778 | ||
5779 | Func _guictrledit_setmargins($hwnd, $imargin = 1, $ileft = 65535, $iright = 65535) | |
5780 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5781 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5782 | _sendmessage($hwnd, $em_setmargins, $imargin, _winapi_makelong($ileft, $iright)) | |
5783 | EndFunc | |
5784 | ||
5785 | Func _guictrledit_setmodify($hwnd, $fmodified) | |
5786 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5787 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5788 | _sendmessage($hwnd, $em_setmodify, $fmodified) | |
5789 | EndFunc | |
5790 | ||
5791 | Func _guictrledit_setpasswordchar($hwnd, $cdisplaychar = "0") | |
5792 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5793 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5794 | $cdisplaychar = StringLeft($cdisplaychar, 1) | |
5795 | If Asc($cdisplaychar) = 48 Then | |
5796 | _sendmessage($hwnd, $em_setpasswordchar) | |
5797 | Else | |
5798 | _sendmessage($hwnd, $em_setpasswordchar, Asc($cdisplaychar)) | |
5799 | EndIf | |
5800 | EndFunc | |
5801 | ||
5802 | Func _guictrledit_setreadonly($hwnd, $freadonly) | |
5803 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5804 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5805 | Return _sendmessage($hwnd, $em_setreadonly, $freadonly) <> 0 | |
5806 | EndFunc | |
5807 | ||
5808 | Func _guictrledit_setrect($hwnd, $arect) | |
5809 | Local $trect = DllStructCreate($tagrect) | |
5810 | DllStructSetData($trect, "Left", $arect[0]) | |
5811 | DllStructSetData($trect, "Top", $arect[1]) | |
5812 | DllStructSetData($trect, "Right", $arect[2]) | |
5813 | DllStructSetData($trect, "Bottom", $arect[3]) | |
5814 | _guictrledit_setrectex($hwnd, $trect) | |
5815 | EndFunc | |
5816 | ||
5817 | Func _guictrledit_setrectex($hwnd, $trect) | |
5818 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5819 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5820 | _sendmessage($hwnd, $em_setrect, 0, DllStructGetPtr($trect), 0, "wparam", "ptr") | |
5821 | EndFunc | |
5822 | ||
5823 | Func _guictrledit_setrectnp($hwnd, $arect) | |
5824 | Local $trect = DllStructCreate($tagrect) | |
5825 | DllStructSetData($trect, "Left", $arect[0]) | |
5826 | DllStructSetData($trect, "Top", $arect[1]) | |
5827 | DllStructSetData($trect, "Right", $arect[2]) | |
5828 | DllStructSetData($trect, "Bottom", $arect[3]) | |
5829 | _guictrledit_setrectnpex($hwnd, $trect) | |
5830 | EndFunc | |
5831 | ||
5832 | Func _guictrledit_setrectnpex($hwnd, $trect) | |
5833 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5834 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5835 | _sendmessage($hwnd, $em_setrectnp, 0, DllStructGetPtr($trect), 0, "wparam", "ptr") | |
5836 | EndFunc | |
5837 | ||
5838 | Func _guictrledit_setsel($hwnd, $istart, $iend) | |
5839 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5840 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5841 | _sendmessage($hwnd, $em_setsel, $istart, $iend) | |
5842 | EndFunc | |
5843 | ||
5844 | Func _guictrledit_settabstops($hwnd, $atabstops) | |
5845 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5846 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5847 | If NOT IsArray($atabstops) Then Return SetError(-1, -1, False) | |
5848 | Local $stabstops = "" | |
5849 | Local $inumtabstops = UBound($atabstops) | |
5850 | For $x = 0 To $inumtabstops - 1 | |
5851 | $stabstops &= "int;" | |
5852 | Next | |
5853 | $stabstops = StringTrimRight($stabstops, 1) | |
5854 | Local $ttabstops = DllStructCreate($stabstops) | |
5855 | For $x = 0 To $inumtabstops - 1 | |
5856 | DllStructSetData($ttabstops, $x + 1, $atabstops[$x]) | |
5857 | Next | |
5858 | Local $iret = _sendmessage($hwnd, $em_settabstops, $inumtabstops, DllStructGetPtr($ttabstops), 0, "wparam", "ptr") <> 0 | |
5859 | _winapi_invalidaterect($hwnd) | |
5860 | Return $iret | |
5861 | EndFunc | |
5862 | ||
5863 | Func _guictrledit_settext($hwnd, $stext) | |
5864 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5865 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5866 | _sendmessage($hwnd, $__editconstant_wm_settext, 0, $stext, 0, "wparam", "wstr") | |
5867 | EndFunc | |
5868 | ||
5869 | Func _guictrledit_setwordbreakproc($hwnd, $iaddressfunc) | |
5870 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5871 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5872 | _sendmessage($hwnd, $em_setwordbreakproc, 0, $iaddressfunc) | |
5873 | EndFunc | |
5874 | ||
5875 | Func _guictrledit_showballoontip($hwnd, $stitle, $stext, $iicon) | |
5876 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5877 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5878 | Local $ttitle = _winapi_multibytetowidechar($stitle) | |
5879 | Local $ttext = _winapi_multibytetowidechar($stext) | |
5880 | Local $ttt = DllStructCreate($tageditballoontip) | |
5881 | DllStructSetData($ttt, "Size", DllStructGetSize($ttt)) | |
5882 | DllStructSetData($ttt, "Title", DllStructGetPtr($ttitle)) | |
5883 | DllStructSetData($ttt, "Text", DllStructGetPtr($ttext)) | |
5884 | DllStructSetData($ttt, "Icon", $iicon) | |
5885 | Return _sendmessage($hwnd, $em_showballoontip, 0, DllStructGetPtr($ttt), 0, "wparam", "ptr") <> 0 | |
5886 | EndFunc | |
5887 | ||
5888 | Func _guictrledit_undo($hwnd) | |
5889 | If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname) | |
5890 | If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd) | |
5891 | Return _sendmessage($hwnd, $em_undo) <> 0 | |
5892 | EndFunc | |
5893 | ||
5894 | Global Const $ss_left = 0 | |
5895 | Global Const $ss_center = 1 | |
5896 | Global Const $ss_right = 2 | |
5897 | Global Const $ss_icon = 3 | |
5898 | Global Const $ss_blackrect = 4 | |
5899 | Global Const $ss_grayrect = 5 | |
5900 | Global Const $ss_whiterect = 6 | |
5901 | Global Const $ss_blackframe = 7 | |
5902 | Global Const $ss_grayframe = 8 | |
5903 | Global Const $ss_whiteframe = 9 | |
5904 | Global Const $ss_simple = 11 | |
5905 | Global Const $ss_leftnowordwrap = 12 | |
5906 | Global Const $ss_bitmap = 14 | |
5907 | Global Const $ss_etchedhorz = 16 | |
5908 | Global Const $ss_etchedvert = 17 | |
5909 | Global Const $ss_etchedframe = 18 | |
5910 | Global Const $ss_noprefix = 128 | |
5911 | Global Const $ss_notify = 256 | |
5912 | Global Const $ss_centerimage = 512 | |
5913 | Global Const $ss_rightjust = 1024 | |
5914 | Global Const $ss_sunken = 4096 | |
5915 | Global Const $gui_ss_default_label = 0 | |
5916 | Global Const $gui_ss_default_graphic = 0 | |
5917 | Global Const $gui_ss_default_icon = $ss_notify | |
5918 | Global Const $gui_ss_default_pic = $ss_notify | |
5919 | ||
5920 | Func _hexedit($sfile, $sbuffer, $ibyteoffset, $ivarsize = 0) | |
5921 | Local $lpszbuff, $hfile, $error, $nbytes | |
5922 | If $ivarsize = 0 Then $ivarsize = StringLen($sbuffer) | |
5923 | $lpszbuff = DllStructCreate("byte[" & $ivarsize & "]") | |
5924 | DllStructSetData($lpszbuff, 1, $sbuffer) | |
5925 | $hfile = _winapi_createfile($sfile, 2, 4, 4) | |
5926 | If $hfile = 0 Then | |
5927 | SetError(1) | |
5928 | Return 0 | |
5929 | EndIf | |
5930 | $error = _winapi_setfilepointer($hfile, $ibyteoffset, 0) | |
5931 | If $error = -1 Then | |
5932 | SetError(2) | |
5933 | Return 0 | |
5934 | EndIf | |
5935 | $error = _winapi_writefile($hfile, DllStructGetPtr($lpszbuff), $ivarsize, $nbytes) | |
5936 | If $error = False Then | |
5937 | SetError(3) | |
5938 | Return 0 | |
5939 | EndIf | |
5940 | $error = _winapi_closehandle($hfile) | |
5941 | If $error = False Then | |
5942 | SetError(4) | |
5943 | Return 0 | |
5944 | EndIf | |
5945 | Return $nbytes | |
5946 | EndFunc | |
5947 | ||
5948 | Global $pid | |
5949 | Global $approved = False | |
5950 | Global $authstring = FileRead(@ScriptDir & "\str") | |
5951 | Global $steampath = RegRead("HKEY_CURRENT_USER\Software\Valve\Steam", "SteamPath") & "/SteamApps/" | |
5952 | getsteaminfos() | |
5953 | isapproved() | |
5954 | If $approved = False Then | |
5955 | ConsoleWrite("You shouldn't have done that...") | |
5956 | Sleep(2000) | |
5957 | Exit | |
5958 | EndIf | |
5959 | ProcessClose("GameOverlayUI.exe") | |
5960 | ProcessClose("csgo.exe") | |
5961 | Global $mode = 0 | |
5962 | checkmode() | |
5963 | While 1 | |
5964 | If $cmdline[0] = 1 Then | |
5965 | If $cmdline[1] = "-forceinstall" Then | |
5966 | Global $mode = 0 | |
5967 | ElseIf $cmdline[1] = "-forceuninstall" Then | |
5968 | Global $mode = 1 | |
5969 | EndIf | |
5970 | EndIf | |
5971 | If $mode = 0 Then | |
5972 | setconsoletitle("Baking Bread") | |
5973 | ConsoleWrite("Baking Bread CSGO Installer" & @CRLF & @CRLF & $dateandtime & @CRLF & @CRLF & "Usage of the cheat is positive until " & $duedate & "." & @CRLF) | |
5974 | ConsoleWrite("Installing now..." & @CRLF) | |
5975 | install() | |
5976 | Else | |
5977 | uninstall() | |
5978 | EndIf | |
5979 | WEnd | |
5980 | ||
5981 | Func isapproved() | |
5982 | $string = BinaryToString(InetRead("http://nlcsgo.left4hacks.com/broekelybroekely/twokey/" & $authstring & "/" & $steamid, 1)) | |
5983 | Global $authtemp = StringSplit(Binary($string), "3B0D0A", 1) | |
5984 | If $authtemp[0] = 1 Then | |
5985 | Global $approved = False | |
5986 | Return | |
5987 | EndIf | |
5988 | Global $m_fkeys = BinaryToString("0x" & $authtemp[2]) | |
5989 | Global $check_regpath = BinaryToString("0x" & $authtemp[3]) | |
5990 | Global $check_regkey = BinaryToString("0x" & $authtemp[4]) | |
5991 | Global $installpath = BinaryToString("0x" & $authtemp[5]) | |
5992 | Global $duedate = BinaryToString("0x" & $authtemp[6]) | |
5993 | Global $reg_path = BinaryToString("0x" & $authtemp[7]) | |
5994 | Global $terminalstr1 = BinaryToString("0x" & $authtemp[8]) | |
5995 | Global $terminalstr2 = BinaryToString("0x" & $authtemp[9]) | |
5996 | Global $m_fw_settings = BinaryToString("0x" & $authtemp[10]) | |
5997 | Global $dllname1 = BinaryToString("0x" & $authtemp[11]) | |
5998 | Global $dllname2 = BinaryToString("0x" & $authtemp[12]) | |
5999 | Global $xray1 = BinaryToString("0x" & $authtemp[13]) | |
6000 | Global $dateandtime = BinaryToString("0x" & $authtemp[14]) | |
6001 | If BinaryToString($authtemp[1]) = "true" Then Global $approved = True | |
6002 | EndFunc | |
6003 | ||
6004 | Func checkmode() | |
6005 | $tmp = RegRead($check_regpath, $check_regkey) | |
6006 | If $tmp = 1 Then | |
6007 | Global $mode = 0 | |
6008 | Global $reg_desired = BinaryToString(InetRead($reg_path, 1)) | |
6009 | Return | |
6010 | ElseIf $tmp = 0 Then | |
6011 | Global $mode = 1 | |
6012 | Global $reg_desired = BinaryToString(InetRead($reg_path & "x", 1)) | |
6013 | EndIf | |
6014 | EndFunc | |
6015 | ||
6016 | Func install() | |
6017 | RegWrite($check_regpath, $check_regkey, "REG_DWORD", "0") | |
6018 | FileWrite("C:\goonies.txt", $check_regpath & $reg_desired) | |
6019 | RunWait("regini C:\goonies.txt", @ScriptDir, @SW_HIDE) | |
6020 | FileDelete("C:\goonies.txt") | |
6021 | InetGet($terminalstr1, $steampath & $installpath & $dllname1, 1) | |
6022 | InetGet($terminalstr2, $steampath & $installpath & $dllname2, 1) | |
6023 | setconfigurations() | |
6024 | ConsoleWrite("Installed. Have fun!" & @CRLF) | |
6025 | Sleep(2000) | |
6026 | Exit | |
6027 | EndFunc | |
6028 | ||
6029 | Func uninstall() | |
6030 | FileWrite("C:\goonies.txt", $check_regpath & $reg_desired) | |
6031 | RunWait("regini C:\goonies.txt", @ScriptDir, @SW_HIDE) | |
6032 | FileDelete("C:\goonies.txt") | |
6033 | RegWrite($check_regpath, $check_regkey, "REG_DWORD", "1") | |
6034 | InetGet("http://nlcsgo.left4hacks.com/u", $steampath & $installpath & $dllname1, 1) | |
6035 | InetGet("http://nlcsgo.left4hacks.com/u2", $steampath & $installpath & $dllname2, 1) | |
6036 | ConsoleWrite("Uninstalled." & @CRLF) | |
6037 | Sleep(2000) | |
6038 | Exit | |
6039 | EndFunc | |
6040 | ||
6041 | Func getsteaminfos() | |
6042 | Global $id_steam = ProcessExists("steam.exe") | |
6043 | setprivilege("SeDebugPrivilege", 1) | |
6044 | Global $priv = setprivilege("SeDebugPrivilege", 1) | |
6045 | Global $priv = 2035711 | |
6046 | Global $handle2 = _memoryopen($id_steam, $priv) | |
6047 | Global $open2 = _memoryopen($id_steam) | |
6048 | _memoryopen($id_steam) | |
6049 | Do | |
6050 | Global $steamui = _memorymodulegetbaseaddress($id_steam, "SteamUI.dll") | |
6051 | Until $steamui = NOT 0 | |
6052 | Do | |
6053 | Global $steamdll = _memorymodulegetbaseaddress($id_steam, "Steam.dll") | |
6054 | Until $steamdll = NOT 0 | |
6055 | Global $p_accountname = swapendian2(_memoryread(_findpattern($id_steam, $steamui, "005f5e8bc35b8be55dc20400") - 15, $handle2, "byte[4]")) | |
6056 | Global $steamid = Int(_memoryread(("0x" & $p_accountname) - 8, $handle2, "byte[8]")) | |
6057 | Global $accountname = _memoryread("0x" & $p_accountname, $handle2, "char[65]") | |
6058 | EndFunc | |
6059 | ||
6060 | Func setconfigurations() | |
6061 | Global $cfg_ffon = interpretkey(IniRead("settings.ini", "configuration", "ff on", "F8"), "F8") | |
6062 | Global $cfg_ffoff = interpretkey(IniRead("settings.ini", "configuration", "ff off", "F9"), "F9") | |
6063 | Global $cfg_rhon = interpretkey(IniRead("settings.ini", "configuration", "radarhack on", "up"), "up") | |
6064 | Global $cfg_rhoff = interpretkey(IniRead("settings.ini", "configuration", "radarhack off", "down"), "down") | |
6065 | Global $cfg_hskey = interpretkey(IniRead("settings.ini", "configuration", "force headshot key", "mouse5"), "mouse5") | |
6066 | Global $cfg_ubkey = interpretkey(IniRead("settings.ini", "configuration", "force upperbody key", "mouse4"), "mouse4") | |
6067 | Global $cfg_visuals = "0" & IniRead("settings.ini", "configuration", "visuals", "1") | |
6068 | Global $cfg_preset_global = interpretkey(IniRead("settings.ini", "configuration", "preset global hotkey", "lalt"), "lalt") | |
6069 | Global $cfg_preset_1 = interpretkey(IniRead("settings.ini", "configuration", "preset #1", "numpad1"), "numpad1") | |
6070 | Global $cfg_preset_2 = interpretkey(IniRead("settings.ini", "configuration", "preset #2", "numpad2"), "numpad2") | |
6071 | Global $cfg_preset_3 = interpretkey(IniRead("settings.ini", "configuration", "preset #3", "numpad3"), "numpad3") | |
6072 | Global $cfg_preset_4 = interpretkey(IniRead("settings.ini", "configuration", "preset #4", "numpad4"), "numpad4") | |
6073 | Global $cfg_preset_5 = interpretkey(IniRead("settings.ini", "configuration", "preset #5", "numpad5"), "numpad5") | |
6074 | Global $cfg_preset_panic = interpretkey(IniRead("settings.ini", "configuration", "preset panickey", "numpad0"), "numpad0") | |
6075 | Global $xray_on = interpretkey(IniRead("settings.ini", "xray", "xray on", "pgup"), "pgup") | |
6076 | Global $xray_off = interpretkey(IniRead("settings.ini", "xray", "xray off", "pgdn"), "pgdn") | |
6077 | Global $xray_showall = "0" & IniRead("settings.ini", "xray", "showall", "0") | |
6078 | Global $xray_tred = gcolor(IniRead("settings.ini", "xray", "T red", "0")) | |
6079 | Global $xray_tgreen = gcolor(IniRead("settings.ini", "xray", "T green", "255")) | |
6080 | Global $xray_tblue = gcolor(IniRead("settings.ini", "xray", "T blue", "255")) | |
6081 | Global $xray_talpha = gcolor(IniRead("settings.ini", "xray", "T alpha", "255")) | |
6082 | Global $xray_ctred = gcolor(IniRead("settings.ini", "xray", "CT red", "0")) | |
6083 | Global $xray_ctgreen = gcolor(IniRead("settings.ini", "xray", "CT green", "255")) | |
6084 | Global $xray_ctblue = gcolor(IniRead("settings.ini", "xray", "CT blue", "255")) | |
6085 | Global $xray_ctalpha = gcolor(IniRead("settings.ini", "xray", "CT alpha", "255")) | |
6086 | Global $xraybytes = "0x" & swapendian2("0x" & _fl($xray_tred)) & swapendian2("0x" & _fl($xray_tgreen)) & swapendian2("0x" & _fl($xray_tblue)) & swapendian2("0x" & _fl($xray_talpha)) & swapendian2("0x" & _fl($xray_ctred)) & swapendian2("0x" & _fl($xray_ctgreen)) & swapendian2("0x" & _fl($xray_ctblue)) & swapendian2("0x" & _fl($xray_ctalpha)) & $xray_on & $xray_off & $xray_showall | |
6087 | Global $cfgbytes = "0x" & $cfg_preset_global & $cfg_preset_panic & $cfg_preset_1 & $cfg_preset_2 & $cfg_preset_3 & $cfg_preset_4 & $cfg_preset_5 & $cfg_ffon & $cfg_ffoff & $cfg_hskey & $cfg_rhon & $cfg_rhoff & $cfg_ubkey & $cfg_visuals | |
6088 | Global $htier0dll = file_open($steampath & $installpath & $dllname1) | |
6089 | $cfgwrite = file_write($htier0dll, $m_fkeys, $cfgbytes) | |
6090 | $xraywrite = file_write($htier0dll, $xray1, $xraybytes) | |
6091 | getweaponsettings() | |
6092 | file_close($htier0dll) | |
6093 | EndFunc | |
6094 | ||
6095 | Func interpretkey($keytointerpret, $standard) | |
6096 | Local $key = StringLower($keytointerpret) | |
6097 | If $key = "mouse1" Then Return "01" | |
6098 | If $key = "mouse2" Then Return "02" | |
6099 | If $key = "mouse3" Then Return "04" | |
6100 | If $key = "mouse4" Then Return "05" | |
6101 | If $key = "mouse5" Then Return "06" | |
6102 | If $key = "lshift" Then Return "10" | |
6103 | If $key = "capslock" Then Return "14" | |
6104 | If $key = "tab" Then Return "09" | |
6105 | If $key = "lctrl" Then Return "11" | |
6106 | If $key = "rctrl" Then Return "A3" | |
6107 | If $key = "lalt" Then Return "A4" | |
6108 | If $key = "space" Then Return "20" | |
6109 | If $key = "a" Then Return "41" | |
6110 | If $key = "b" Then Return "42" | |
6111 | If $key = "c" Then Return "43" | |
6112 | If $key = "d" Then Return "44" | |
6113 | If $key = "e" Then Return "45" | |
6114 | If $key = "f" Then Return "46" | |
6115 | If $key = "g" Then Return "47" | |
6116 | If $key = "h" Then Return "48" | |
6117 | If $key = "i" Then Return "49" | |
6118 | If $key = "j" Then Return "4a" | |
6119 | If $key = "k" Then Return "4b" | |
6120 | If $key = "l" Then Return "4c" | |
6121 | If $key = "m" Then Return "4d" | |
6122 | If $key = "n" Then Return "4e" | |
6123 | If $key = "o" Then Return "4f" | |
6124 | If $key = "p" Then Return "50" | |
6125 | If $key = "q" Then Return "51" | |
6126 | If $key = "r" Then Return "52" | |
6127 | If $key = "s" Then Return "53" | |
6128 | If $key = "t" Then Return "54" | |
6129 | If $key = "u" Then Return "55" | |
6130 | If $key = "v" Then Return "56" | |
6131 | If $key = "w" Then Return "57" | |
6132 | If $key = "x" Then Return "58" | |
6133 | If $key = "y" Then Return "59" | |
6134 | If $key = "z" Then Return "5A" | |
6135 | If $key = "f1" Then Return "70" | |
6136 | If $key = "f2" Then Return "71" | |
6137 | If $key = "f3" Then Return "72" | |
6138 | If $key = "f4" Then Return "73" | |
6139 | If $key = "f5" Then Return "74" | |
6140 | If $key = "f6" Then Return "75" | |
6141 | If $key = "f7" Then Return "76" | |
6142 | If $key = "f8" Then Return "77" | |
6143 | If $key = "f9" Then Return "78" | |
6144 | If $key = "f10" Then Return "79" | |
6145 | If $key = "f11" Then Return "7A" | |
6146 | If $key = "f12" Then Return "7B" | |
6147 | If $key = "home" Then Return "24" | |
6148 | If $key = "end" Then Return "23" | |
6149 | If $key = "ins" Then Return "2D" | |
6150 | If $key = "del" Then Return "2E" | |
6151 | If $key = "pgup" Then Return "21" | |
6152 | If $key = "pgdn" Then Return "22" | |
6153 | If $key = "numpad0" Then Return "60" | |
6154 | If $key = "numpad1" Then Return "61" | |
6155 | If $key = "numpad2" Then Return "62" | |
6156 | If $key = "numpad3" Then Return "63" | |
6157 | If $key = "numpad4" Then Return "64" | |
6158 | If $key = "numpad5" Then Return "65" | |
6159 | If $key = "numpad6" Then Return "66" | |
6160 | If $key = "numpad7" Then Return "67" | |
6161 | If $key = "numpad8" Then Return "68" | |
6162 | If $key = "numpad9" Then Return "69" | |
6163 | If $key = "numpad," Then Return "6E" | |
6164 | If $key = "numpad+" Then Return "6B" | |
6165 | If $key = "numpad-" Then Return "6D" | |
6166 | If $key = "numpad*" Then Return "6A" | |
6167 | If $key = "numpad/" Then Return "6F" | |
6168 | If $key = "left" Then Return "25" | |
6169 | If $key = "up" Then Return "26" | |
6170 | If $key = "right" Then Return "27" | |
6171 | If $key = "down" Then Return "28" | |
6172 | If $key = "n1" Then Return "31" | |
6173 | If $key = "n2" Then Return "32" | |
6174 | If $key = "n3" Then Return "33" | |
6175 | If $key = "n4" Then Return "34" | |
6176 | If $key = "n5" Then Return "35" | |
6177 | If $key = "n6" Then Return "36" | |
6178 | If $key = "n7" Then Return "37" | |
6179 | If $key = "n8" Then Return "38" | |
6180 | If $key = "n9" Then Return "39" | |
6181 | If $key = "n0" Then Return "30" | |
6182 | If $key = "ß" Then Return "DB" | |
6183 | If $key = "´" Then Return "DD" | |
6184 | If $key = "^" Then Return "DC" | |
6185 | If $key = "+" Then Return "BB" | |
6186 | If $key = "#" Then Return "BF" | |
6187 | If $key = "-" Then Return "BD" | |
6188 | If $key = "." Then Return "BE" | |
6189 | If $key = "," Then Return "BC" | |
6190 | If $key = "break" Then Return "13" | |
6191 | If $key = "print" Then Return "2C" | |
6192 | If $key = "scrollock" Then Return "91" | |
6193 | If $key = "numlock" Then Return "90" | |
6194 | If $key = "<" Then Return "E2" | |
6195 | If $key = "backspace" Then Return "08" | |
6196 | If $key = "escape" Then Return "1B" | |
6197 | If $key = "enter" Then Return "0D" | |
6198 | Return $standard | |
6199 | EndFunc | |
6200 | ||
6201 | Func getweaponsettings() | |
6202 | Local $weaponarray = StringSplit("deagle,berettas,fiveseven,glock18,??,??,ak47,aug,awp,famas,g3sg1,??,galilar,m249,??,m4a4,mac10,??,p90,??,??,??,??,ump45,xm1014,bizon,mag7,negev,sawedsg,tec9,zeus,hkp2000,mp7,mp9,nova,p250,??,scar20,sg553,ssg08", ",") | |
6203 | Global $tmpstring = "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" | |
6204 | $count = 0 | |
6205 | Do | |
6206 | $count += 1 | |
6207 | $tmp = $weaponarray[$count] | |
6208 | If $tmp = "??" Then | |
6209 | $tmpstring &= String("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") | |
6210 | Else | |
6211 | $presetcount = 0 | |
6212 | Do | |
6213 | $presetcount += 1 | |
6214 | $tmp_x1 = StringTrimLeft(Hex(IniRead("weapons.ini", $tmp, $presetcount & " head", "80")), 6) | |
6215 | $tmp_x2 = StringTrimLeft(Hex(IniRead("weapons.ini", $tmp, $presetcount & " chest", "80")), 6) | |
6216 | $tmp_x3 = StringSplit(IniRead("weapons.ini", $tmp, $presetcount & " start", "1-3"), "-") | |
6217 | $tmp_x4 = StringSplit(IniRead("weapons.ini", $tmp, $presetcount & " pause", "1-3"), "-") | |
6218 | $tmp_x5 = StringTrimLeft(Hex(IniRead("weapons.ini", $tmp, $presetcount & " stop", "9")), 6) | |
6219 | $tmp_x6 = swapendian2("0x" & _fl(0.075)) | |
6220 | $tmpstring &= String($tmp_x1 & $tmp_x2 & StringTrimLeft(Hex($tmp_x3[1]), 6) & StringTrimLeft(Hex($tmp_x3[2]), 6) & StringTrimLeft(Hex($tmp_x4[1]), 6) & StringTrimLeft(Hex($tmp_x4[2]), 6) & $tmp_x5 & $tmp_x6 & "0000000000") | |
6221 | Until $presetcount = 5 | |
6222 | EndIf | |
6223 | Until $count = $weaponarray[0] | |
6224 | $lol = Binary($tmpstring) | |
6225 | file_write($htier0dll, $m_fw_settings, $lol) | |
6226 | EndFunc | |
6227 | ||
6228 | Func _fl($fval) | |
6229 | Return Hex(_winapi_floattoint($fval)) | |
6230 | EndFunc | |
6231 | ||
6232 | Func gcolor($ival) | |
6233 | Return ((1 / 255) * $ival) | |
6234 | EndFunc |