Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ghQuerys_SQLite -> ["&$I&"]"&$ATMP[$I]&@CRLF)
- NEXT
- ENDFUNC
- FUNC __SQLITE_REPORTERROR($HDB,$SFUNCTION,$SQUERY=DEFAULT ,$SERROR=DEFAULT ,$VRETURNVALUE=DEFAULT ,$CURERR=@ERROR,$CUREXT=@EXTENDED)
- IF @COMPILED THEN RETURN SETERROR($CURERR,$CUREXT)
- IF ISKEYWORD($SERROR)THEN $SERROR=_SQLITE_ERRMSG($HDB)
- IF ISKEYWORD($SQUERY)THEN $SQUERY=""
- LOCAL $SOUT="! SQLite.au3 Error"&@CRLF
- $SOUT&="--> Function: "&$SFUNCTION&@CRLF
- IF $SQUERY<>"" THEN $SOUT&="--> Query: "&$SQUERY&@CRLF
- $SOUT&="--> Error: "&$SERROR&@CRLF
- __SQLITE_PRINT($SOUT&@CRLF)
- IF NOT ISKEYWORD($VRETURNVALUE)THEN RETURN SETERROR($CURERR,$CUREXT,$VRETURNVALUE)
- RETURN SETERROR($CURERR,$CUREXT)
- ENDFUNC
- FUNC __SQLITE_SZSTRINGREAD($ISZPTR,$IMAXLEN=-1)
- IF $ISZPTR=0 THEN RETURN ""
- IF $__GHMSVCRTDLL_SQLITE<1 THEN $__GHMSVCRTDLL_SQLITE=DLLOPEN("msvcrt.dll")
- LOCAL $ASTRLEN=DLLCALL($__GHMSVCRTDLL_SQLITE,"ulong_ptr:cdecl","strlen","ptr",$ISZPTR)
- IF @ERROR THEN RETURN SETERROR(1,@ERROR,"")
- LOCAL $ILEN=$ASTRLEN[0]+1
- LOCAL $VSZSTRING=DLLSTRUCTCREATE("byte["&$ILEN&"]",$ISZPTR)
- IF @ERROR THEN RETURN SETERROR(2,@ERROR,"")
- LOCAL $ERR=0
- LOCAL $RTN=__SQLITE_UTF8STRUCTTOSTRING($VSZSTRING)
- IF @ERROR THEN
- $ERR=3
- ENDIF
- IF $IMAXLEN<=0 THEN
- RETURN SETERROR($ERR,@EXTENDED,$RTN)
- ELSE
- RETURN SETERROR($ERR,@EXTENDED,STRINGLEFT($RTN,$IMAXLEN))
- ENDIF
- ENDFUNC
- FUNC __SQLITE_SZFREE($PTR,$CURERR=@ERROR)
- IF $PTR<>0 THEN DLLCALL($G_HDLL_SQLITE,"none:cdecl","sqlite3_free","ptr",$PTR)
- SETERROR($CURERR)
- ENDFUNC
- FUNC __SQLITE_STRINGTOUTF8STRUCT($SSTRING)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","int","WideCharToMultiByte","uint",65001,"dword",0,"wstr",$SSTRING,"int",-1,"ptr",0,"int",0,"ptr",0,"ptr",0)
- IF @ERROR THEN RETURN SETERROR(1,@ERROR,"")
- LOCAL $TTEXT=DLLSTRUCTCREATE("char["&$ARESULT[0]&"]")
- $ARESULT=DLLCALL("Kernel32.dll","int","WideCharToMultiByte","uint",65001,"dword",0,"wstr",$SSTRING,"int",-1,"struct*",$TTEXT,"int",$ARESULT[0],"ptr",0,"ptr",0)
- IF @ERROR THEN RETURN SETERROR(2,@ERROR,"")
- RETURN $TTEXT
- ENDFUNC
- FUNC __SQLITE_UTF8STRUCTTOSTRING($TTEXT)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","int","MultiByteToWideChar","uint",65001,"dword",0,"struct*",$TTEXT,"int",-1,"ptr",0,"int",0)
- IF @ERROR THEN RETURN SETERROR(1,@ERROR,"")
- LOCAL $TWSTR=DLLSTRUCTCREATE("wchar["&$ARESULT[0]&"]")
- $ARESULT=DLLCALL("Kernel32.dll","int","MultiByteToWideChar","uint",65001,"dword",0,"struct*",$TTEXT,"int",-1,"struct*",$TWSTR,"int",$ARESULT[0])
- IF @ERROR THEN RETURN SETERROR(2,@ERROR,"")
- RETURN DLLSTRUCTGETDATA($TWSTR,1)
- ENDFUNC
- FUNC __SQLITE_CONSOLEWRITE($STEXT)
- CONSOLEWRITE($STEXT)
- ENDFUNC
- FUNC __SQLITE_DOWNLOAD_SQLITE3DLL($TEMPFILE,$VERSION)
- LOCAL $URL="http://www.autoitscript.com/autoit3/files/beta/autoit/archive/sqlite/SQLite3"&$VERSION
- LOCAL $RET
- IF @AUTOITX64=0 THEN
- $RET=INETGET($URL&".dll",$TEMPFILE,1)
- ELSE
- $RET=INETGET($URL&"_x64.dll",$TEMPFILE,1)
- ENDIF
- LOCAL $ERROR=@ERROR
- FILESETTIME($TEMPFILE,__SQLITE_INLINE_MODIFIED(),0)
- RETURN SETERROR($ERROR,0,$RET)
- ENDFUNC
- FUNC __SQLITE_PRINT($STEXT)
- IF $G_SPRINTCALLBACK_SQLITE THEN
- IF $G_BUTF8ERRORMSG_SQLITE THEN
- LOCAL $TSTR8=__SQLITE_STRINGTOUTF8STRUCT($STEXT)
- CALL($G_SPRINTCALLBACK_SQLITE,DLLSTRUCTGETDATA($TSTR8,1))
- ELSE
- CALL($G_SPRINTCALLBACK_SQLITE,$STEXT)
- ENDIF
- ENDIF
- ENDFUNC
- #endregion SQLite.au3 Internal Functions
- FUNC __SQLITE_INLINE_MODIFIED()
- RETURN "20100830083416"
- ENDFUNC
- FUNC __SQLITE_INLINE_VERSION()
- RETURN "300700200"
- ENDFUNC
- FUNC _HEXTOSTRING($STRHEX)
- IF STRINGLEFT($STRHEX,2)="0x" THEN RETURN BINARYTOSTRING($STRHEX)
- RETURN BINARYTOSTRING("0x"&$STRHEX)
- ENDFUNC
- FUNC _STRINGBETWEEN($S_STRING,$S_START,$S_END,$V_CASE=-1)
- LOCAL $S_CASE=""
- IF $V_CASE=DEFAULT OR $V_CASE=-1 THEN $S_CASE="(?i)"
- LOCAL $S_PATTERN_ESCAPE="(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)"
- $S_START=STRINGREGEXPREPLACE($S_START,$S_PATTERN_ESCAPE,"\\$1")
- $S_END=STRINGREGEXPREPLACE($S_END,$S_PATTERN_ESCAPE,"\\$1")
- IF $S_START="" THEN $S_START="\A"
- IF $S_END="" THEN $S_END="\z"
- LOCAL $A_RET=STRINGREGEXP($S_STRING,"(?s)"&$S_CASE&$S_START&"(.*?)"&$S_END,3)
- IF @ERROR THEN RETURN SETERROR(1,0,0)
- RETURN $A_RET
- ENDFUNC
- FUNC _STRINGENCRYPT($I_ENCRYPT,$S_ENCRYPTTEXT,$S_ENCRYPTPASSWORD,$I_ENCRYPTLEVEL=1)
- IF $I_ENCRYPT<>0 AND $I_ENCRYPT<>1 THEN
- SETERROR(1,0,"")
- ELSEIF $S_ENCRYPTTEXT="" OR $S_ENCRYPTPASSWORD="" THEN
- SETERROR(1,0,"")
- ELSE
- IF NUMBER($I_ENCRYPTLEVEL)<=0 OR INT($I_ENCRYPTLEVEL)<>$I_ENCRYPTLEVEL THEN $I_ENCRYPTLEVEL=1
- LOCAL $V_ENCRYPTMODIFIED
- LOCAL $I_ENCRYPTCOUNTH
- LOCAL $I_ENCRYPTCOUNTG
- LOCAL $V_ENCRYPTSWAP
- LOCAL $AV_ENCRYPTBOX[256][2]
- LOCAL $I_ENCRYPTCOUNTA
- LOCAL $I_ENCRYPTCOUNTB
- LOCAL $I_ENCRYPTCOUNTC
- LOCAL $I_ENCRYPTCOUNTD
- LOCAL $I_ENCRYPTCOUNTE
- LOCAL $V_ENCRYPTCIPHER
- LOCAL $V_ENCRYPTCIPHERBY
- IF $I_ENCRYPT=1 THEN
- FOR $I_ENCRYPTCOUNTF=0 TO $I_ENCRYPTLEVEL STEP 1
- $I_ENCRYPTCOUNTG=""
- $I_ENCRYPTCOUNTH=""
- $V_ENCRYPTMODIFIED=""
- FOR $I_ENCRYPTCOUNTG=1 TO STRINGLEN($S_ENCRYPTTEXT)
- IF $I_ENCRYPTCOUNTH=STRINGLEN($S_ENCRYPTPASSWORD)THEN
- $I_ENCRYPTCOUNTH=1
- ELSE
- $I_ENCRYPTCOUNTH+=1
- ENDIF
- $V_ENCRYPTMODIFIED=$V_ENCRYPTMODIFIED&CHR(BITXOR(ASC(STRINGMID($S_ENCRYPTTEXT,$I_ENCRYPTCOUNTG,1)),ASC(STRINGMID($S_ENCRYPTPASSWORD,$I_ENCRYPTCOUNTH,1)),255))
- NEXT
- $S_ENCRYPTTEXT=$V_ENCRYPTMODIFIED
- $I_ENCRYPTCOUNTA=""
- $I_ENCRYPTCOUNTB=0
- $I_ENCRYPTCOUNTC=""
- $I_ENCRYPTCOUNTD=""
- $I_ENCRYPTCOUNTE=""
- $V_ENCRYPTCIPHERBY=""
- $V_ENCRYPTCIPHER=""
- $V_ENCRYPTSWAP=""
- $AV_ENCRYPTBOX=""
- LOCAL $AV_ENCRYPTBOX[256][2]
- FOR $I_ENCRYPTCOUNTA=0 TO 255
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]=ASC(STRINGMID($S_ENCRYPTPASSWORD,MOD($I_ENCRYPTCOUNTA,STRINGLEN($S_ENCRYPTPASSWORD))+1,1))
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]=$I_ENCRYPTCOUNTA
- NEXT
- FOR $I_ENCRYPTCOUNTA=0 TO 255
- $I_ENCRYPTCOUNTB=MOD(($I_ENCRYPTCOUNTB+$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]+$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]),256)
- $V_ENCRYPTSWAP=$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]=$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]=$V_ENCRYPTSWAP
- NEXT
- FOR $I_ENCRYPTCOUNTA=1 TO STRINGLEN($S_ENCRYPTTEXT)
- $I_ENCRYPTCOUNTC=MOD(($I_ENCRYPTCOUNTC+1),256)
- $I_ENCRYPTCOUNTD=MOD(($I_ENCRYPTCOUNTD+$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]),256)
- $I_ENCRYPTCOUNTE=$AV_ENCRYPTBOX[MOD(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]+$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]),256)][0]
- $V_ENCRYPTCIPHERBY=BITXOR(ASC(STRINGMID($S_ENCRYPTTEXT,$I_ENCRYPTCOUNTA,1)),$I_ENCRYPTCOUNTE)
- $V_ENCRYPTCIPHER&=HEX($V_ENCRYPTCIPHERBY,2)
- NEXT
- $S_ENCRYPTTEXT=$V_ENCRYPTCIPHER
- NEXT
- ELSE
- FOR $I_ENCRYPTCOUNTF=0 TO $I_ENCRYPTLEVEL STEP 1
- $I_ENCRYPTCOUNTB=0
- $I_ENCRYPTCOUNTC=""
- $I_ENCRYPTCOUNTD=""
- $I_ENCRYPTCOUNTE=""
- $V_ENCRYPTCIPHERBY=""
- $V_ENCRYPTCIPHER=""
- $V_ENCRYPTSWAP=""
- $AV_ENCRYPTBOX=""
- LOCAL $AV_ENCRYPTBOX[256][2]
- FOR $I_ENCRYPTCOUNTA=0 TO 255
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]=ASC(STRINGMID($S_ENCRYPTPASSWORD,MOD($I_ENCRYPTCOUNTA,STRINGLEN($S_ENCRYPTPASSWORD))+1,1))
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]=$I_ENCRYPTCOUNTA
- NEXT
- FOR $I_ENCRYPTCOUNTA=0 TO 255
- $I_ENCRYPTCOUNTB=MOD(($I_ENCRYPTCOUNTB+$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]+$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]),256)
- $V_ENCRYPTSWAP=$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]=$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]=$V_ENCRYPTSWAP
- NEXT
- FOR $I_ENCRYPTCOUNTA=1 TO STRINGLEN($S_ENCRYPTTEXT)STEP 2
- $I_ENCRYPTCOUNTC=MOD(($I_ENCRYPTCOUNTC+1),256)
- $I_ENCRYPTCOUNTD=MOD(($I_ENCRYPTCOUNTD+$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]),256)
- $I_ENCRYPTCOUNTE=$AV_ENCRYPTBOX[MOD(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]+$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]),256)][0]
- $V_ENCRYPTCIPHERBY=BITXOR(DEC(STRINGMID($S_ENCRYPTTEXT,$I_ENCRYPTCOUNTA,2)),$I_ENCRYPTCOUNTE)
- $V_ENCRYPTCIPHER=$V_ENCRYPTCIPHER&CHR($V_ENCRYPTCIPHERBY)
- NEXT
- $S_ENCRYPTTEXT=$V_ENCRYPTCIPHER
- $I_ENCRYPTCOUNTG=""
- $I_ENCRYPTCOUNTH=""
- $V_ENCRYPTMODIFIED=""
- FOR $I_ENCRYPTCOUNTG=1 TO STRINGLEN($S_ENCRYPTTEXT)
- IF $I_ENCRYPTCOUNTH=STRINGLEN($S_ENCRYPTPASSWORD)THEN
- $I_ENCRYPTCOUNTH=1
- ELSE
- $I_ENCRYPTCOUNTH+=1
- ENDIF
- $V_ENCRYPTMODIFIED&=CHR(BITXOR(ASC(STRINGMID($S_ENCRYPTTEXT,$I_ENCRYPTCOUNTG,1)),ASC(STRINGMID($S_ENCRYPTPASSWORD,$I_ENCRYPTCOUNTH,1)),255))
- NEXT
- $S_ENCRYPTTEXT=$V_ENCRYPTMODIFIED
- NEXT
- ENDIF
- RETURN $S_ENCRYPTTEXT
- ENDIF
- ENDFUNC
- FUNC _STRINGEXPLODE($SSTRING,$SDELIMITER,$ILIMIT=0)
- IF $ILIMIT>0 THEN
- $SSTRING=STRINGREPLACE($SSTRING,$SDELIMITER,CHR(0),$ILIMIT)
- $SDELIMITER=CHR(0)
- ELSEIF $ILIMIT<0 THEN
- LOCAL $IINDEX=STRINGINSTR($SSTRING,$SDELIMITER,0,$ILIMIT)
- IF $IINDEX THEN
- $SSTRING=STRINGLEFT($SSTRING,$IINDEX-1)
- ENDIF
- ENDIF
- RETURN STRINGSPLIT($SSTRING,$SDELIMITER,3)
- ENDFUNC
- FUNC _STRINGINSERT($S_STRING,$S_INSERTSTRING,$I_POSITION)
- LOCAL $I_LENGTH,$S_START,$S_END
- IF $S_STRING="" OR (NOT ISSTRING($S_STRING))THEN
- RETURN SETERROR(1,0,$S_STRING)
- ELSEIF $S_INSERTSTRING="" OR (NOT ISSTRING($S_STRING))THEN
- RETURN SETERROR(2,0,$S_STRING)
- ELSE
- $I_LENGTH=STRINGLEN($S_STRING)
- IF (ABS($I_POSITION)>$I_LENGTH)OR (NOT ISINT($I_POSITION))THEN
- RETURN SETERROR(3,0,$S_STRING)
- ENDIF
- ENDIF
- IF $I_POSITION=0 THEN
- RETURN $S_INSERTSTRING&$S_STRING
- ELSEIF $I_POSITION>0 THEN
- $S_START=STRINGLEFT($S_STRING,$I_POSITION)
- $S_END=STRINGRIGHT($S_STRING,$I_LENGTH-$I_POSITION)
- RETURN $S_START&$S_INSERTSTRING&$S_END
- ELSEIF $I_POSITION<0 THEN
- $S_START=STRINGLEFT($S_STRING,ABS($I_LENGTH+$I_POSITION))
- $S_END=STRINGRIGHT($S_STRING,ABS($I_POSITION))
- RETURN $S_START&$S_INSERTSTRING&$S_END
- ENDIF
- ENDFUNC
- FUNC _STRINGPROPER($S_STRING)
- LOCAL $IX=0
- LOCAL $CAPNEXT=1
- LOCAL $S_NSTR=""
- LOCAL $S_CURCHAR
- FOR $IX=1 TO STRINGLEN($S_STRING)
- $S_CURCHAR=STRINGMID($S_STRING,$IX,1)
- SELECT
- CASE $CAPNEXT=1
- IF STRINGREGEXP($S_CURCHAR,"[a-zA-ZÛ-Û’Ú‘Å“â€Úº]")THEN
- $S_CURCHAR=STRINGUPPER($S_CURCHAR)
- $CAPNEXT=0
- ENDIF
- CASE NOT STRINGREGEXP($S_CURCHAR,"[a-zA-ZÛ-Û’Ú‘Å“â€Úº]")
- $CAPNEXT=1
- CASE ELSE
- $S_CURCHAR=STRINGLOWER($S_CURCHAR)
- ENDSELECT
- $S_NSTR&=$S_CURCHAR
- NEXT
- RETURN $S_NSTR
- ENDFUNC
- FUNC _STRINGREPEAT($SSTRING,$IREPEATCOUNT)
- LOCAL $SRESULT
- SELECT
- CASE NOT STRINGISINT($IREPEATCOUNT)
- SETERROR(1)
- RETURN ""
- CASE STRINGLEN($SSTRING)<1
- SETERROR(1)
- RETURN ""
- CASE $IREPEATCOUNT<=0
- SETERROR(1)
- RETURN ""
- CASE ELSE
- FOR $ICOUNT=1 TO $IREPEATCOUNT
- $SRESULT&=$SSTRING
- NEXT
- RETURN $SRESULT
- ENDSELECT
- ENDFUNC
- FUNC _STRINGREVERSE($S_STRING)
- LOCAL $I_LEN=STRINGLEN($S_STRING)
- IF $I_LEN<1 THEN RETURN SETERROR(1,0,"")
- LOCAL $T_CHARS=DLLSTRUCTCREATE("char["&$I_LEN+1&"]")
- DLLSTRUCTSETDATA($T_CHARS,1,$S_STRING)
- LOCAL $A_REV=DLLCALL("msvcrt.dll","ptr:cdecl","_strrev","struct*",$T_CHARS)
- IF @ERROR OR $A_REV[0]=0 THEN RETURN SETERROR(2,0,"")
- RETURN DLLSTRUCTGETDATA($T_CHARS,1)
- ENDFUNC
- FUNC _STRINGTOHEX($STRCHAR)
- RETURN HEX(STRINGTOBINARY($STRCHAR))
- ENDFUNC
- GLOBAL CONST $ERROR_NO_TOKEN=1008
- GLOBAL CONST $SE_ASSIGNPRIMARYTOKEN_NAME="SeAssignPrimaryTokenPrivilege"
- GLOBAL CONST $SE_AUDIT_NAME="SeAuditPrivilege"
- GLOBAL CONST $SE_BACKUP_NAME="SeBackupPrivilege"
- GLOBAL CONST $SE_CHANGE_NOTIFY_NAME="SeChangeNotifyPrivilege"
- GLOBAL CONST $SE_CREATE_GLOBAL_NAME="SeCreateGlobalPrivilege"
- GLOBAL CONST $SE_CREATE_PAGEFILE_NAME="SeCreatePagefilePrivilege"
- GLOBAL CONST $SE_CREATE_PERMANENT_NAME="SeCreatePermanentPrivilege"
- GLOBAL CONST $SE_CREATE_TOKEN_NAME="SeCreateTokenPrivilege"
- GLOBAL CONST $SE_DEBUG_NAME="SeDebugPrivilege"
- GLOBAL CONST $SE_ENABLE_DELEGATION_NAME="SeEnableDelegationPrivilege"
- GLOBAL CONST $SE_IMPERSONATE_NAME="SeImpersonatePrivilege"
- GLOBAL CONST $SE_INC_BASE_PRIORITY_NAME="SeIncreaseBasePriorityPrivilege"
- GLOBAL CONST $SE_INCREASE_QUOTA_NAME="SeIncreaseQuotaPrivilege"
- GLOBAL CONST $SE_LOAD_DRIVER_NAME="SeLoadDriverPrivilege"
- GLOBAL CONST $SE_LOCK_MEMORY_NAME="SeLockMemoryPrivilege"
- GLOBAL CONST $SE_MACHINE_ACCOUNT_NAME="SeMachineAccountPrivilege"
- GLOBAL CONST $SE_MANAGE_VOLUME_NAME="SeManageVolumePrivilege"
- GLOBAL CONST $SE_PROF_SINGLE_PROCESS_NAME="SeProfileSingleProcessPrivilege"
- GLOBAL CONST $SE_REMOTE_SHUTDOWN_NAME="SeRemoteShutdownPrivilege"
- GLOBAL CONST $SE_RESTORE_NAME="SeRestorePrivilege"
- GLOBAL CONST $SE_SECURITY_NAME="SeSecurityPrivilege"
- GLOBAL CONST $SE_SHUTDOWN_NAME="SeShutdownPrivilege"
- GLOBAL CONST $SE_SYNC_AGENT_NAME="SeSyncAgentPrivilege"
- GLOBAL CONST $SE_SYSTEM_ENVIRONMENT_NAME="SeSystemEnvironmentPrivilege"
- GLOBAL CONST $SE_SYSTEM_PROFILE_NAME="SeSystemProfilePrivilege"
- GLOBAL CONST $SE_SYSTEMTIME_NAME="SeSystemtimePrivilege"
- GLOBAL CONST $SE_TAKE_OWNERSHIP_NAME="SeTakeOwnershipPrivilege"
- GLOBAL CONST $SE_TCB_NAME="SeTcbPrivilege"
- GLOBAL CONST $SE_UNSOLICITED_INPUT_NAME="SeUnsolicitedInputPrivilege"
- GLOBAL CONST $SE_UNDOCK_NAME="SeUndockPrivilege"
- GLOBAL CONST $SE_PRIVILEGE_ENABLED_BY_DEFAULT=1
- GLOBAL CONST $SE_PRIVILEGE_ENABLED=2
- GLOBAL CONST $SE_PRIVILEGE_REMOVED=4
- GLOBAL CONST $SE_PRIVILEGE_USED_FOR_ACCESS=-2147483648
- GLOBAL CONST $SE_GROUP_MANDATORY=1
- GLOBAL CONST $SE_GROUP_ENABLED_BY_DEFAULT=2
- GLOBAL CONST $SE_GROUP_ENABLED=4
- GLOBAL CONST $SE_GROUP_OWNER=8
- GLOBAL CONST $SE_GROUP_USE_FOR_DENY_ONLY=16
- GLOBAL CONST $SE_GROUP_INTEGRITY=32
- GLOBAL CONST $SE_GROUP_INTEGRITY_ENABLED=64
- GLOBAL CONST $SE_GROUP_RESOURCE=536870912
- GLOBAL CONST $SE_GROUP_LOGON_ID=-1073741824
- GLOBAL ENUM $TOKENPRIMARY=1,$TOKENIMPERSONATION
- GLOBAL ENUM $SECURITYANONYMOUS=0,$SECURITYIDENTIFICATION,$SECURITYIMPERSONATION,$SECURITYDELEGATION
- GLOBAL ENUM $TOKENUSER=1,$TOKENGROUPS,$TOKENPRIVILEGES,$TOKENOWNER,$TOKENPRIMARYGROUP,$TOKENDEFAULTDACL,$TOKENSOURCE,$TOKENTYPE,$TOKENIMPERSONATIONLEVEL,$TOKENSTATISTICS,$TOKENRESTRICTEDSIDS,$TOKENSESSIONID,$TOKENGROUPSANDPRIVILEGES,$TOKENSESSIONREFERENCE,$TOKENSANDBOXINERT,$TOKENAUDITPOLICY,$TOKENORIGIN,$TOKENELEVATIONTYPE,$TOKENLINKEDTOKEN,$TOKENELEVATION,$TOKENHASRESTRICTIONS,$TOKENACCESSINFORMATION,$TOKENVIRTUALIZATIONALLOWED,$TOKENVIRTUALIZATIONENABLED,$TOKENINTEGRITYLEVEL,$TOKENUIACCESS,$TOKENMANDATORYPOLICY,$TOKENLOGONSID
- GLOBAL CONST $TOKEN_ASSIGN_PRIMARY=1
- GLOBAL CONST $TOKEN_DUPLICATE=2
- GLOBAL CONST $TOKEN_IMPERSONATE=4
- GLOBAL CONST $TOKEN_QUERY=8
- GLOBAL CONST $TOKEN_QUERY_SOURCE=16
- GLOBAL CONST $TOKEN_ADJUST_PRIVILEGES=32
- GLOBAL CONST $TOKEN_ADJUST_GROUPS=64
- GLOBAL CONST $TOKEN_ADJUST_DEFAULT=128
- GLOBAL CONST $TOKEN_ADJUST_SESSIONID=256
- GLOBAL CONST $TOKEN_ALL_ACCESS=983551
- GLOBAL CONST $TOKEN_READ=131080
- GLOBAL CONST $TOKEN_WRITE=131296
- GLOBAL CONST $TOKEN_EXECUTE=131072
- GLOBAL CONST $TOKEN_HAS_TRAVERSE_PRIVILEGE=1
- GLOBAL CONST $TOKEN_HAS_BACKUP_PRIVILEGE=2
- GLOBAL CONST $TOKEN_HAS_RESTORE_PRIVILEGE=4
- GLOBAL CONST $TOKEN_HAS_ADMIN_GROUP=8
- GLOBAL CONST $TOKEN_IS_RESTRICTED=16
- GLOBAL CONST $TOKEN_SESSION_NOT_REFERENCED=32
- GLOBAL CONST $TOKEN_SANDBOX_INERT=64
- GLOBAL CONST $TOKEN_HAS_IMPERSONATE_PRIVILEGE=128
- GLOBAL CONST $RIGHTS_DELETE=65536
- GLOBAL CONST $READ_CONTROL=131072
- GLOBAL CONST $WRITE_DAC=262144
- GLOBAL CONST $WRITE_OWNER=524288
- GLOBAL CONST $SYNCHRONIZE=1048576
- GLOBAL CONST $STANDARD_RIGHTS_REQUIRED=983040
- GLOBAL CONST $STANDARD_RIGHTS_READ=$READ_CONTROL
- GLOBAL CONST $STANDARD_RIGHTS_WRITE=$READ_CONTROL
- GLOBAL CONST $STANDARD_RIGHTS_EXECUTE=$READ_CONTROL
- GLOBAL CONST $STANDARD_RIGHTS_ALL=2031616
- GLOBAL CONST $SPECIFIC_RIGHTS_ALL=65535
- GLOBAL ENUM $NOT_USED_ACCESS=0,$GRANT_ACCESS,$SET_ACCESS,$DENY_ACCESS,$REVOKE_ACCESS,$SET_AUDIT_SUCCESS,$SET_AUDIT_FAILURE
- GLOBAL ENUM $TRUSTEE_IS_UNKNOWN=0,$TRUSTEE_IS_USER,$TRUSTEE_IS_GROUP,$TRUSTEE_IS_DOMAIN,$TRUSTEE_IS_ALIAS,$TRUSTEE_IS_WELL_KNOWN_GROUP,$TRUSTEE_IS_DELETED,$TRUSTEE_IS_INVALID,$TRUSTEE_IS_COMPUTER
- GLOBAL CONST $LOGON_WITH_PROFILE=1
- GLOBAL CONST $LOGON_NETCREDENTIALS_ONLY=2
- GLOBAL ENUM $SIDTYPEUSER=1,$SIDTYPEGROUP,$SIDTYPEDOMAIN,$SIDTYPEALIAS,$SIDTYPEWELLKNOWNGROUP,$SIDTYPEDELETEDACCOUNT,$SIDTYPEINVALID,$SIDTYPEUNKNOWN,$SIDTYPECOMPUTER,$SIDTYPELABEL
- GLOBAL CONST $SID_ADMINISTRATORS="S-1-5-32-544"
- GLOBAL CONST $SID_USERS="S-1-5-32-545"
- GLOBAL CONST $SID_GUESTS="S-1-5-32-546"
- GLOBAL CONST $SID_ACCOUNT_OPERATORS="S-1-5-32-548"
- GLOBAL CONST $SID_SERVER_OPERATORS="S-1-5-32-549"
- GLOBAL CONST $SID_PRINT_OPERATORS="S-1-5-32-550"
- GLOBAL CONST $SID_BACKUP_OPERATORS="S-1-5-32-551"
- GLOBAL CONST $SID_REPLICATOR="S-1-5-32-552"
- GLOBAL CONST $SID_OWNER="S-1-3-0"
- GLOBAL CONST $SID_EVERYONE="S-1-1-0"
- GLOBAL CONST $SID_NETWORK="S-1-5-2"
- GLOBAL CONST $SID_INTERACTIVE="S-1-5-4"
- GLOBAL CONST $SID_SYSTEM="S-1-5-18"
- GLOBAL CONST $SID_AUTHENTICATED_USERS="S-1-5-11"
- GLOBAL CONST $SID_SCHANNEL_AUTHENTICATION="S-1-5-64-14"
- GLOBAL CONST $SID_DIGEST_AUTHENTICATION="S-1-5-64-21"
- GLOBAL CONST $SID_NT_SERVICE="S-1-5-80"
- GLOBAL CONST $SID_UNTRUSTED_MANDATORY_LEVEL="S-1-16-0"
- GLOBAL CONST $SID_LOW_MANDATORY_LEVEL="S-1-16-4096"
- GLOBAL CONST $SID_MEDIUM_MANDATORY_LEVEL="S-1-16-8192"
- GLOBAL CONST $SID_MEDIUM_PLUS_MANDATORY_LEVEL="S-1-16-8448"
- GLOBAL CONST $SID_HIGH_MANDATORY_LEVEL="S-1-16-12288"
- GLOBAL CONST $SID_SYSTEM_MANDATORY_LEVEL="S-1-16-16384"
- GLOBAL CONST $SID_PROTECTED_PROCESS_MANDATORY_LEVEL="S-1-16-20480"
- GLOBAL CONST $SID_SECURE_PROCESS_MANDATORY_LEVEL="S-1-16-28672"
- GLOBAL CONST $SID_ALL_SERVICES="S-1-5-80-0"
- FUNC _SECURITY__ADJUSTTOKENPRIVILEGES($HTOKEN,$FDISABLEALL,$PNEWSTATE,$IBUFFERLEN,$PPREVSTATE=0,$PREQUIRED=0)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","AdjustTokenPrivileges","handle",$HTOKEN,"bool",$FDISABLEALL,"struct*",$PNEWSTATE,"dword",$IBUFFERLEN,"struct*",$PPREVSTATE,"struct*",$PREQUIRED)
- IF @ERROR THEN RETURN SETERROR(1,@EXTENDED,FALSE )
- RETURN NOT ($ACALL[0]=0)
- ENDFUNC
- FUNC _SECURITY__CREATEPROCESSWITHTOKEN($HTOKEN,$ILOGONFLAGS,$SCOMMANDLINE,$ICREATIONFLAGS,$SCURDIR,$TSTARTUPINFO,$TPROCESS_INFORMATION)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","CreateProcessWithTokenW","handle",$HTOKEN,"dword",$ILOGONFLAGS,"ptr",0,"wstr",$SCOMMANDLINE,"dword",$ICREATIONFLAGS,"struct*",0,"wstr",$SCURDIR,"struct*",$TSTARTUPINFO,"struct*",$TPROCESS_INFORMATION)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(1,@EXTENDED,FALSE )
- RETURN TRUE
- ENDFUNC
- FUNC _SECURITY__DUPLICATETOKENEX($HEXISTINGTOKEN,$IDESIREDACCESS,$IIMPERSONATIONLEVEL,$ITOKENTYPE)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","DuplicateTokenEx","handle",$HEXISTINGTOKEN,"dword",$IDESIREDACCESS,"struct*",0,"int",$IIMPERSONATIONLEVEL,"int",$ITOKENTYPE,"handle*",0)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(1,@EXTENDED,0)
- RETURN $ACALL[6]
- ENDFUNC
- FUNC _SECURITY__GETACCOUNTSID($SACCOUNT,$SSYSTEM="")
- LOCAL $AACCT=_SECURITY__LOOKUPACCOUNTNAME($SACCOUNT,$SSYSTEM)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- IF ISARRAY($AACCT)THEN RETURN _SECURITY__STRINGSIDTOSID($AACCT[0])
- RETURN ""
- ENDFUNC
- FUNC _SECURITY__GETLENGTHSID($PSID)
- IF NOT _SECURITY__ISVALIDSID($PSID)THEN RETURN SETERROR(1,@EXTENDED,0)
- LOCAL $ACALL=DLLCALL("advapi32.dll","dword","GetLengthSid","struct*",$PSID)
- IF @ERROR THEN RETURN SETERROR(2,@EXTENDED,0)
- RETURN $ACALL[0]
- ENDFUNC
- FUNC _SECURITY__GETTOKENINFORMATION($HTOKEN,$ICLASS)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","GetTokenInformation","handle",$HTOKEN,"int",$ICLASS,"struct*",0,"dword",0,"dword*",0)
- IF @ERROR OR NOT $ACALL[5]THEN RETURN SETERROR(1,@EXTENDED,0)
- LOCAL $ILEN=$ACALL[5]
- LOCAL $TBUFFER=DLLSTRUCTCREATE("byte["&$ILEN&"]")
- $ACALL=DLLCALL("advapi32.dll","bool","GetTokenInformation","handle",$HTOKEN,"int",$ICLASS,"struct*",$TBUFFER,"dword",DLLSTRUCTGETSIZE($TBUFFER),"dword*",0)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(2,@EXTENDED,0)
- RETURN $TBUFFER
- ENDFUNC
- FUNC _SECURITY__IMPERSONATESELF($ILEVEL=$SECURITYIMPERSONATION)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","ImpersonateSelf","int",$ILEVEL)
- IF @ERROR THEN RETURN SETERROR(1,@EXTENDED,FALSE )
- RETURN NOT ($ACALL[0]=0)
- ENDFUNC
- FUNC _SECURITY__ISVALIDSID($PSID)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","IsValidSid","struct*",$PSID)
- IF @ERROR THEN RETURN SETERROR(1,@EXTENDED,FALSE )
- RETURN NOT ($ACALL[0]=0)
- ENDFUNC
- FUNC _SECURITY__LOOKUPACCOUNTNAME($SACCOUNT,$SSYSTEM="")
- LOCAL $TDATA=DLLSTRUCTCREATE("byte SID[256]")
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","LookupAccountNameW","wstr",$SSYSTEM,"wstr",$SACCOUNT,"struct*",$TDATA,"dword*",DLLSTRUCTGETSIZE($TDATA),"wstr","","dword*",DLLSTRUCTGETSIZE($TDATA),"int*",0)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(1,@EXTENDED,0)
- LOCAL $AACCT[3]
- $AACCT[0]=_SECURITY__SIDTOSTRINGSID(DLLSTRUCTGETPTR($TDATA,"SID"))
- $AACCT[1]=$ACALL[5]
- $AACCT[2]=$ACALL[7]
- RETURN $AACCT
- ENDFUNC
- FUNC _SECURITY__LOOKUPACCOUNTSID($VSID,$SSYSTEM="")
- LOCAL $PSID,$AACCT[3]
- IF ISSTRING($VSID)THEN
- $PSID=_SECURITY__STRINGSIDTOSID($VSID)
- ELSE
- $PSID=$VSID
- ENDIF
- IF NOT _SECURITY__ISVALIDSID($PSID)THEN RETURN SETERROR(1,@EXTENDED,0)
- LOCAL $TYPESYSTEM="ptr"
- IF $SSYSTEM THEN $TYPESYSTEM="wstr"
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","LookupAccountSidW",$TYPESYSTEM,$SSYSTEM,"struct*",$PSID,"wstr","","dword*",65536,"wstr","","dword*",65536,"int*",0)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(2,@EXTENDED,0)
- LOCAL $AACCT[3]
- $AACCT[0]=$ACALL[3]
- $AACCT[1]=$ACALL[5]
- $AACCT[2]=$ACALL[7]
- RETURN $AACCT
- ENDFUNC
- FUNC _SECURITY__LOOKUPPRIVILEGEVALUE($SSYSTEM,$SNAME)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","LookupPrivilegeValueW","wstr",$SSYSTEM,"wstr",$SNAME,"int64*",0)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(1,@EXTENDED,0)
- RETURN $ACALL[3]
- ENDFUNC
- FUNC _SECURITY__OPENPROCESSTOKEN($HPROCESS,$IACCESS)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","OpenProcessToken","handle",$HPROCESS,"dword",$IACCESS,"handle*",0)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(1,@EXTENDED,0)
- RETURN $ACALL[3]
- ENDFUNC
- FUNC _SECURITY__OPENTHREADTOKEN($IACCESS,$HTHREAD=0,$FOPENASSELF=FALSE )
- IF $HTHREAD=0 THEN $HTHREAD=_WINAPI_GETCURRENTTHREAD()
- IF @ERROR THEN RETURN SETERROR(1,@EXTENDED,0)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","OpenThreadToken","handle",$HTHREAD,"dword",$IACCESS,"bool",$FOPENASSELF,"handle*",0)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(2,@EXTENDED,0)
- RETURN $ACALL[4]
- ENDFUNC
- FUNC _SECURITY__OPENTHREADTOKENEX($IACCESS,$HTHREAD=0,$FOPENASSELF=FALSE )
- LOCAL $HTOKEN=_SECURITY__OPENTHREADTOKEN($IACCESS,$HTHREAD,$FOPENASSELF)
- IF $HTOKEN=0 THEN
- IF _WINAPI_GETLASTERROR()<>$ERROR_NO_TOKEN THEN RETURN SETERROR(3,_WINAPI_GETLASTERROR(),0)
- IF NOT _SECURITY__IMPERSONATESELF()THEN RETURN SETERROR(1,_WINAPI_GETLASTERROR(),0)
- $HTOKEN=_SECURITY__OPENTHREADTOKEN($IACCESS,$HTHREAD,$FOPENASSELF)
- IF $HTOKEN=0 THEN RETURN SETERROR(2,_WINAPI_GETLASTERROR(),0)
- ENDIF
- RETURN $HTOKEN
- ENDFUNC
- FUNC _SECURITY__SETPRIVILEGE($HTOKEN,$SPRIVILEGE,$FENABLE)
- LOCAL $ILUID=_SECURITY__LOOKUPPRIVILEGEVALUE("",$SPRIVILEGE)
- IF $ILUID=0 THEN RETURN SETERROR(1,@EXTENDED,FALSE )
- LOCAL $TCURRSTATE=DLLSTRUCTCREATE($TAGTOKEN_PRIVILEGES)
- LOCAL $ICURRSTATE=DLLSTRUCTGETSIZE($TCURRSTATE)
- LOCAL $TPREVSTATE=DLLSTRUCTCREATE($TAGTOKEN_PRIVILEGES)
- LOCAL $IPREVSTATE=DLLSTRUCTGETSIZE($TPREVSTATE)
- LOCAL $TREQUIRED=DLLSTRUCTCREATE("int Data")
- DLLSTRUCTSETDATA($TCURRSTATE,"Count",1)
- DLLSTRUCTSETDATA($TCURRSTATE,"LUID",$ILUID)
- IF NOT _SECURITY__ADJUSTTOKENPRIVILEGES($HTOKEN,FALSE ,$TCURRSTATE,$ICURRSTATE,$TPREVSTATE,$TREQUIRED)THEN RETURN SETERROR(2,@ERROR,FALSE )
- DLLSTRUCTSETDATA($TPREVSTATE,"Count",1)
- DLLSTRUCTSETDATA($TPREVSTATE,"LUID",$ILUID)
- LOCAL $IATTRIBUTES=DLLSTRUCTGETDATA($TPREVSTATE,"Attributes")
- IF $FENABLE THEN
- $IATTRIBUTES=BITOR($IATTRIBUTES,$SE_PRIVILEGE_ENABLED)
- ELSE
- $IATTRIBUTES=BITAND($IATTRIBUTES,BITNOT($SE_PRIVILEGE_ENABLED))
- ENDIF
- DLLSTRUCTSETDATA($TPREVSTATE,"Attributes",$IATTRIBUTES)
- IF NOT _SECURITY__ADJUSTTOKENPRIVILEGES($HTOKEN,FALSE ,$TPREVSTATE,$IPREVSTATE,$TCURRSTATE,$TREQUIRED)THEN RETURN SETERROR(3,@ERROR,FALSE )
- RETURN TRUE
- ENDFUNC
- FUNC _SECURITY__SETTOKENINFORMATION($HTOKEN,$ITOKENINFORMATION,$VTOKENINFORMATION,$ITOKENINFORMATIONLENGTH)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","SetTokenInformation","handle",$HTOKEN,"int",$ITOKENINFORMATION,"struct*",$VTOKENINFORMATION,"dword",$ITOKENINFORMATIONLENGTH)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(1,@EXTENDED,FALSE )
- RETURN TRUE
- ENDFUNC
- FUNC _SECURITY__SIDTOSTRINGSID($PSID)
- IF NOT _SECURITY__ISVALIDSID($PSID)THEN RETURN SETERROR(1,0,"")
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","ConvertSidToStringSidW","struct*",$PSID,"ptr*",0)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(2,@EXTENDED,"")
- LOCAL $PSTRINGSID=$ACALL[2]
- LOCAL $SSID=DLLSTRUCTGETDATA(DLLSTRUCTCREATE("wchar Text["&_WINAPI_STRINGLENW($PSTRINGSID)+1&"]",$PSTRINGSID),"Text")
- _WINAPI_LOCALFREE($PSTRINGSID)
- RETURN $SSID
- ENDFUNC
- FUNC _SECURITY__SIDTYPESTR($ITYPE)
- SWITCH $ITYPE
- CASE $SIDTYPEUSER
- RETURN "User"
- CASE $SIDTYPEGROUP
- RETURN "Group"
- CASE $SIDTYPEDOMAIN
- RETURN "Domain"
- CASE $SIDTYPEALIAS
- RETURN "Alias"
- CASE $SIDTYPEWELLKNOWNGROUP
- RETURN "Well Known Group"
- CASE $SIDTYPEDELETEDACCOUNT
- RETURN "Deleted Account"
- CASE $SIDTYPEINVALID
- RETURN "Invalid"
- CASE $SIDTYPEUNKNOWN
- RETURN "Unknown Type"
- CASE $SIDTYPECOMPUTER
- RETURN "Computer"
- CASE $SIDTYPELABEL
- RETURN "A mandatory integrity label SID"
- CASE ELSE
- RETURN "Unknown SID Type"
- ENDSWITCH
- ENDFUNC
- FUNC _SECURITY__STRINGSIDTOSID($SSID)
- LOCAL $ACALL=DLLCALL("advapi32.dll","bool","ConvertStringSidToSidW","wstr",$SSID,"ptr*",0)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(1,@EXTENDED,0)
- LOCAL $PSID=$ACALL[2]
- LOCAL $TBUFFER=DLLSTRUCTCREATE("byte Data["&_SECURITY__GETLENGTHSID($PSID)&"]",$PSID)
- LOCAL $TSID=DLLSTRUCTCREATE("byte Data["&DLLSTRUCTGETSIZE($TBUFFER)&"]")
- DLLSTRUCTSETDATA($TSID,"Data",DLLSTRUCTGETDATA($TBUFFER,"Data"))
- _WINAPI_LOCALFREE($PSID)
- RETURN $TSID
- ENDFUNC
- FUNC _SENDMESSAGE($HWND,$IMSG,$WPARAM=0,$LPARAM=0,$IRETURN=0,$WPARAMTYPE="wparam",$LPARAMTYPE="lparam",$SRETURNTYPE="lresult")
- LOCAL $ARESULT=DLLCALL("user32.dll",$SRETURNTYPE,"SendMessageW","hwnd",$HWND,"uint",$IMSG,$WPARAMTYPE,$WPARAM,$LPARAMTYPE,$LPARAM)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,"")
- IF $IRETURN>=0 AND $IRETURN<=4 THEN RETURN $ARESULT[$IRETURN]
- RETURN $ARESULT
- ENDFUNC
- FUNC _SENDMESSAGEA($HWND,$IMSG,$WPARAM=0,$LPARAM=0,$IRETURN=0,$WPARAMTYPE="wparam",$LPARAMTYPE="lparam",$SRETURNTYPE="lresult")
- LOCAL $ARESULT=DLLCALL("user32.dll",$SRETURNTYPE,"SendMessageA","hwnd",$HWND,"uint",$IMSG,$WPARAMTYPE,$WPARAM,$LPARAMTYPE,$LPARAM)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,"")
- IF $IRETURN>=0 AND $IRETURN<=4 THEN RETURN $ARESULT[$IRETURN]
- RETURN $ARESULT
- ENDFUNC
- GLOBAL $__GAINPROCESS_WINAPI[64][2]=[[0,0]]
- GLOBAL $__GAWINLIST_WINAPI[64][2]=[[0,0]]
- GLOBAL CONST $__WINAPICONSTANT_WM_SETFONT=48
- GLOBAL CONST $__WINAPICONSTANT_FW_NORMAL=400
- GLOBAL CONST $__WINAPICONSTANT_DEFAULT_CHARSET=1
- GLOBAL CONST $__WINAPICONSTANT_OUT_DEFAULT_PRECIS=0
- GLOBAL CONST $__WINAPICONSTANT_CLIP_DEFAULT_PRECIS=0
- GLOBAL CONST $__WINAPICONSTANT_DEFAULT_QUALITY=0
- GLOBAL CONST $__WINAPICONSTANT_FORMAT_MESSAGE_ALLOCATE_BUFFER=256
- GLOBAL CONST $__WINAPICONSTANT_FORMAT_MESSAGE_FROM_SYSTEM=4096
- GLOBAL CONST $__WINAPICONSTANT_LOGPIXELSX=88
- GLOBAL CONST $__WINAPICONSTANT_LOGPIXELSY=90
- GLOBAL CONST $HGDI_ERROR=PTR(-1)
- GLOBAL CONST $INVALID_HANDLE_VALUE=PTR(-1)
- GLOBAL CONST $CLR_INVALID=-1
- GLOBAL CONST $__WINAPICONSTANT_FLASHW_CAPTION=1
- GLOBAL CONST $__WINAPICONSTANT_FLASHW_TRAY=2
- GLOBAL CONST $__WINAPICONSTANT_FLASHW_TIMER=4
- GLOBAL CONST $__WINAPICONSTANT_FLASHW_TIMERNOFG=12
- GLOBAL CONST $__WINAPICONSTANT_GW_HWNDNEXT=2
- GLOBAL CONST $__WINAPICONSTANT_GW_CHILD=5
- GLOBAL CONST $__WINAPICONSTANT_DI_MASK=1
- GLOBAL CONST $__WINAPICONSTANT_DI_IMAGE=2
- GLOBAL CONST $__WINAPICONSTANT_DI_NORMAL=3
- GLOBAL CONST $__WINAPICONSTANT_DI_COMPAT=4
- GLOBAL CONST $__WINAPICONSTANT_DI_DEFAULTSIZE=8
- GLOBAL CONST $__WINAPICONSTANT_DI_NOMIRROR=16
- GLOBAL CONST $__WINAPICONSTANT_DISPLAY_DEVICE_ATTACHED_TO_DESKTOP=1
- GLOBAL CONST $__WINAPICONSTANT_DISPLAY_DEVICE_PRIMARY_DEVICE=4
- GLOBAL CONST $__WINAPICONSTANT_DISPLAY_DEVICE_MIRRORING_DRIVER=8
- GLOBAL CONST $__WINAPICONSTANT_DISPLAY_DEVICE_VGA_COMPATIBLE=16
- GLOBAL CONST $__WINAPICONSTANT_DISPLAY_DEVICE_REMOVABLE=32
- GLOBAL CONST $__WINAPICONSTANT_DISPLAY_DEVICE_MODESPRUNED=134217728
- GLOBAL CONST $NULL_BRUSH=5
- GLOBAL CONST $NULL_PEN=8
- GLOBAL CONST $BLACK_BRUSH=4
- GLOBAL CONST $DKGRAY_BRUSH=3
- GLOBAL CONST $DC_BRUSH=18
- GLOBAL CONST $GRAY_BRUSH=2
- GLOBAL CONST $HOLLOW_BRUSH=$NULL_BRUSH
- GLOBAL CONST $LTGRAY_BRUSH=1
- GLOBAL CONST $WHITE_BRUSH=0
- GLOBAL CONST $BLACK_PEN=7
- GLOBAL CONST $DC_PEN=19
- GLOBAL CONST $WHITE_PEN=6
- GLOBAL CONST $ANSI_FIXED_FONT=11
- GLOBAL CONST $ANSI_VAR_FONT=12
- GLOBAL CONST $DEVICE_DEFAULT_FONT=14
- GLOBAL CONST $DEFAULT_GUI_FONT=17
- GLOBAL CONST $OEM_FIXED_FONT=10
- GLOBAL CONST $SYSTEM_FONT=13
- GLOBAL CONST $SYSTEM_FIXED_FONT=16
- GLOBAL CONST $DEFAULT_PALETTE=15
- GLOBAL CONST $MB_PRECOMPOSED=1
- GLOBAL CONST $MB_COMPOSITE=2
- GLOBAL CONST $MB_USEGLYPHCHARS=4
- GLOBAL CONST $ULW_ALPHA=2
- GLOBAL CONST $ULW_COLORKEY=1
- GLOBAL CONST $ULW_OPAQUE=4
- GLOBAL CONST $WH_CALLWNDPROC=4
- GLOBAL CONST $WH_CALLWNDPROCRET=12
- GLOBAL CONST $WH_CBT=5
- GLOBAL CONST $WH_DEBUG=9
- GLOBAL CONST $WH_FOREGROUNDIDLE=11
- GLOBAL CONST $WH_GETMESSAGE=3
- GLOBAL CONST $WH_JOURNALPLAYBACK=1
- GLOBAL CONST $WH_JOURNALRECORD=0
- GLOBAL CONST $WH_KEYBOARD=2
- GLOBAL CONST $WH_KEYBOARD_LL=13
- GLOBAL CONST $WH_MOUSE=7
- GLOBAL CONST $WH_MOUSE_LL=14
- GLOBAL CONST $WH_MSGFILTER=-1
- GLOBAL CONST $WH_SHELL=10
- GLOBAL CONST $WH_SYSMSGFILTER=6
- GLOBAL CONST $WPF_ASYNCWINDOWPLACEMENT=4
- GLOBAL CONST $WPF_RESTORETOMAXIMIZED=2
- GLOBAL CONST $WPF_SETMINPOSITION=1
- GLOBAL CONST $KF_EXTENDED=256
- GLOBAL CONST $KF_ALTDOWN=8192
- GLOBAL CONST $KF_UP=32768
- GLOBAL CONST $LLKHF_EXTENDED=BITSHIFT($KF_EXTENDED,8)
- GLOBAL CONST $LLKHF_INJECTED=16
- GLOBAL CONST $LLKHF_ALTDOWN=BITSHIFT($KF_ALTDOWN,8)
- GLOBAL CONST $LLKHF_UP=BITSHIFT($KF_UP,8)
- GLOBAL CONST $OFN_ALLOWMULTISELECT=512
- GLOBAL CONST $OFN_CREATEPROMPT=8192
- GLOBAL CONST $OFN_DONTADDTORECENT=33554432
- GLOBAL CONST $OFN_ENABLEHOOK=32
- GLOBAL CONST $OFN_ENABLEINCLUDENOTIFY=4194304
- GLOBAL CONST $OFN_ENABLESIZING=8388608
- GLOBAL CONST $OFN_ENABLETEMPLATE=64
- GLOBAL CONST $OFN_ENABLETEMPLATEHANDLE=128
- GLOBAL CONST $OFN_EXPLORER=524288
- GLOBAL CONST $OFN_EXTENSIONDIFFERENT=1024
- GLOBAL CONST $OFN_FILEMUSTEXIST=4096
- GLOBAL CONST $OFN_FORCESHOWHIDDEN=268435456
- GLOBAL CONST $OFN_HIDEREADONLY=4
- GLOBAL CONST $OFN_LONGNAMES=2097152
- GLOBAL CONST $OFN_NOCHANGEDIR=8
- GLOBAL CONST $OFN_NODEREFERENCELINKS=1048576
- GLOBAL CONST $OFN_NOLONGNAMES=262144
- GLOBAL CONST $OFN_NONETWORKBUTTON=131072
- GLOBAL CONST $OFN_NOREADONLYRETURN=32768
- GLOBAL CONST $OFN_NOTESTFILECREATE=65536
- GLOBAL CONST $OFN_NOVALIDATE=256
- GLOBAL CONST $OFN_OVERWRITEPROMPT=2
- GLOBAL CONST $OFN_PATHMUSTEXIST=2048
- GLOBAL CONST $OFN_READONLY=1
- GLOBAL CONST $OFN_SHAREAWARE=16384
- GLOBAL CONST $OFN_SHOWHELP=16
- GLOBAL CONST $OFN_EX_NOPLACESBAR=1
- GLOBAL CONST $TMPF_FIXED_PITCH=1
- GLOBAL CONST $TMPF_VECTOR=2
- GLOBAL CONST $TMPF_TRUETYPE=4
- GLOBAL CONST $TMPF_DEVICE=8
- GLOBAL CONST $DUPLICATE_CLOSE_SOURCE=1
- GLOBAL CONST $DUPLICATE_SAME_ACCESS=2
- GLOBAL CONST $TAGCURSORINFO="dword Size;dword Flags;handle hCursor;"&$TAGPOINT
- GLOBAL CONST $TAGDISPLAY_DEVICE="dword Size;wchar Name[32];wchar String[128];dword Flags;wchar ID[128];wchar Key[128]"
- GLOBAL CONST $TAGFLASHWINFO="uint Size;hwnd hWnd;dword Flags;uint Count;dword TimeOut"
- GLOBAL CONST $TAGICONINFO="bool Icon;dword XHotSpot;dword YHotSpot;handle hMask;handle hColor"
- GLOBAL CONST $TAGMEMORYSTATUSEX="dword Length;dword MemoryLoad;"&"uint64 TotalPhys;uint64 AvailPhys;uint64 TotalPageFile;uint64 AvailPageFile;"&"uint64 TotalVirtual;uint64 AvailVirtual;uint64 AvailExtendedVirtual"
- FUNC _WINAPI_ATTACHCONSOLE($IPROCESSID=-1)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","bool","AttachConsole","dword",$IPROCESSID)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_ATTACHTHREADINPUT($IATTACH,$IATTACHTO,$FATTACH)
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","AttachThreadInput","dword",$IATTACH,"dword",$IATTACHTO,"bool",$FATTACH)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_BEEP($IFREQ=500,$IDURATION=1000)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","bool","Beep","dword",$IFREQ,"dword",$IDURATION)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_BITBLT($HDESTDC,$IXDEST,$IYDEST,$IWIDTH,$IHEIGHT,$HSRCDC,$IXSRC,$IYSRC,$IROP)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","bool","BitBlt","handle",$HDESTDC,"int",$IXDEST,"int",$IYDEST,"int",$IWIDTH,"int",$IHEIGHT,"handle",$HSRCDC,"int",$IXSRC,"int",$IYSRC,"dword",$IROP)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CALLNEXTHOOKEX($HHK,$ICODE,$WPARAM,$LPARAM)
- LOCAL $ARESULT=DLLCALL("user32.dll","lresult","CallNextHookEx","handle",$HHK,"int",$ICODE,"wparam",$WPARAM,"lparam",$LPARAM)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,-1)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CALLWINDOWPROC($LPPREVWNDFUNC,$HWND,$MSG,$WPARAM,$LPARAM)
- LOCAL $ARESULT=DLLCALL("user32.dll","lresult","CallWindowProc","ptr",$LPPREVWNDFUNC,"hwnd",$HWND,"uint",$MSG,"wparam",$WPARAM,"lparam",$LPARAM)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,-1)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CLIENTTOSCREEN($HWND,BYREF $TPOINT)
- DLLCALL("user32.dll","bool","ClientToScreen","hwnd",$HWND,"struct*",$TPOINT)
- RETURN SETERROR(@ERROR,@EXTENDED,$TPOINT)
- ENDFUNC
- FUNC _WINAPI_CLOSEHANDLE($HOBJECT)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","bool","CloseHandle","handle",$HOBJECT)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_COMBINERGN($HRGNDEST,$HRGNSRC1,$HRGNSRC2,$ICOMBINEMODE)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","int","CombineRgn","handle",$HRGNDEST,"handle",$HRGNSRC1,"handle",$HRGNSRC2,"int",$ICOMBINEMODE)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_COMMDLGEXTENDEDERROR()
- LOCAL CONST $CDERR_DIALOGFAILURE=65535
- LOCAL CONST $CDERR_FINDRESFAILURE=6
- LOCAL CONST $CDERR_INITIALIZATION=2
- LOCAL CONST $CDERR_LOADRESFAILURE=7
- LOCAL CONST $CDERR_LOADSTRFAILURE=5
- LOCAL CONST $CDERR_LOCKRESFAILURE=8
- LOCAL CONST $CDERR_MEMALLOCFAILURE=9
- LOCAL CONST $CDERR_MEMLOCKFAILURE=10
- LOCAL CONST $CDERR_NOHINSTANCE=4
- LOCAL CONST $CDERR_NOHOOK=11
- LOCAL CONST $CDERR_NOTEMPLATE=3
- LOCAL CONST $CDERR_REGISTERMSGFAIL=12
- LOCAL CONST $CDERR_STRUCTSIZE=1
- LOCAL CONST $FNERR_BUFFERTOOSMALL=12291
- LOCAL CONST $FNERR_INVALIDFILENAME=12290
- LOCAL CONST $FNERR_SUBCLASSFAILURE=12289
- LOCAL $ARESULT=DLLCALL("comdlg32.dll","dword","CommDlgExtendedError")
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- SWITCH $ARESULT[0]
- CASE $CDERR_DIALOGFAILURE
- RETURN SETERROR($ARESULT[0],0,"The dialog box could not be created."&@LF&"The common dialog box function's call to the DialogBox function failed."&@LF&"For example, this error occurs if the common dialog box call specifies an invalid window handle.")
- CASE $CDERR_FINDRESFAILURE
- RETURN SETERROR($ARESULT[0],0,"The common dialog box function failed to find a specified resource.")
- CASE $CDERR_INITIALIZATION
- RETURN SETERROR($ARESULT[0],0,"The common dialog box function failed during initialization."&@LF&"This error often occurs when sufficient memory is not available.")
- CASE $CDERR_LOADRESFAILURE
- RETURN SETERROR($ARESULT[0],0,"The common dialog box function failed to load a specified resource.")
- CASE $CDERR_LOADSTRFAILURE
- RETURN SETERROR($ARESULT[0],0,"The common dialog box function failed to load a specified string.")
- CASE $CDERR_LOCKRESFAILURE
- RETURN SETERROR($ARESULT[0],0,"The common dialog box function failed to lock a specified resource.")
- CASE $CDERR_MEMALLOCFAILURE
- RETURN SETERROR($ARESULT[0],0,"The common dialog box function was unable to allocate memory for internal structures.")
- CASE $CDERR_MEMLOCKFAILURE
- RETURN SETERROR($ARESULT[0],0,"The common dialog box function was unable to lock the memory associated with a handle.")
- CASE $CDERR_NOHINSTANCE
- RETURN SETERROR($ARESULT[0],0,"The ENABLETEMPLATE flag was set in the Flags member of the initialization structure for the corresponding common dialog box,"&@LF&"but you failed to provide a corresponding instance handle.")
- CASE $CDERR_NOHOOK
- RETURN SETERROR($ARESULT[0],0,"The ENABLEHOOK flag was set in the Flags member of the initialization structure for the corresponding common dialog box,"&@LF&"but you failed to provide a pointer to a corresponding hook procedure.")
- CASE $CDERR_NOTEMPLATE
- RETURN SETERROR($ARESULT[0],0,"The ENABLETEMPLATE flag was set in the Flags member of the initialization structure for the corresponding common dialog box,"&@LF&"but you failed to provide a corresponding template.")
- CASE $CDERR_REGISTERMSGFAIL
- RETURN SETERROR($ARESULT[0],0,"The RegisterWindowMessage function returned an error code when it was called by the common dialog box function.")
- CASE $CDERR_STRUCTSIZE
- RETURN SETERROR($ARESULT[0],0,"The lStructSize member of the initialization structure for the corresponding common dialog box is invalid")
- CASE $FNERR_BUFFERTOOSMALL
- RETURN SETERROR($ARESULT[0],0,"The buffer pointed to by the lpstrFile member of the OPENFILENAME structure is too small for the file name specified by the user."&@LF&"The first two bytes of the lpstrFile buffer contain an integer value specifying the size, in TCHARs, required to receive the full name.")
- CASE $FNERR_INVALIDFILENAME
- RETURN SETERROR($ARESULT[0],0,"A file name is invalid.")
- CASE $FNERR_SUBCLASSFAILURE
- RETURN SETERROR($ARESULT[0],0,"An attempt to subclass a list box failed because sufficient memory was not available.")
- ENDSWITCH
- RETURN HEX($ARESULT[0])
- ENDFUNC
- FUNC _WINAPI_COPYICON($HICON)
- LOCAL $ARESULT=DLLCALL("user32.dll","handle","CopyIcon","handle",$HICON)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATEBITMAP($IWIDTH,$IHEIGHT,$IPLANES=1,$IBITSPERPEL=1,$PBITS=0)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","handle","CreateBitmap","int",$IWIDTH,"int",$IHEIGHT,"uint",$IPLANES,"uint",$IBITSPERPEL,"ptr",$PBITS)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATECOMPATIBLEBITMAP($HDC,$IWIDTH,$IHEIGHT)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","handle","CreateCompatibleBitmap","handle",$HDC,"int",$IWIDTH,"int",$IHEIGHT)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATECOMPATIBLEDC($HDC)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","handle","CreateCompatibleDC","handle",$HDC)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATEEVENT($PATTRIBUTES=0,$FMANUALRESET=TRUE ,$FINITIALSTATE=TRUE ,$SNAME="")
- LOCAL $SNAMETYPE="wstr"
- IF $SNAME="" THEN
- $SNAME=0
- $SNAMETYPE="ptr"
- ENDIF
- LOCAL $ARESULT=DLLCALL("kernel32.dll","handle","CreateEventW","ptr",$PATTRIBUTES,"bool",$FMANUALRESET,"bool",$FINITIALSTATE,$SNAMETYPE,$SNAME)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATEFILE($SFILENAME,$ICREATION,$IACCESS=4,$ISHARE=0,$IATTRIBUTES=0,$PSECURITY=0)
- LOCAL $IDA=0,$ISM=0,$ICD=0,$IFA=0
- IF BITAND($IACCESS,1)<>0 THEN $IDA=BITOR($IDA,$GENERIC_EXECUTE)
- IF BITAND($IACCESS,2)<>0 THEN $IDA=BITOR($IDA,$GENERIC_READ)
- IF BITAND($IACCESS,4)<>0 THEN $IDA=BITOR($IDA,$GENERIC_WRITE)
- IF BITAND($ISHARE,1)<>0 THEN $ISM=BITOR($ISM,$FILE_SHARE_DELETE)
- IF BITAND($ISHARE,2)<>0 THEN $ISM=BITOR($ISM,$FILE_SHARE_READ)
- IF BITAND($ISHARE,4)<>0 THEN $ISM=BITOR($ISM,$FILE_SHARE_WRITE)
- SWITCH $ICREATION
- CASE 0
- $ICD=$CREATE_NEW
- CASE 1
- $ICD=$CREATE_ALWAYS
- CASE 2
- $ICD=$OPEN_EXISTING
- CASE 3
- $ICD=$OPEN_ALWAYS
- CASE 4
- $ICD=$TRUNCATE_EXISTING
- ENDSWITCH
- IF BITAND($IATTRIBUTES,1)<>0 THEN $IFA=BITOR($IFA,$FILE_ATTRIBUTE_ARCHIVE)
- IF BITAND($IATTRIBUTES,2)<>0 THEN $IFA=BITOR($IFA,$FILE_ATTRIBUTE_HIDDEN)
- IF BITAND($IATTRIBUTES,4)<>0 THEN $IFA=BITOR($IFA,$FILE_ATTRIBUTE_READONLY)
- IF BITAND($IATTRIBUTES,8)<>0 THEN $IFA=BITOR($IFA,$FILE_ATTRIBUTE_SYSTEM)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","handle","CreateFileW","wstr",$SFILENAME,"dword",$IDA,"dword",$ISM,"ptr",$PSECURITY,"dword",$ICD,"dword",$IFA,"ptr",0)
- IF @ERROR OR $ARESULT[0]=PTR(-1)THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATEFONT($NHEIGHT,$NWIDTH,$NESCAPE=0,$NORIENTN=0,$FNWEIGHT=$__WINAPICONSTANT_FW_NORMAL,$BITALIC=FALSE ,$BUNDERLINE=FALSE ,$BSTRIKEOUT=FALSE ,$NCHARSET=$__WINAPICONSTANT_DEFAULT_CHARSET,$NOUTPUTPREC=$__WINAPICONSTANT_OUT_DEFAULT_PRECIS,$NCLIPPREC=$__WINAPICONSTANT_CLIP_DEFAULT_PRECIS,$NQUALITY=$__WINAPICONSTANT_DEFAULT_QUALITY,$NPITCH=0,$SZFACE="Arial")
- LOCAL $ARESULT=DLLCALL("gdi32.dll","handle","CreateFontW","int",$NHEIGHT,"int",$NWIDTH,"int",$NESCAPE,"int",$NORIENTN,"int",$FNWEIGHT,"dword",$BITALIC,"dword",$BUNDERLINE,"dword",$BSTRIKEOUT,"dword",$NCHARSET,"dword",$NOUTPUTPREC,"dword",$NCLIPPREC,"dword",$NQUALITY,"dword",$NPITCH,"wstr",$SZFACE)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATEFONTINDIRECT($TLOGFONT)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","handle","CreateFontIndirectW","struct*",$TLOGFONT)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATEPEN($IPENSTYLE,$IWIDTH,$NCOLOR)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","handle","CreatePen","int",$IPENSTYLE,"int",$IWIDTH,"dword",$NCOLOR)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATEPROCESS($SAPPNAME,$SCOMMAND,$PSECURITY,$PTHREAD,$FINHERIT,$IFLAGS,$PENVIRON,$SDIR,$PSTARTUPINFO,$PPROCESS)
- LOCAL $TCOMMAND=0
- LOCAL $SAPPNAMETYPE="wstr",$SDIRTYPE="wstr"
- IF $SAPPNAME="" THEN
- $SAPPNAMETYPE="ptr"
- $SAPPNAME=0
- ENDIF
- IF $SCOMMAND<>"" THEN
- $TCOMMAND=DLLSTRUCTCREATE("wchar Text["&260+1&"]")
- DLLSTRUCTSETDATA($TCOMMAND,"Text",$SCOMMAND)
- ENDIF
- IF $SDIR="" THEN
- $SDIRTYPE="ptr"
- $SDIR=0
- ENDIF
- LOCAL $ARESULT=DLLCALL("kernel32.dll","bool","CreateProcessW",$SAPPNAMETYPE,$SAPPNAME,"struct*",$TCOMMAND,"ptr",$PSECURITY,"ptr",$PTHREAD,"bool",$FINHERIT,"dword",$IFLAGS,"ptr",$PENVIRON,$SDIRTYPE,$SDIR,"ptr",$PSTARTUPINFO,"ptr",$PPROCESS)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATERECTRGN($ILEFTRECT,$ITOPRECT,$IRIGHTRECT,$IBOTTOMRECT)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","handle","CreateRectRgn","int",$ILEFTRECT,"int",$ITOPRECT,"int",$IRIGHTRECT,"int",$IBOTTOMRECT)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATEROUNDRECTRGN($ILEFTRECT,$ITOPRECT,$IRIGHTRECT,$IBOTTOMRECT,$IWIDTHELLIPSE,$IHEIGHTELLIPSE)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","handle","CreateRoundRectRgn","int",$ILEFTRECT,"int",$ITOPRECT,"int",$IRIGHTRECT,"int",$IBOTTOMRECT,"int",$IWIDTHELLIPSE,"int",$IHEIGHTELLIPSE)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATESOLIDBITMAP($HWND,$ICOLOR,$IWIDTH,$IHEIGHT,$BRGB=1)
- LOCAL $HDC=_WINAPI_GETDC($HWND)
- LOCAL $HDESTDC=_WINAPI_CREATECOMPATIBLEDC($HDC)
- LOCAL $HBITMAP=_WINAPI_CREATECOMPATIBLEBITMAP($HDC,$IWIDTH,$IHEIGHT)
- LOCAL $HOLD=_WINAPI_SELECTOBJECT($HDESTDC,$HBITMAP)
- LOCAL $TRECT=DLLSTRUCTCREATE($TAGRECT)
- DLLSTRUCTSETDATA($TRECT,1,0)
- DLLSTRUCTSETDATA($TRECT,2,0)
- DLLSTRUCTSETDATA($TRECT,3,$IWIDTH)
- DLLSTRUCTSETDATA($TRECT,4,$IHEIGHT)
- IF $BRGB THEN
- $ICOLOR=BITOR(BITAND($ICOLOR,65280),BITSHIFT(BITAND($ICOLOR,255),-16),BITSHIFT(BITAND($ICOLOR,16711680),16))
- ENDIF
- LOCAL $HBRUSH=_WINAPI_CREATESOLIDBRUSH($ICOLOR)
- _WINAPI_FILLRECT($HDESTDC,$TRECT,$HBRUSH)
- IF @ERROR THEN
- _WINAPI_DELETEOBJECT($HBITMAP)
- $HBITMAP=0
- ENDIF
- _WINAPI_DELETEOBJECT($HBRUSH)
- _WINAPI_RELEASEDC($HWND,$HDC)
- _WINAPI_SELECTOBJECT($HDESTDC,$HOLD)
- _WINAPI_DELETEDC($HDESTDC)
- IF NOT $HBITMAP THEN RETURN SETERROR(1,0,0)
- RETURN $HBITMAP
- ENDFUNC
- FUNC _WINAPI_CREATESOLIDBRUSH($NCOLOR)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","handle","CreateSolidBrush","dword",$NCOLOR)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_CREATEWINDOWEX($IEXSTYLE,$SCLASS,$SNAME,$ISTYLE,$IX,$IY,$IWIDTH,$IHEIGHT,$HPARENT,$HMENU=0,$HINSTANCE=0,$PPARAM=0)
- IF $HINSTANCE=0 THEN $HINSTANCE=_WINAPI_GETMODULEHANDLE("")
- LOCAL $ARESULT=DLLCALL("user32.dll","hwnd","CreateWindowExW","dword",$IEXSTYLE,"wstr",$SCLASS,"wstr",$SNAME,"dword",$ISTYLE,"int",$IX,"int",$IY,"int",$IWIDTH,"int",$IHEIGHT,"hwnd",$HPARENT,"handle",$HMENU,"handle",$HINSTANCE,"ptr",$PPARAM)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DEFWINDOWPROC($HWND,$IMSG,$IWPARAM,$ILPARAM)
- LOCAL $ARESULT=DLLCALL("user32.dll","lresult","DefWindowProc","hwnd",$HWND,"uint",$IMSG,"wparam",$IWPARAM,"lparam",$ILPARAM)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DELETEDC($HDC)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","bool","DeleteDC","handle",$HDC)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DELETEOBJECT($HOBJECT)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","bool","DeleteObject","handle",$HOBJECT)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DESTROYICON($HICON)
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","DestroyIcon","handle",$HICON)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DESTROYWINDOW($HWND)
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","DestroyWindow","hwnd",$HWND)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DRAWEDGE($HDC,$PTRRECT,$NEDGETYPE,$GRFFLAGS)
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","DrawEdge","handle",$HDC,"ptr",$PTRRECT,"uint",$NEDGETYPE,"uint",$GRFFLAGS)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DRAWFRAMECONTROL($HDC,$PTRRECT,$NTYPE,$NSTATE)
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","DrawFrameControl","handle",$HDC,"ptr",$PTRRECT,"uint",$NTYPE,"uint",$NSTATE)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DRAWICON($HDC,$IX,$IY,$HICON)
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","DrawIcon","handle",$HDC,"int",$IX,"int",$IY,"handle",$HICON)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DRAWICONEX($HDC,$IX,$IY,$HICON,$IWIDTH=0,$IHEIGHT=0,$ISTEP=0,$HBRUSH=0,$IFLAGS=3)
- LOCAL $IOPTIONS
- SWITCH $IFLAGS
- CASE 1
- $IOPTIONS=$__WINAPICONSTANT_DI_MASK
- CASE 2
- $IOPTIONS=$__WINAPICONSTANT_DI_IMAGE
- CASE 3
- $IOPTIONS=$__WINAPICONSTANT_DI_NORMAL
- CASE 4
- $IOPTIONS=$__WINAPICONSTANT_DI_COMPAT
- CASE 5
- $IOPTIONS=$__WINAPICONSTANT_DI_DEFAULTSIZE
- CASE ELSE
- $IOPTIONS=$__WINAPICONSTANT_DI_NOMIRROR
- ENDSWITCH
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","DrawIconEx","handle",$HDC,"int",$IX,"int",$IY,"handle",$HICON,"int",$IWIDTH,"int",$IHEIGHT,"uint",$ISTEP,"handle",$HBRUSH,"uint",$IOPTIONS)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DRAWLINE($HDC,$IX1,$IY1,$IX2,$IY2)
- _WINAPI_MOVETO($HDC,$IX1,$IY1)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- _WINAPI_LINETO($HDC,$IX2,$IY2)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN TRUE
- ENDFUNC
- FUNC _WINAPI_DRAWTEXT($HDC,$STEXT,BYREF $TRECT,$IFLAGS)
- LOCAL $ARESULT=DLLCALL("user32.dll","int","DrawTextW","handle",$HDC,"wstr",$STEXT,"int",-1,"struct*",$TRECT,"uint",$IFLAGS)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_DUPLICATEHANDLE($HSOURCEPROCESSHANDLE,$HSOURCEHANDLE,$HTARGETPROCESSHANDLE,$IDESIREDACCESS,$FINHERITHANDLE,$IOPTIONS)
- LOCAL $ACALL=DLLCALL("kernel32.dll","bool","DuplicateHandle","handle",$HSOURCEPROCESSHANDLE,"handle",$HSOURCEHANDLE,"handle",$HTARGETPROCESSHANDLE,"handle*",0,"dword",$IDESIREDACCESS,"bool",$FINHERITHANDLE,"dword",$IOPTIONS)
- IF @ERROR OR NOT $ACALL[0]THEN RETURN SETERROR(1,@EXTENDED,0)
- RETURN $ACALL[4]
- ENDFUNC
- FUNC _WINAPI_ENABLEWINDOW($HWND,$FENABLE=TRUE )
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","EnableWindow","hwnd",$HWND,"bool",$FENABLE)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_ENUMDISPLAYDEVICES($SDEVICE,$IDEVNUM)
- LOCAL $TNAME=0,$IFLAGS=0,$ADEVICE[5]
- IF $SDEVICE<>"" THEN
- $TNAME=DLLSTRUCTCREATE("wchar Text["&STRINGLEN($SDEVICE)+1&"]")
- DLLSTRUCTSETDATA($TNAME,"Text",$SDEVICE)
- ENDIF
- LOCAL $TDEVICE=DLLSTRUCTCREATE($TAGDISPLAY_DEVICE)
- LOCAL $IDEVICE=DLLSTRUCTGETSIZE($TDEVICE)
- DLLSTRUCTSETDATA($TDEVICE,"Size",$IDEVICE)
- DLLCALL("user32.dll","bool","EnumDisplayDevicesW","struct*",$TNAME,"dword",$IDEVNUM,"struct*",$TDEVICE,"dword",1)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- LOCAL $IN=DLLSTRUCTGETDATA($TDEVICE,"Flags")
- IF BITAND($IN,$__WINAPICONSTANT_DISPLAY_DEVICE_ATTACHED_TO_DESKTOP)<>0 THEN $IFLAGS=BITOR($IFLAGS,1)
- IF BITAND($IN,$__WINAPICONSTANT_DISPLAY_DEVICE_PRIMARY_DEVICE)<>0 THEN $IFLAGS=BITOR($IFLAGS,2)
- IF BITAND($IN,$__WINAPICONSTANT_DISPLAY_DEVICE_MIRRORING_DRIVER)<>0 THEN $IFLAGS=BITOR($IFLAGS,4)
- IF BITAND($IN,$__WINAPICONSTANT_DISPLAY_DEVICE_VGA_COMPATIBLE)<>0 THEN $IFLAGS=BITOR($IFLAGS,8)
- IF BITAND($IN,$__WINAPICONSTANT_DISPLAY_DEVICE_REMOVABLE)<>0 THEN $IFLAGS=BITOR($IFLAGS,16)
- IF BITAND($IN,$__WINAPICONSTANT_DISPLAY_DEVICE_MODESPRUNED)<>0 THEN $IFLAGS=BITOR($IFLAGS,32)
- $ADEVICE[0]=TRUE
- $ADEVICE[1]=DLLSTRUCTGETDATA($TDEVICE,"Name")
- $ADEVICE[2]=DLLSTRUCTGETDATA($TDEVICE,"String")
- $ADEVICE[3]=$IFLAGS
- $ADEVICE[4]=DLLSTRUCTGETDATA($TDEVICE,"ID")
- RETURN $ADEVICE
- ENDFUNC
- FUNC _WINAPI_ENUMWINDOWS($FVISIBLE=TRUE ,$HWND=DEFAULT )
- __WINAPI_ENUMWINDOWSINIT()
- IF $HWND=DEFAULT THEN $HWND=_WINAPI_GETDESKTOPWINDOW()
- __WINAPI_ENUMWINDOWSCHILD($HWND,$FVISIBLE)
- RETURN $__GAWINLIST_WINAPI
- ENDFUNC
- FUNC __WINAPI_ENUMWINDOWSADD($HWND,$SCLASS="")
- IF $SCLASS="" THEN $SCLASS=_WINAPI_GETCLASSNAME($HWND)
- $__GAWINLIST_WINAPI[0][0]+=1
- LOCAL $ICOUNT=$__GAWINLIST_WINAPI[0][0]
- IF $ICOUNT>=$__GAWINLIST_WINAPI[0][1]THEN
- REDIM $__GAWINLIST_WINAPI[$ICOUNT+64][2]
- $__GAWINLIST_WINAPI[0][1]+=64
- ENDIF
- $__GAWINLIST_WINAPI[$ICOUNT][0]=$HWND
- $__GAWINLIST_WINAPI[$ICOUNT][1]=$SCLASS
- ENDFUNC
- FUNC __WINAPI_ENUMWINDOWSCHILD($HWND,$FVISIBLE=TRUE )
- $HWND=_WINAPI_GETWINDOW($HWND,$__WINAPICONSTANT_GW_CHILD)
- WHILE $HWND<>0
- IF (NOT $FVISIBLE)OR _WINAPI_ISWINDOWVISIBLE($HWND)THEN
- __WINAPI_ENUMWINDOWSCHILD($HWND,$FVISIBLE)
- __WINAPI_ENUMWINDOWSADD($HWND)
- ENDIF
- $HWND=_WINAPI_GETWINDOW($HWND,$__WINAPICONSTANT_GW_HWNDNEXT)
- WEND
- ENDFUNC
- FUNC __WINAPI_ENUMWINDOWSINIT()
- REDIM $__GAWINLIST_WINAPI[64][2]
- $__GAWINLIST_WINAPI[0][0]=0
- $__GAWINLIST_WINAPI[0][1]=64
- ENDFUNC
- FUNC _WINAPI_ENUMWINDOWSPOPUP()
- __WINAPI_ENUMWINDOWSINIT()
- LOCAL $HWND=_WINAPI_GETWINDOW(_WINAPI_GETDESKTOPWINDOW(),$__WINAPICONSTANT_GW_CHILD)
- LOCAL $SCLASS
- WHILE $HWND<>0
- IF _WINAPI_ISWINDOWVISIBLE($HWND)THEN
- $SCLASS=_WINAPI_GETCLASSNAME($HWND)
- IF $SCLASS="#32768" THEN
- __WINAPI_ENUMWINDOWSADD($HWND)
- ELSEIF $SCLASS="ToolbarWindow32" THEN
- __WINAPI_ENUMWINDOWSADD($HWND)
- ELSEIF $SCLASS="ToolTips_Class32" THEN
- __WINAPI_ENUMWINDOWSADD($HWND)
- ELSEIF $SCLASS="BaseBar" THEN
- __WINAPI_ENUMWINDOWSCHILD($HWND)
- ENDIF
- ENDIF
- $HWND=_WINAPI_GETWINDOW($HWND,$__WINAPICONSTANT_GW_HWNDNEXT)
- WEND
- RETURN $__GAWINLIST_WINAPI
- ENDFUNC
- FUNC _WINAPI_ENUMWINDOWSTOP()
- __WINAPI_ENUMWINDOWSINIT()
- LOCAL $HWND=_WINAPI_GETWINDOW(_WINAPI_GETDESKTOPWINDOW(),$__WINAPICONSTANT_GW_CHILD)
- WHILE $HWND<>0
- IF _WINAPI_ISWINDOWVISIBLE($HWND)THEN __WINAPI_ENUMWINDOWSADD($HWND)
- $HWND=_WINAPI_GETWINDOW($HWND,$__WINAPICONSTANT_GW_HWNDNEXT)
- WEND
- RETURN $__GAWINLIST_WINAPI
- ENDFUNC
- FUNC _WINAPI_EXPANDENVIRONMENTSTRINGS($SSTRING)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","dword","ExpandEnvironmentStringsW","wstr",$SSTRING,"wstr","","dword",4096)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,"")
- RETURN $ARESULT[2]
- ENDFUNC
- FUNC _WINAPI_EXTRACTICONEX($SFILE,$IINDEX,$PLARGE,$PSMALL,$IICONS)
- LOCAL $ARESULT=DLLCALL("shell32.dll","uint","ExtractIconExW","wstr",$SFILE,"int",$IINDEX,"struct*",$PLARGE,"struct*",$PSMALL,"uint",$IICONS)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_FATALAPPEXIT($SMESSAGE)
- DLLCALL("kernel32.dll","none","FatalAppExitW","uint",0,"wstr",$SMESSAGE)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED)
- ENDFUNC
- FUNC _WINAPI_FILLRECT($HDC,$PTRRECT,$HBRUSH)
- LOCAL $ARESULT
- IF ISPTR($HBRUSH)THEN
- $ARESULT=DLLCALL("user32.dll","int","FillRect","handle",$HDC,"struct*",$PTRRECT,"handle",$HBRUSH)
- ELSE
- $ARESULT=DLLCALL("user32.dll","int","FillRect","handle",$HDC,"struct*",$PTRRECT,"dword_ptr",$HBRUSH)
- ENDIF
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_FINDEXECUTABLE($SFILENAME,$SDIRECTORY="")
- LOCAL $ARESULT=DLLCALL("shell32.dll","INT","FindExecutableW","wstr",$SFILENAME,"wstr",$SDIRECTORY,"wstr","")
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN SETEXTENDED($ARESULT[0],$ARESULT[3])
- ENDFUNC
- FUNC _WINAPI_FINDWINDOW($SCLASSNAME,$SWINDOWNAME)
- LOCAL $ARESULT=DLLCALL("user32.dll","hwnd","FindWindowW","wstr",$SCLASSNAME,"wstr",$SWINDOWNAME)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_FLASHWINDOW($HWND,$FINVERT=TRUE )
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","FlashWindow","hwnd",$HWND,"bool",$FINVERT)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_FLASHWINDOWEX($HWND,$IFLAGS=3,$ICOUNT=3,$ITIMEOUT=0)
- LOCAL $TFLASH=DLLSTRUCTCREATE($TAGFLASHWINFO)
- LOCAL $IFLASH=DLLSTRUCTGETSIZE($TFLASH)
- LOCAL $IMODE=0
- IF BITAND($IFLAGS,1)<>0 THEN $IMODE=BITOR($IMODE,$__WINAPICONSTANT_FLASHW_CAPTION)
- IF BITAND($IFLAGS,2)<>0 THEN $IMODE=BITOR($IMODE,$__WINAPICONSTANT_FLASHW_TRAY)
- IF BITAND($IFLAGS,4)<>0 THEN $IMODE=BITOR($IMODE,$__WINAPICONSTANT_FLASHW_TIMER)
- IF BITAND($IFLAGS,8)<>0 THEN $IMODE=BITOR($IMODE,$__WINAPICONSTANT_FLASHW_TIMERNOFG)
- DLLSTRUCTSETDATA($TFLASH,"Size",$IFLASH)
- DLLSTRUCTSETDATA($TFLASH,"hWnd",$HWND)
- DLLSTRUCTSETDATA($TFLASH,"Flags",$IMODE)
- DLLSTRUCTSETDATA($TFLASH,"Count",$ICOUNT)
- DLLSTRUCTSETDATA($TFLASH,"Timeout",$ITIMEOUT)
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","FlashWindowEx","struct*",$TFLASH)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_FLOATTOINT($NFLOAT)
- LOCAL $TFLOAT=DLLSTRUCTCREATE("float")
- LOCAL $TINT=DLLSTRUCTCREATE("int",DLLSTRUCTGETPTR($TFLOAT))
- DLLSTRUCTSETDATA($TFLOAT,1,$NFLOAT)
- RETURN DLLSTRUCTGETDATA($TINT,1)
- ENDFUNC
- FUNC _WINAPI_FLUSHFILEBUFFERS($HFILE)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","bool","FlushFileBuffers","handle",$HFILE)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_FORMATMESSAGE($IFLAGS,$PSOURCE,$IMESSAGEID,$ILANGUAGEID,BYREF $PBUFFER,$ISIZE,$VARGUMENTS)
- LOCAL $SBUFFERTYPE="struct*"
- IF ISSTRING($PBUFFER)THEN $SBUFFERTYPE="wstr"
- LOCAL $ARESULT=DLLCALL("Kernel32.dll","dword","FormatMessageW","dword",$IFLAGS,"ptr",$PSOURCE,"dword",$IMESSAGEID,"dword",$ILANGUAGEID,$SBUFFERTYPE,$PBUFFER,"dword",$ISIZE,"ptr",$VARGUMENTS)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- IF $SBUFFERTYPE="wstr" THEN $PBUFFER=$ARESULT[5]
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_FRAMERECT($HDC,$PTRRECT,$HBRUSH)
- LOCAL $ARESULT=DLLCALL("user32.dll","int","FrameRect","handle",$HDC,"ptr",$PTRRECT,"handle",$HBRUSH)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_FREELIBRARY($HMODULE)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","bool","FreeLibrary","handle",$HMODULE)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETANCESTOR($HWND,$IFLAGS=1)
- LOCAL $ARESULT=DLLCALL("user32.dll","hwnd","GetAncestor","hwnd",$HWND,"uint",$IFLAGS)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETASYNCKEYSTATE($IKEY)
- LOCAL $ARESULT=DLLCALL("user32.dll","short","GetAsyncKeyState","int",$IKEY)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETBKMODE($HDC)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","int","GetBkMode","handle",$HDC)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETCLASSNAME($HWND)
- IF NOT ISHWND($HWND)THEN $HWND=GUICTRLGETHANDLE($HWND)
- LOCAL $ARESULT=DLLCALL("user32.dll","int","GetClassNameW","hwnd",$HWND,"wstr","","int",4096)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN SETEXTENDED($ARESULT[0],$ARESULT[2])
- ENDFUNC
- FUNC _WINAPI_GETCLIENTHEIGHT($HWND)
- LOCAL $TRECT=_WINAPI_GETCLIENTRECT($HWND)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN DLLSTRUCTGETDATA($TRECT,"Bottom")-DLLSTRUCTGETDATA($TRECT,"Top")
- ENDFUNC
- FUNC _WINAPI_GETCLIENTWIDTH($HWND)
- LOCAL $TRECT=_WINAPI_GETCLIENTRECT($HWND)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN DLLSTRUCTGETDATA($TRECT,"Right")-DLLSTRUCTGETDATA($TRECT,"Left")
- ENDFUNC
- FUNC _WINAPI_GETCLIENTRECT($HWND)
- LOCAL $TRECT=DLLSTRUCTCREATE($TAGRECT)
- DLLCALL("user32.dll","bool","GetClientRect","hwnd",$HWND,"struct*",$TRECT)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $TRECT
- ENDFUNC
- FUNC _WINAPI_GETCURRENTPROCESS()
- LOCAL $ARESULT=DLLCALL("kernel32.dll","handle","GetCurrentProcess")
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETCURRENTPROCESSID()
- LOCAL $ARESULT=DLLCALL("kernel32.dll","dword","GetCurrentProcessId")
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETCURRENTTHREAD()
- LOCAL $ARESULT=DLLCALL("kernel32.dll","handle","GetCurrentThread")
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETCURRENTTHREADID()
- LOCAL $ARESULT=DLLCALL("kernel32.dll","dword","GetCurrentThreadId")
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETCURSORINFO()
- LOCAL $TCURSOR=DLLSTRUCTCREATE($TAGCURSORINFO)
- LOCAL $ICURSOR=DLLSTRUCTGETSIZE($TCURSOR)
- DLLSTRUCTSETDATA($TCURSOR,"Size",$ICURSOR)
- DLLCALL("user32.dll","bool","GetCursorInfo","struct*",$TCURSOR)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- LOCAL $ACURSOR[5]
- $ACURSOR[0]=TRUE
- $ACURSOR[1]=DLLSTRUCTGETDATA($TCURSOR,"Flags")<>0
- $ACURSOR[2]=DLLSTRUCTGETDATA($TCURSOR,"hCursor")
- $ACURSOR[3]=DLLSTRUCTGETDATA($TCURSOR,"X")
- $ACURSOR[4]=DLLSTRUCTGETDATA($TCURSOR,"Y")
- RETURN $ACURSOR
- ENDFUNC
- FUNC _WINAPI_GETDC($HWND)
- LOCAL $ARESULT=DLLCALL("user32.dll","handle","GetDC","hwnd",$HWND)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETDESKTOPWINDOW()
- LOCAL $ARESULT=DLLCALL("user32.dll","hwnd","GetDesktopWindow")
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETDEVICECAPS($HDC,$IINDEX)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","int","GetDeviceCaps","handle",$HDC,"int",$IINDEX)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETDIBITS($HDC,$HBMP,$ISTARTSCAN,$ISCANLINES,$PBITS,$PBI,$IUSAGE)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","int","GetDIBits","handle",$HDC,"handle",$HBMP,"uint",$ISTARTSCAN,"uint",$ISCANLINES,"ptr",$PBITS,"ptr",$PBI,"uint",$IUSAGE)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,FALSE )
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETDLGCTRLID($HWND)
- LOCAL $ARESULT=DLLCALL("user32.dll","int","GetDlgCtrlID","hwnd",$HWND)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETDLGITEM($HWND,$IITEMID)
- LOCAL $ARESULT=DLLCALL("user32.dll","hwnd","GetDlgItem","hwnd",$HWND,"int",$IITEMID)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETFOCUS()
- LOCAL $ARESULT=DLLCALL("user32.dll","hwnd","GetFocus")
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETFOREGROUNDWINDOW()
- LOCAL $ARESULT=DLLCALL("user32.dll","hwnd","GetForegroundWindow")
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETGUIRESOURCES($IFLAG=0,$HPROCESS=-1)
- IF $HPROCESS=-1 THEN $HPROCESS=_WINAPI_GETCURRENTPROCESS()
- LOCAL $ARESULT=DLLCALL("user32.dll","dword","GetGuiResources","handle",$HPROCESS,"dword",$IFLAG)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETICONINFO($HICON)
- LOCAL $TINFO=DLLSTRUCTCREATE($TAGICONINFO)
- DLLCALL("user32.dll","bool","GetIconInfo","handle",$HICON,"struct*",$TINFO)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- LOCAL $AICON[6]
- $AICON[0]=TRUE
- $AICON[1]=DLLSTRUCTGETDATA($TINFO,"Icon")<>0
- $AICON[2]=DLLSTRUCTGETDATA($TINFO,"XHotSpot")
- $AICON[3]=DLLSTRUCTGETDATA($TINFO,"YHotSpot")
- $AICON[4]=DLLSTRUCTGETDATA($TINFO,"hMask")
- $AICON[5]=DLLSTRUCTGETDATA($TINFO,"hColor")
- RETURN $AICON
- ENDFUNC
- FUNC _WINAPI_GETFILESIZEEX($HFILE)
- LOCAL $ARESULT=DLLCALL("kernel32.dll","bool","GetFileSizeEx","handle",$HFILE,"int64*",0)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[2]
- ENDFUNC
- FUNC _WINAPI_GETLASTERRORMESSAGE()
- LOCAL $TBUFFERPTR=DLLSTRUCTCREATE("ptr")
- LOCAL $NCOUNT=_WINAPI_FORMATMESSAGE(BITOR($__WINAPICONSTANT_FORMAT_MESSAGE_ALLOCATE_BUFFER,$__WINAPICONSTANT_FORMAT_MESSAGE_FROM_SYSTEM),0,_WINAPI_GETLASTERROR(),0,$TBUFFERPTR,0,0)
- IF @ERROR THEN RETURN SETERROR(@ERROR,0,"")
- LOCAL $STEXT=""
- LOCAL $PBUFFER=DLLSTRUCTGETDATA($TBUFFERPTR,1)
- IF $PBUFFER THEN
- IF $NCOUNT>0 THEN
- LOCAL $TBUFFER=DLLSTRUCTCREATE("wchar["&($NCOUNT+1)&"]",$PBUFFER)
- $STEXT=DLLSTRUCTGETDATA($TBUFFER,1)
- ENDIF
- _WINAPI_LOCALFREE($PBUFFER)
- ENDIF
- RETURN $STEXT
- ENDFUNC
- FUNC _WINAPI_GETLAYEREDWINDOWATTRIBUTES($HWND,BYREF $I_TRANSCOLOR,BYREF $TRANSPARENCY,$ASCOLORREF=FALSE )
- $I_TRANSCOLOR=-1
- $TRANSPARENCY=-1
- LOCAL $ARESULT=DLLCALL("user32.dll","bool","GetLayeredWindowAttributes","hwnd",$HWND,"dword*",$I_TRANSCOLOR,"byte*",$TRANSPARENCY,"dword*",0)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- IF NOT $ASCOLORREF THEN
- $ARESULT[2]=INT(BINARYMID($ARESULT[2],3,1)&BINARYMID($ARESULT[2],2,1)&BINARYMID($ARESULT[2],1,1))
- ENDIF
- $I_TRANSCOLOR=$ARESULT[2]
- $TRANSPARENCY=$ARESULT[3]
- RETURN $ARESULT[4]
- ENDFUNC
- FUNC _WINAPI_GETMODULEHANDLE($SMODULENAME)
- LOCAL $SMODULENAMETYPE="wstr"
- IF $SMODULENAME="" THEN
- $SMODULENAME=0
- $SMODULENAMETYPE="ptr"
- ENDIF
- LOCAL $ARESULT=DLLCALL("kernel32.dll","handle","GetModuleHandleW",$SMODULENAMETYPE,$SMODULENAME)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETMOUSEPOS($FTOCLIENT=FALSE ,$HWND=0)
- LOCAL $IMODE=OPT("MouseCoordMode",1)
- LOCAL $APOS=MOUSEGETPOS()
- OPT("MouseCoordMode",$IMODE)
- LOCAL $TPOINT=DLLSTRUCTCREATE($TAGPOINT)
- DLLSTRUCTSETDATA($TPOINT,"X",$APOS[0])
- DLLSTRUCTSETDATA($TPOINT,"Y",$APOS[1])
- IF $FTOCLIENT THEN
- _WINAPI_SCREENTOCLIENT($HWND,$TPOINT)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- ENDIF
- RETURN $TPOINT
- ENDFUNC
- FUNC _WINAPI_GETMOUSEPOSX($FTOCLIENT=FALSE ,$HWND=0)
- LOCAL $TPOINT=_WINAPI_GETMOUSEPOS($FTOCLIENT,$HWND)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN DLLSTRUCTGETDATA($TPOINT,"X")
- ENDFUNC
- FUNC _WINAPI_GETMOUSEPOSY($FTOCLIENT=FALSE ,$HWND=0)
- LOCAL $TPOINT=_WINAPI_GETMOUSEPOS($FTOCLIENT,$HWND)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN DLLSTRUCTGETDATA($TPOINT,"Y")
- ENDFUNC
- FUNC _WINAPI_GETOBJECT($HOBJECT,$ISIZE,$POBJECT)
- LOCAL $ARESULT=DLLCALL("gdi32.dll","int","GetObjectW","handle",$HOBJECT,"int",$ISIZE,"ptr",$POBJECT)
- IF @ERROR THEN RETURN SETERROR(@ERROR,@EXTENDED,0)
- RETURN $ARESULT[0]
- ENDFUNC
- FUNC _WINAPI_GETOPENFILENAME($STITLE="",$SFILTER="All files (*.*)",$SINITALDIR=".",$SDEFAULTFILE="",$SDEFAULTEXT="",$IFILTERINDEX=1,$IFLAGS=0,$IFLAGSEX=0,$HWNDOWNER=0)
- LOCAL $IPATHLEN=4096
- LOCAL $INULLS=0
- LOCAL $TOFN=DLLSTRUCTCREATE($TAGOPENFILENAME)
- LOCAL $AFILES[1]=[0]
- LOCAL $IFLAG=$IFLAGS
- LOCAL $ASFLINES=STRINGSPLIT($SFILTER,"|")
- LOCAL $ASFILTER[$ASFLINES[0]*2+1]
- LOCAL $ISTART,$IFINAL,$STFILTER
- $ASFILTER[0]=$ASFLINES[0]*2
- FOR $I=1 TO $ASFLINES[0]
- $ISTART=STRINGINSTR($ASFLINES[$I],"(",0,1)
- $IFINAL=STRINGINSTR($ASFLINES[$I],")",0,-1)
- $ASFILTER[$I*2-1]=STRINGSTRIPWS(STRINGLEFT($ASFLINES[$I],$ISTART-1),3)
- $ASFILTER[$I*2]=STRINGSTRIPWS(STRINGTRIMRIGHT(STRINGTRIMLEFT($ASFLINES[$I],$ISTART),STRINGLEN($ASFLINES[$I])-$IFINAL+1),3)
- $STFILTER&="wchar["&STRINGLEN($ASFILTER[$I*2-1])+1&"];wchar["&STRINGLEN($ASFILTER[$I*2])+1&"];"
- NEXT
- LOCAL $TTITLE=DLLSTRUCTCREATE("wchar Title["&STRINGLEN($STITLE)+1&"]")
- LOCAL $TINITIALDIR=DLLSTRUCTCREATE("wchar InitDir["&STRINGLEN($SINITALDIR)+1&"]")
- LOCAL $TFILTER=DLLSTRUCTCREATE($STFILTER&"wchar")
- LOCAL $TPATH=DLLSTRUCTCREATE("wchar Path["&$IPATHLEN&"]")
- LOCAL $TEXTN=DLLSTRUCTCREATE("wchar Extension["&STRINGLEN($SDEFAULTEXT)+1&"]")
- FOR $I=1 TO $ASFILTER[0]
- DLLSTRUCTSETDATA($TFILTER,$I,$ASFILTER[$I])
- NEXT
- DLLSTRUCTSETDATA($TTITLE,"Title",$STITLE)
- DLLSTRUCTSETDATA($TINITIALDIR,"InitDir",$SINITALDIR)
- DLLSTRUCTSETDATA($TPATH,"Path",$SDEFAULTFILE)
- DLLSTRUCTSETDATA($TEXTN,"Extension",$SDEFAULTEXT)
- DLLSTRUCTSETDATA($TOFN,"StructSize",DLLSTRUCTGETSIZE($TOFN))
- DLLSTRUCTSETDATA($TOFN,"hwndOwner",$HWNDOWNER)
- DLLSTRUCTSETDATA($TOFN,"lpstrFilter",DLLSTRUCTGETPTR($TFILTER))
- DLLSTRUCTSETDATA($TOFN,"nFilterIndex",$IFILTERINDEX)
- DLLSTRUCTSETDATA($TOFN,"lpstrFile",DLLSTRUCTGETPTR($TPATH))
- DLLSTRUCTSETDATA($TOFN,"nMaxFile",$IPATHLEN)
- DLLSTRUCTSETDATA($TOFN,"lpstrInitialDir",DLLSTRUCTGETPTR($TINITIALDIR))
- DLLSTRUCTSETDATA($TOFN,"lpstrTitle",DLLSTRUCTGETPTR($TTITLE))
- DLLSTRUCTSETDATA($TOFN,"Flags",$IFLAG)
- DLLSTRUCTSETDATA($TOFN,"lpstrDefExt",DLLSTRUCTGETPTR($TEXTN))
- DLLSTRUCTSETDATA($TOFN,"FlagsEx",$IFLAGSEX)
- DLLCALL("comdlg32.dll","bool","GetOpenFileNameW","struct*",$TOFN)
- IF @ERRO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement