首页
社区
课程
招聘
[讨论]Autoit 3.3.6.1 反编译
2010-10-17 23:47 24050

[讨论]Autoit 3.3.6.1 反编译

2010-10-17 23:47
24050
哪位大大对AU3程序反编译的比较精通交流下经验!

这个我进行跟踪只能还原部分脚本内容! 有什么方法能完整的还原代码吗?

下面附件是该AU3程序与我还原出来的部分代码! 各位大大别藏着掖着了,分享下经验!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (34)
雪    币: 611
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ximo 2010-10-18 09:03
2
0
#Region 
#AutoIt3Wrapper_icon=woniu.ico 
#AutoIt3Wrapper_outfile=编译成品\NOD32ID.exe 
#AutoIt3Wrapper_Res_Comment=NOD32 ESS ID获取器 BY HTTP://MEGNIU.IN QQ:114026307 
#AutoIt3Wrapper_Res_Description=NOD32 ESS ID获取器 BY HTTP://MEGNIU.IN 
#AutoIt3Wrapper_Res_Fileversion=1.0.0.7 
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y 
#AutoIt3Wrapper_Res_LegalCopyright=MEGNIU.IN 
#EndRegion 
GLOBAL CONST $INTERNET_DEFAULT_PORT = 0 
GLOBAL CONST $INTERNET_DEFAULT_HTTP_PORT = 80 
GLOBAL CONST $INTERNET_DEFAULT_HTTPS_PORT = 443 
GLOBAL CONST $INTERNET_SCHEME_HTTP = 1 
GLOBAL CONST $INTERNET_SCHEME_HTTPS = 2 
GLOBAL CONST $ICU_ESCAPE = -2147483648 
GLOBAL CONST $WINHTTP_FLAG_ASYNC = 268435456 
GLOBAL CONST $WINHTTP_FLAG_ESCAPE_PERCENT = 4 
GLOBAL CONST $WINHTTP_FLAG_NULL_CODEPAGE = 8 
GLOBAL CONST $WINHTTP_FLAG_ESCAPE_DISABLE = 64 
GLOBAL CONST $WINHTTP_FLAG_ESCAPE_DISABLE_QUERY = 128 
GLOBAL CONST $WINHTTP_FLAG_BYPASS_PROXY_CACHE = 256 
GLOBAL CONST $WINHTTP_FLAG_REFRESH = $WINHTTP_FLAG_BYPASS_PROXY_CACHE 
GLOBAL CONST $WINHTTP_FLAG_SECURE = 8388608 
GLOBAL CONST $WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0 
GLOBAL CONST $WINHTTP_ACCESS_TYPE_NO_PROXY = 1 
GLOBAL CONST $WINHTTP_ACCESS_TYPE_NAMED_PROXY = 3 
GLOBAL CONST $WINHTTP_NO_PROXY_NAME = "" 
GLOBAL CONST $WINHTTP_NO_PROXY_BYPASS = "" 
GLOBAL CONST $WINHTTP_NO_REFERER = "" 
GLOBAL CONST $WINHTTP_DEFAULT_ACCEPT_TYPES = "" 
GLOBAL CONST $WINHTTP_NO_ADDITIONAL_HEADERS = "" 
GLOBAL CONST $WINHTTP_NO_REQUEST_DATA = "" 
GLOBAL CONST $WINHTTP_HEADER_NAME_BY_INDEX = "" 
GLOBAL CONST $WINHTTP_NO_OUTPUT_BUFFER = 0 
GLOBAL CONST $WINHTTP_NO_HEADER_INDEX = 0 
GLOBAL CONST $WINHTTP_ADDREQ_INDEX_MASK = 65535 
GLOBAL CONST $WINHTTP_ADDREQ_FLAGS_MASK = -65536 
GLOBAL CONST $WINHTTP_ADDREQ_FLAG_ADD_IF_NEW = 268435456 
GLOBAL CONST $WINHTTP_ADDREQ_FLAG_ADD = 536870912 
GLOBAL CONST $WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 1073741824 
GLOBAL CONST $WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 16777216 
GLOBAL CONST $WINHTTP_ADDREQ_FLAG_COALESCE = $WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA 
GLOBAL CONST $WINHTTP_ADDREQ_FLAG_REPLACE = -2147483648 
GLOBAL CONST $WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH = 0 
GLOBAL CONST $WINHTTP_OPTION_CALLBACK = 1 
GLOBAL CONST $WINHTTP_FIRST_OPTION = $WINHTTP_OPTION_CALLBACK 
GLOBAL CONST $WINHTTP_OPTION_RESOLVE_TIMEOUT = 2 
GLOBAL CONST $WINHTTP_OPTION_CONNECT_TIMEOUT = 3 
GLOBAL CONST $WINHTTP_OPTION_CONNECT_RETRIES = 4 
GLOBAL CONST $WINHTTP_OPTION_SEND_TIMEOUT = 5 
GLOBAL CONST $WINHTTP_OPTION_RECEIVE_TIMEOUT = 6 
GLOBAL CONST $WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT = 7 
GLOBAL CONST $WINHTTP_OPTION_HANDLE_TYPE = 9 
GLOBAL CONST $WINHTTP_OPTION_READ_BUFFER_SIZE = 12 
GLOBAL CONST $WINHTTP_OPTION_WRITE_BUFFER_SIZE = 13 
GLOBAL CONST $WINHTTP_OPTION_PARENT_HANDLE = 21 
GLOBAL CONST $WINHTTP_OPTION_EXTENDED_ERROR = 24 
GLOBAL CONST $WINHTTP_OPTION_SECURITY_FLAGS = 31 
GLOBAL CONST $WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT = 32 
GLOBAL CONST $WINHTTP_OPTION_URL = 34 
GLOBAL CONST $WINHTTP_OPTION_SECURITY_KEY_BITNESS = 36 
GLOBAL CONST $WINHTTP_OPTION_PROXY = 38 
GLOBAL CONST $WINHTTP_OPTION_USER_AGENT = 41 
GLOBAL CONST $WINHTTP_OPTION_CONTEXT_VALUE = 45 
GLOBAL CONST $WINHTTP_OPTION_CLIENT_CERT_CONTEXT = 47 
GLOBAL CONST $WINHTTP_OPTION_REQUEST_PRIORITY = 58 
GLOBAL CONST $WINHTTP_OPTION_HTTP_VERSION = 59 
GLOBAL CONST $WINHTTP_OPTION_DISABLE_FEATURE = 63 
GLOBAL CONST $WINHTTP_OPTION_CODEPAGE = 68 
GLOBAL CONST $WINHTTP_OPTION_MAX_CONNS_PER_SERVER = 73 
GLOBAL CONST $WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER = 74 
GLOBAL CONST $WINHTTP_OPTION_AUTOLOGON_POLICY = 77 
GLOBAL CONST $WINHTTP_OPTION_SERVER_CERT_CONTEXT = 78 
GLOBAL CONST $WINHTTP_OPTION_ENABLE_FEATURE = 79 
GLOBAL CONST $WINHTTP_OPTION_WORKER_THREAD_COUNT = 80 
GLOBAL CONST $WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT = 81 
GLOBAL CONST $WINHTTP_OPTION_PASSPORT_COBRANDING_URL = 82 
GLOBAL CONST $WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH = 83 
GLOBAL CONST $WINHTTP_OPTION_SECURE_PROTOCOLS = 84 
GLOBAL CONST $WINHTTP_OPTION_ENABLETRACING = 85 
GLOBAL CONST $WINHTTP_OPTION_PASSPORT_SIGN_OUT = 86 
GLOBAL CONST $WINHTTP_OPTION_PASSPORT_RETURN_URL = 87 
GLOBAL CONST $WINHTTP_OPTION_REDIRECT_POLICY = 88 
GLOBAL CONST $WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS = 89 
GLOBAL CONST $WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE = 90 
GLOBAL CONST $WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE = 91 
GLOBAL CONST $WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE = 92 
GLOBAL CONST $WINHTTP_OPTION_CONNECTION_INFO = 93 
GLOBAL CONST $WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST = 94 
GLOBAL CONST $WINHTTP_OPTION_SPN = 96 
GLOBAL CONST $WINHTTP_OPTION_GLOBAL_PROXY_CREDS = 97 
GLOBAL CONST $WINHTTP_OPTION_GLOBAL_SERVER_CREDS = 98 
GLOBAL CONST $WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT = 99 
GLOBAL CONST $WINHTTP_OPTION_REJECT_USERPWD_IN_URL = 100 
GLOBAL CONST $WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS = 101 
GLOBAL CONST $WINHTTP_LAST_OPTION = $WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS 
GLOBAL CONST $WINHTTP_OPTION_USERNAME = 4096 
GLOBAL CONST $WINHTTP_OPTION_PASSWORD = 4097 
GLOBAL CONST $WINHTTP_OPTION_PROXY_USERNAME = 4098 
GLOBAL CONST $WINHTTP_OPTION_PROXY_PASSWORD = 4099 
GLOBAL CONST $WINHTTP_CONNS_PER_SERVER_UNLIMITED = -1 
GLOBAL CONST $WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM = 0 
GLOBAL CONST $WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW = 1 
GLOBAL CONST $WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH = 2 
GLOBAL CONST $WINHTTP_AUTOLOGON_SECURITY_LEVEL_DEFAULT = $WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM 
GLOBAL CONST $WINHTTP_OPTION_REDIRECT_POLICY_NEVER = 0 
GLOBAL CONST $WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP = 1 
GLOBAL CONST $WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS = 2 
GLOBAL CONST $WINHTTP_OPTION_REDIRECT_POLICY_LAST = $WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS 
GLOBAL CONST $WINHTTP_OPTION_REDIRECT_POLICY_DEFAULT = $WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP 
GLOBAL CONST $WINHTTP_DISABLE_PASSPORT_AUTH = 0 
GLOBAL CONST $WINHTTP_ENABLE_PASSPORT_AUTH = 268435456 
GLOBAL CONST $WINHTTP_DISABLE_PASSPORT_KEYRING = 536870912 
GLOBAL CONST $WINHTTP_ENABLE_PASSPORT_KEYRING = 1073741824 
GLOBAL CONST $WINHTTP_DISABLE_COOKIES = 1 
GLOBAL CONST $WINHTTP_DISABLE_REDIRECTS = 2 
GLOBAL CONST $WINHTTP_DISABLE_AUTHENTICATION = 4 
GLOBAL CONST $WINHTTP_DISABLE_KEEP_ALIVE = 8 
GLOBAL CONST $WINHTTP_ENABLE_SSL_REVOCATION = 1 
GLOBAL CONST $WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION = 2 
GLOBAL CONST $WINHTTP_DISABLE_SPN_SERVER_PORT = 0 
GLOBAL CONST $WINHTTP_ENABLE_SPN_SERVER_PORT = 1 
GLOBAL CONST $WINHTTP_OPTION_SPN_MASK = $WINHTTP_ENABLE_SPN_SERVER_PORT 
GLOBAL CONST $WINHTTP_ERROR_BASE = 12000 
GLOBAL CONST $ERROR_WINHTTP_OUT_OF_HANDLES = 12001 
GLOBAL CONST $ERROR_WINHTTP_TIMEOUT = 12002 
GLOBAL CONST $ERROR_WINHTTP_INTERNAL_ERROR = 12004 
GLOBAL CONST $ERROR_WINHTTP_INVALID_URL = 12005 
GLOBAL CONST $ERROR_WINHTTP_UNRECOGNIZED_SCHEME = 12006 
GLOBAL CONST $ERROR_WINHTTP_NAME_NOT_RESOLVED = 12007 
GLOBAL CONST $ERROR_WINHTTP_INVALID_OPTION = 12009 
GLOBAL CONST $ERROR_WINHTTP_OPTION_NOT_SETTABLE = 12011 
GLOBAL CONST $ERROR_WINHTTP_SHUTDOWN = 12012 
GLOBAL CONST $ERROR_WINHTTP_LOGIN_FAILURE = 12015 
GLOBAL CONST $ERROR_WINHTTP_OPERATION_CANCELLED = 12017 
GLOBAL CONST $ERROR_WINHTTP_INCORRECT_HANDLE_TYPE = 12018 
GLOBAL CONST $ERROR_WINHTTP_INCORRECT_HANDLE_STATE = 12019 
GLOBAL CONST $ERROR_WINHTTP_CANNOT_CONNECT = 12029 
GLOBAL CONST $ERROR_WINHTTP_CONNECTION_ERROR = 12030 
GLOBAL CONST $ERROR_WINHTTP_RESEND_REQUEST = 12032 
GLOBAL CONST $ERROR_WINHTTP_SECURE_CERT_DATE_INVALID = 12037 
GLOBAL CONST $ERROR_WINHTTP_SECURE_CERT_CN_INVALID = 12038 
GLOBAL CONST $ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED = 12044 
GLOBAL CONST $ERROR_WINHTTP_SECURE_INVALID_CA = 12045 
GLOBAL CONST $ERROR_WINHTTP_SECURE_CERT_REV_FAILED = 12057 
GLOBAL CONST $ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN = 12100 
GLOBAL CONST $ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND = 12101 
GLOBAL CONST $ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND = 12102 
GLOBAL CONST $ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN = 12103 
GLOBAL CONST $ERROR_WINHTTP_HEADER_NOT_FOUND = 12150 
GLOBAL CONST $ERROR_WINHTTP_INVALID_SERVER_RESPONSE = 12152 
GLOBAL CONST $ERROR_WINHTTP_INVALID_HEADER = 12153 
GLOBAL CONST $ERROR_WINHTTP_INVALID_QUERY_REQUEST = 12154 
GLOBAL CONST $ERROR_WINHTTP_HEADER_ALREADY_EXISTS = 12155 
GLOBAL CONST $ERROR_WINHTTP_REDIRECT_FAILED = 12156 
GLOBAL CONST $ERROR_WINHTTP_SECURE_CHANNEL_ERROR = 12157 
GLOBAL CONST $ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT = 12166 
GLOBAL CONST $ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT = 12167 
GLOBAL CONST $ERROR_WINHTTP_SECURE_INVALID_CERT = 12169 
GLOBAL CONST $ERROR_WINHTTP_SECURE_CERT_REVOKED = 12170 
GLOBAL CONST $ERROR_WINHTTP_NOT_INITIALIZED = 12172 
GLOBAL CONST $ERROR_WINHTTP_SECURE_FAILURE = 12175 
GLOBAL CONST $ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR = 12178 
GLOBAL CONST $ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE = 12179 
GLOBAL CONST $ERROR_WINHTTP_AUTODETECTION_FAILED = 12180 
GLOBAL CONST $ERROR_WINHTTP_HEADER_COUNT_EXCEEDED = 12181 
GLOBAL CONST $ERROR_WINHTTP_HEADER_SIZE_OVERFLOW = 12182 
GLOBAL CONST $ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW = 12183 
GLOBAL CONST $ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW = 12184 
GLOBAL CONST $ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY = 12185 
GLOBAL CONST $ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY = 12186 
GLOBAL CONST $WINHTTP_ERROR_LAST = 12186 
GLOBAL CONST $HTTP_STATUS_CONTINUE = 100 
GLOBAL CONST $HTTP_STATUS_SWITCH_PROTOCOLS = 101 
GLOBAL CONST $HTTP_STATUS_OK = 200 
GLOBAL CONST $HTTP_STATUS_CREATED = 201 
GLOBAL CONST $HTTP_STATUS_ACCEPTED = 202 
GLOBAL CONST $HTTP_STATUS_PARTIAL = 203 
GLOBAL CONST $HTTP_STATUS_NO_CONTENT = 204 
GLOBAL CONST $HTTP_STATUS_RESET_CONTENT = 205 
GLOBAL CONST $HTTP_STATUS_PARTIAL_CONTENT = 206 
GLOBAL CONST $HTTP_STATUS_WEBDAV_MULTI_STATUS = 207 
GLOBAL CONST $HTTP_STATUS_AMBIGUOUS = 300 
GLOBAL CONST $HTTP_STATUS_MOVED = 301 
GLOBAL CONST $HTTP_STATUS_REDIRECT = 302 
GLOBAL CONST $HTTP_STATUS_REDIRECT_METHOD = 303 
GLOBAL CONST $HTTP_STATUS_NOT_MODIFIED = 304 
GLOBAL CONST $HTTP_STATUS_USE_PROXY = 305 
GLOBAL CONST $HTTP_STATUS_REDIRECT_KEEP_VERB = 307 
GLOBAL CONST $HTTP_STATUS_BAD_REQUEST = 400 
GLOBAL CONST $HTTP_STATUS_DENIED = 401 
GLOBAL CONST $HTTP_STATUS_PAYMENT_REQ = 402 
GLOBAL CONST $HTTP_STATUS_FORBIDDEN = 403 
GLOBAL CONST $HTTP_STATUS_NOT_FOUND = 404 
GLOBAL CONST $HTTP_STATUS_BAD_METHOD = 405 
GLOBAL CONST $HTTP_STATUS_NONE_ACCEPTABLE = 406 
GLOBAL CONST $HTTP_STATUS_PROXY_AUTH_REQ = 407 
GLOBAL CONST $HTTP_STATUS_REQUEST_TIMEOUT = 408 
GLOBAL CONST $HTTP_STATUS_CONFLICT = 409 
GLOBAL CONST $HTTP_STATUS_GONE = 410 
GLOBAL CONST $HTTP_STATUS_LENGTH_REQUIRED = 411 
GLOBAL CONST $HTTP_STATUS_PRECOND_FAILED = 412 
GLOBAL CONST $HTTP_STATUS_REQUEST_TOO_LARGE = 413 
GLOBAL CONST $HTTP_STATUS_URI_TOO_LONG = 414 
GLOBAL CONST $HTTP_STATUS_UNSUPPORTED_MEDIA = 415 
GLOBAL CONST $HTTP_STATUS_RETRY_WITH = 449 
GLOBAL CONST $HTTP_STATUS_SERVER_ERROR = 500 
GLOBAL CONST $HTTP_STATUS_NOT_SUPPORTED = 501 
GLOBAL CONST $HTTP_STATUS_BAD_GATEWAY = 502 
GLOBAL CONST $HTTP_STATUS_SERVICE_UNAVAIL = 503 
GLOBAL CONST $HTTP_STATUS_GATEWAY_TIMEOUT = 504 
GLOBAL CONST $HTTP_STATUS_VERSION_NOT_SUP = 505 
GLOBAL CONST $HTTP_STATUS_FIRST = $HTTP_STATUS_CONTINUE 
GLOBAL CONST $HTTP_STATUS_LAST = $HTTP_STATUS_VERSION_NOT_SUP 
GLOBAL CONST $SECURITY_FLAG_IGNORE_UNKNOWN_CA = 256 
GLOBAL CONST $SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 8192 
GLOBAL CONST $SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 4096 
GLOBAL CONST $SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE = 512 
GLOBAL CONST $SECURITY_FLAG_SECURE = 1 
GLOBAL CONST $SECURITY_FLAG_STRENGTH_WEAK = 268435456 
GLOBAL CONST $SECURITY_FLAG_STRENGTH_MEDIUM = 1073741824 
GLOBAL CONST $SECURITY_FLAG_STRENGTH_STRONG = 536870912 
GLOBAL CONST $ICU_NO_ENCODE = 536870912 
GLOBAL CONST $ICU_DECODE = 268435456 
GLOBAL CONST $ICU_NO_META = 134217728 
GLOBAL CONST $ICU_ENCODE_SPACES_ONLY = 67108864 
GLOBAL CONST $ICU_BROWSER_MODE = 33554432 
GLOBAL CONST $ICU_ENCODE_PERCENT = 4096 
GLOBAL CONST $WINHTTP_QUERY_MIME_VERSION = 0 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_TYPE = 1 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_ID = 3 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_DESCRIPTION = 4 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_LENGTH = 5 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_LANGUAGE = 6 
GLOBAL CONST $WINHTTP_QUERY_ALLOW = 7 
GLOBAL CONST $WINHTTP_QUERY_PUBLIC = 8 
GLOBAL CONST $WINHTTP_QUERY_DATE = 9 
GLOBAL CONST $WINHTTP_QUERY_EXPIRES = 10 
GLOBAL CONST $WINHTTP_QUERY_LAST_MODIFIED = 11 
GLOBAL CONST $WINHTTP_QUERY_MESSAGE_ID = 12 
GLOBAL CONST $WINHTTP_QUERY_URI = 13 
GLOBAL CONST $WINHTTP_QUERY_DERIVED_FROM = 14 
GLOBAL CONST $WINHTTP_QUERY_COST = 15 
GLOBAL CONST $WINHTTP_QUERY_LINK = 16 
GLOBAL CONST $WINHTTP_QUERY_PRAGMA = 17 
GLOBAL CONST $WINHTTP_QUERY_VERSION = 18 
GLOBAL CONST $WINHTTP_QUERY_STATUS_CODE = 19 
GLOBAL CONST $WINHTTP_QUERY_STATUS_TEXT = 20 
GLOBAL CONST $WINHTTP_QUERY_RAW_HEADERS = 21 
GLOBAL CONST $WINHTTP_QUERY_RAW_HEADERS_CRLF = 22 
GLOBAL CONST $WINHTTP_QUERY_CONNECTION = 23 
GLOBAL CONST $WINHTTP_QUERY_ACCEPT = 24 
GLOBAL CONST $WINHTTP_QUERY_ACCEPT_CHARSET = 25 
GLOBAL CONST $WINHTTP_QUERY_ACCEPT_ENCODING = 26 
GLOBAL CONST $WINHTTP_QUERY_ACCEPT_LANGUAGE = 27 
GLOBAL CONST $WINHTTP_QUERY_AUTHORIZATION = 28 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_ENCODING = 29 
GLOBAL CONST $WINHTTP_QUERY_FORWARDED = 30 
GLOBAL CONST $WINHTTP_QUERY_FROM = 31 
GLOBAL CONST $WINHTTP_QUERY_IF_MODIFIED_SINCE = 32 
GLOBAL CONST $WINHTTP_QUERY_LOCATION = 33 
GLOBAL CONST $WINHTTP_QUERY_ORIG_URI = 34 
GLOBAL CONST $WINHTTP_QUERY_REFERER = 35 
GLOBAL CONST $WINHTTP_QUERY_RETRY_AFTER = 36 
GLOBAL CONST $WINHTTP_QUERY_SERVER = 37 
GLOBAL CONST $WINHTTP_QUERY_TITLE = 38 
GLOBAL CONST $WINHTTP_QUERY_USER_AGENT = 39 
GLOBAL CONST $WINHTTP_QUERY_WWW_AUTHENTICATE = 40 
GLOBAL CONST $WINHTTP_QUERY_PROXY_AUTHENTICATE = 41 
GLOBAL CONST $WINHTTP_QUERY_ACCEPT_RANGES = 42 
GLOBAL CONST $WINHTTP_QUERY_SET_COOKIE = 43 
GLOBAL CONST $WINHTTP_QUERY_COOKIE = 44 
GLOBAL CONST $WINHTTP_QUERY_REQUEST_METHOD = 45 
GLOBAL CONST $WINHTTP_QUERY_REFRESH = 46 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_DISPOSITION = 47 
GLOBAL CONST $WINHTTP_QUERY_AGE = 48 
GLOBAL CONST $WINHTTP_QUERY_CACHE_CONTROL = 49 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_BASE = 50 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_LOCATION = 51 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_MD5 = 52 
GLOBAL CONST $WINHTTP_QUERY_CONTENT_RANGE = 53 
GLOBAL CONST $WINHTTP_QUERY_ETAG = 54 
GLOBAL CONST $WINHTTP_QUERY_HOST = 55 
GLOBAL CONST $WINHTTP_QUERY_IF_MATCH = 56 
GLOBAL CONST $WINHTTP_QUERY_IF_NONE_MATCH = 57 
GLOBAL CONST $WINHTTP_QUERY_IF_RANGE = 58 
GLOBAL CONST $WINHTTP_QUERY_IF_UNMODIFIED_SINCE = 59 
GLOBAL CONST $WINHTTP_QUERY_MAX_FORWARDS = 60 
GLOBAL CONST $WINHTTP_QUERY_PROXY_AUTHORIZATION = 61 
GLOBAL CONST $WINHTTP_QUERY_RANGE = 62 
GLOBAL CONST $WINHTTP_QUERY_TRANSFER_ENCODING = 63 
GLOBAL CONST $WINHTTP_QUERY_UPGRADE = 64 
GLOBAL CONST $WINHTTP_QUERY_VARY = 65 
GLOBAL CONST $WINHTTP_QUERY_VIA = 66 
GLOBAL CONST $WINHTTP_QUERY_WARNING = 67 
GLOBAL CONST $WINHTTP_QUERY_EXPECT = 68 
GLOBAL CONST $WINHTTP_QUERY_PROXY_CONNECTION = 69 
GLOBAL CONST $WINHTTP_QUERY_UNLESS_MODIFIED_SINCE = 70 
GLOBAL CONST $WINHTTP_QUERY_PROXY_SUPPORT = 75 
GLOBAL CONST $WINHTTP_QUERY_AUTHENTICATION_INFO = 76 
GLOBAL CONST $WINHTTP_QUERY_PASSPORT_URLS = 77 
GLOBAL CONST $WINHTTP_QUERY_PASSPORT_CONFIG = 78 
GLOBAL CONST $WINHTTP_QUERY_MAX = 78 
GLOBAL CONST $WINHTTP_QUERY_CUSTOM = 65535 
GLOBAL CONST $WINHTTP_QUERY_FLAG_REQUEST_HEADERS = -2147483648 
GLOBAL CONST $WINHTTP_QUERY_FLAG_SYSTEMTIME = 1073741824 
GLOBAL CONST $WINHTTP_QUERY_FLAG_NUMBER = 536870912 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_RESOLVING_NAME = 1 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_NAME_RESOLVED = 2 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER = 4 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER = 8 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_SENDING_REQUEST = 16 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_REQUEST_SENT = 32 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE = 64 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED = 128 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION = 256 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED = 512 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_HANDLE_CREATED = 1024 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING = 2048 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_DETECTING_PROXY = 4096 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_REDIRECT = 16384 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE = 32768 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_SECURE_FAILURE = 65536 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE = 131072 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE = 262144 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_READ_COMPLETE = 524288 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE = 1048576 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_REQUEST_ERROR = 2097152 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE = 4194304 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_RESOLVE_NAME = BITOR ( $WINHTTP_CALLBACK_STATUS_RESOLVING_NAME , $WINHTTP_CALLBACK_STATUS_NAME_RESOLVED ) 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER = BITOR ( $WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER , $WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER ) 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_SEND_REQUEST = BITOR ( $WINHTTP_CALLBACK_STATUS_SENDING_REQUEST , $WINHTTP_CALLBACK_STATUS_REQUEST_SENT ) 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE = BITOR ( $WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE , $WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED ) 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION = BITOR ( $WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION , $WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED ) 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_HANDLES = BITOR ( $WINHTTP_CALLBACK_STATUS_HANDLE_CREATED , $WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING ) 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_DETECTING_PROXY = $WINHTTP_CALLBACK_STATUS_DETECTING_PROXY 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_REDIRECT = $WINHTTP_CALLBACK_STATUS_REDIRECT 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE = $WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_SECURE_FAILURE = $WINHTTP_CALLBACK_STATUS_SECURE_FAILURE 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE = $WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE = $WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE = $WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_READ_COMPLETE = $WINHTTP_CALLBACK_STATUS_READ_COMPLETE 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE = $WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_REQUEST_ERROR = $WINHTTP_CALLBACK_STATUS_REQUEST_ERROR 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS = BITOR ( $WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE , $WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE , $WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE , $WINHTTP_CALLBACK_STATUS_READ_COMPLETE , $WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE , $WINHTTP_CALLBACK_STATUS_REQUEST_ERROR ) 
GLOBAL CONST $WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS = -1 
GLOBAL CONST $API_RECEIVE_RESPONSE = 1 
GLOBAL CONST $API_QUERY_DATA_AVAILABLE = 2 
GLOBAL CONST $API_READ_DATA = 3 
GLOBAL CONST $API_WRITE_DATA = 4 
GLOBAL CONST $API_SEND_REQUEST = 5 
GLOBAL CONST $WINHTTP_HANDLE_TYPE_SESSION = 1 
GLOBAL CONST $WINHTTP_HANDLE_TYPE_CONNECT = 2 
GLOBAL CONST $WINHTTP_HANDLE_TYPE_REQUEST = 3 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_FLAG_CERT_REV_FAILED = 1 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CERT = 2 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_FLAG_CERT_REVOKED = 4 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA = 8 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID = 16 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID = 32 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_FLAG_CERT_WRONG_USAGE = 64 
GLOBAL CONST $WINHTTP_CALLBACK_STATUS_FLAG_SECURITY_CHANNEL_ERROR = -2147483648 
GLOBAL CONST $WINHTTP_AUTH_SCHEME_BASIC = 1 
GLOBAL CONST $WINHTTP_AUTH_SCHEME_NTLM = 2 
GLOBAL CONST $WINHTTP_AUTH_SCHEME_PASSPORT = 4 
GLOBAL CONST $WINHTTP_AUTH_SCHEME_DIGEST = 8 
GLOBAL CONST $WINHTTP_AUTH_SCHEME_NEGOTIATE = 16 
GLOBAL CONST $WINHTTP_AUTH_TARGET_SERVER = 0 
GLOBAL CONST $WINHTTP_AUTH_TARGET_PROXY = 1 
GLOBAL CONST $WINHTTP_AUTOPROXY_AUTO_DETECT = 1 
GLOBAL CONST $WINHTTP_AUTOPROXY_CONFIG_URL = 2 
GLOBAL CONST $WINHTTP_AUTOPROXY_RUN_INPROCESS = 65536 
GLOBAL CONST $WINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY = 131072 
GLOBAL CONST $WINHTTP_AUTO_DETECT_TYPE_DHCP = 1 
GLOBAL CONST $WINHTTP_AUTO_DETECT_TYPE_DNS_A = 2 
DLLOPEN ( "winhttp.dll" ) 
FUNC _WINHTTPADDREQUESTHEADERS ( $HREQUEST , $SHEADER , $IMODIFIER = $WINHTTP_ADDREQ_FLAG_ADD_IF_NEW ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpAddRequestHeaders" , "hwnd" , $HREQUEST , "wstr" , $SHEADER , "dword" , - 1 , "dword" , $IMODIFIER ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , 1 ) 
ENDFUNC 
FUNC _WINHTTPBINARYCONCAT ( BYREF $BBINARY1 , BYREF $BBINARY2 ) 
SWITCH ISBINARY ( $BBINARY1 ) + 2 * ISBINARY ( $BBINARY2 ) 
CASE 0 
RETURN SETERROR ( 1 , 0 , 0 ) 
CASE 1 
RETURN SETERROR ( 0 , 0 , $BBINARY1 ) 
CASE 2 
RETURN SETERROR ( 0 , 0 , $BBINARY2 ) 
ENDSWITCH 
LOCAL $TAUXILIARY = DLLSTRUCTCREATE ( "byte[" & BINARYLEN ( $BBINARY1 ) & "];byte[" & BINARYLEN ( $BBINARY2 ) & "]" ) 
DLLSTRUCTSETDATA ( $TAUXILIARY , 1 , $BBINARY1 ) 
DLLSTRUCTSETDATA ( $TAUXILIARY , 2 , $BBINARY2 ) 
LOCAL $TOUTPUT = DLLSTRUCTCREATE ( "byte[" & DLLSTRUCTGETSIZE ( $TAUXILIARY ) & "]" , DLLSTRUCTGETPTR ( $TAUXILIARY ) ) 
RETURN SETERROR ( 0 , 0 , DLLSTRUCTGETDATA ( $TOUTPUT , 1 ) ) 
ENDFUNC 
FUNC _WINHTTPCHECKPLATFORM ( ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpCheckPlatform" ) 
IF @ERROR THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , $A_ICALL [ 0 ] ) 
ENDFUNC 
FUNC _WINHTTPCLOSEHANDLE ( $HINTERNET ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpCloseHandle" , "hwnd" , $HINTERNET ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , 1 ) 
ENDFUNC 
FUNC _WINHTTPCONNECT ( $HSESSION , $SSERVERNAME , $ISERVERPORT = $INTERNET_DEFAULT_PORT ) 
LOCAL $A_HCALL = DLLCALL ( "winhttp.dll" , "hwnd" , "WinHttpConnect" , "hwnd" , $HSESSION , "wstr" , $SSERVERNAME , "dword" , $ISERVERPORT , "dword" , 0 ) 
IF @ERROR OR NOT $A_HCALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , $A_HCALL [ 0 ] ) 
ENDFUNC 
FUNC _WINHTTPCRACKURL ( $SURL , $IFLAG = $ICU_ESCAPE ) 
LOCAL $TURL_COMPONENTS = DLLSTRUCTCREATE ( "dword StructSize;" & "ptr SchemeName;" & "dword SchemeNameLength;" & "int Scheme;" & "ptr HostName;" & "dword HostNameLength;" & "ushort Port;" & "ptr UserName;" & "dword UserNameLength;" & "ptr Password;" & "dword PasswordLength;" & "ptr UrlPath;" & "dword UrlPathLength;" & "ptr ExtraInfo;" & "dword ExtraInfoLength" ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , 1 , DLLSTRUCTGETSIZE ( $TURL_COMPONENTS ) ) 
LOCAL $TBUFFERS [ 6 ] 
LOCAL $IURLLEN = STRINGLEN ( $SURL ) 
FOR $I = 0 TO 5 
$TBUFFERS [ $I ] = DLLSTRUCTCREATE ( "wchar[" & $IURLLEN + 1 & "]" ) 
NEXT 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "SchemeNameLength" , $IURLLEN ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "SchemeName" , DLLSTRUCTGETPTR ( $TBUFFERS [ 0 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "HostNameLength" , $IURLLEN ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "HostName" , DLLSTRUCTGETPTR ( $TBUFFERS [ 1 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "UserNameLength" , $IURLLEN ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "UserName" , DLLSTRUCTGETPTR ( $TBUFFERS [ 2 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "PasswordLength" , $IURLLEN ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "Password" , DLLSTRUCTGETPTR ( $TBUFFERS [ 3 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "UrlPathLength" , $IURLLEN ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "UrlPath" , DLLSTRUCTGETPTR ( $TBUFFERS [ 4 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "ExtraInfoLength" , $IURLLEN ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "ExtraInfo" , DLLSTRUCTGETPTR ( $TBUFFERS [ 5 ] ) ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpCrackUrl" , "wstr" , $SURL , "dword" , $IURLLEN , "dword" , $IFLAG , "ptr" , DLLSTRUCTGETPTR ( $TURL_COMPONENTS ) ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
LOCAL $A_RET [ 8 ] = [ DLLSTRUCTGETDATA ( $TBUFFERS [ 0 ] , 1 ) , DLLSTRUCTGETDATA ( $TURL_COMPONENTS , "Scheme" ) , DLLSTRUCTGETDATA ( $TBUFFERS [ 1 ] , 1 ) , DLLSTRUCTGETDATA ( $TURL_COMPONENTS , "Port" ) , DLLSTRUCTGETDATA ( $TBUFFERS [ 2 ] , 1 ) , DLLSTRUCTGETDATA ( $TBUFFERS [ 3 ] , 1 ) , DLLSTRUCTGETDATA ( $TBUFFERS [ 4 ] , 1 ) , DLLSTRUCTGETDATA ( $TBUFFERS [ 5 ] , 1 ) ] 
RETURN SETERROR ( 0 , 0 , $A_RET ) 
ENDFUNC 
FUNC _WINHTTPCREATEURL ( $AURLARRAY ) 
IF UBOUND ( $AURLARRAY ) - 8 THEN 
RETURN SETERROR ( 1 , 0 , "" ) 
ENDIF 
LOCAL $TURL_COMPONENTS = DLLSTRUCTCREATE ( "dword StructSize;" & "ptr SchemeName;" & "dword SchemeNameLength;" & "int Scheme;" & "ptr HostName;" & "dword HostNameLength;" & "ushort Port;" & "ptr UserName;" & "dword UserNameLength;" & "ptr Password;" & "dword PasswordLength;" & "ptr UrlPath;" & "dword UrlPathLength;" & "ptr ExtraInfo;" & "dword ExtraInfoLength;" ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , 1 , DLLSTRUCTGETSIZE ( $TURL_COMPONENTS ) ) 
LOCAL $TBUFFERS [ 6 ] [ 2 ] 
$TBUFFERS [ 0 ] [ 1 ] = STRINGLEN ( $AURLARRAY [ 0 ] ) 
IF $TBUFFERS [ 0 ] [ 1 ] THEN 
$TBUFFERS [ 0 ] [ 0 ] = DLLSTRUCTCREATE ( "wchar[" & $TBUFFERS [ 0 ] [ 1 ] + 1 & "]" ) 
DLLSTRUCTSETDATA ( $TBUFFERS [ 0 ] [ 0 ] , 1 , $AURLARRAY [ 0 ] ) 
ENDIF 
$TBUFFERS [ 1 ] [ 1 ] = STRINGLEN ( $AURLARRAY [ 2 ] ) 
IF $TBUFFERS [ 1 ] [ 1 ] THEN 
$TBUFFERS [ 1 ] [ 0 ] = DLLSTRUCTCREATE ( "wchar[" & $TBUFFERS [ 1 ] [ 1 ] + 1 & "]" ) 
DLLSTRUCTSETDATA ( $TBUFFERS [ 1 ] [ 0 ] , 1 , $AURLARRAY [ 2 ] ) 
ENDIF 
$TBUFFERS [ 2 ] [ 1 ] = STRINGLEN ( $AURLARRAY [ 4 ] ) 
IF $TBUFFERS [ 2 ] [ 1 ] THEN 
$TBUFFERS [ 2 ] [ 0 ] = DLLSTRUCTCREATE ( "wchar[" & $TBUFFERS [ 2 ] [ 1 ] + 1 & "]" ) 
DLLSTRUCTSETDATA ( $TBUFFERS [ 2 ] [ 0 ] , 1 , $AURLARRAY [ 4 ] ) 
ENDIF 
$TBUFFERS [ 3 ] [ 1 ] = STRINGLEN ( $AURLARRAY [ 5 ] ) 
IF $TBUFFERS [ 3 ] [ 1 ] THEN 
$TBUFFERS [ 3 ] [ 0 ] = DLLSTRUCTCREATE ( "wchar[" & $TBUFFERS [ 3 ] [ 1 ] + 1 & "]" ) 
DLLSTRUCTSETDATA ( $TBUFFERS [ 3 ] [ 0 ] , 1 , $AURLARRAY [ 5 ] ) 
ENDIF 
$TBUFFERS [ 4 ] [ 1 ] = STRINGLEN ( $AURLARRAY [ 6 ] ) 
IF $TBUFFERS [ 4 ] [ 1 ] THEN 
$TBUFFERS [ 4 ] [ 0 ] = DLLSTRUCTCREATE ( "wchar[" & $TBUFFERS [ 4 ] [ 1 ] + 1 & "]" ) 
DLLSTRUCTSETDATA ( $TBUFFERS [ 4 ] [ 0 ] , 1 , $AURLARRAY [ 6 ] ) 
ENDIF 
$TBUFFERS [ 5 ] [ 1 ] = STRINGLEN ( $AURLARRAY [ 7 ] ) 
IF $TBUFFERS [ 5 ] [ 1 ] THEN 
$TBUFFERS [ 5 ] [ 0 ] = DLLSTRUCTCREATE ( "wchar[" & $TBUFFERS [ 5 ] [ 1 ] + 1 & "]" ) 
DLLSTRUCTSETDATA ( $TBUFFERS [ 5 ] [ 0 ] , 1 , $AURLARRAY [ 7 ] ) 
ENDIF 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "SchemeNameLength" , $TBUFFERS [ 0 ] [ 1 ] ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "SchemeName" , DLLSTRUCTGETPTR ( $TBUFFERS [ 0 ] [ 0 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "HostNameLength" , $TBUFFERS [ 1 ] [ 1 ] ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "HostName" , DLLSTRUCTGETPTR ( $TBUFFERS [ 1 ] [ 0 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "UserNameLength" , $TBUFFERS [ 2 ] [ 1 ] ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "UserName" , DLLSTRUCTGETPTR ( $TBUFFERS [ 2 ] [ 0 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "PasswordLength" , $TBUFFERS [ 3 ] [ 1 ] ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "Password" , DLLSTRUCTGETPTR ( $TBUFFERS [ 3 ] [ 0 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "UrlPathLength" , $TBUFFERS [ 4 ] [ 1 ] ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "UrlPath" , DLLSTRUCTGETPTR ( $TBUFFERS [ 4 ] [ 0 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "ExtraInfoLength" , $TBUFFERS [ 5 ] [ 1 ] ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "ExtraInfo" , DLLSTRUCTGETPTR ( $TBUFFERS [ 5 ] [ 0 ] ) ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "Scheme" , $AURLARRAY [ 1 ] ) 
DLLSTRUCTSETDATA ( $TURL_COMPONENTS , "Port" , $AURLARRAY [ 3 ] ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpCreateUrl" , "ptr" , DLLSTRUCTGETPTR ( $TURL_COMPONENTS ) , "dword" , $ICU_ESCAPE , "ptr" , 0 , "dword*" , 0 ) 
IF @ERROR THEN 
RETURN SETERROR ( 2 , 0 , "" ) 
ENDIF 
LOCAL $IURLLEN = $A_ICALL [ 4 ] 
LOCAL $URLBUFFER = DLLSTRUCTCREATE ( "wchar[" & ( $IURLLEN + 1 ) & "]" ) 
$A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpCreateUrl" , "ptr" , DLLSTRUCTGETPTR ( $TURL_COMPONENTS ) , "dword" , $ICU_ESCAPE , "ptr" , DLLSTRUCTGETPTR ( $URLBUFFER ) , "dword*" , $IURLLEN ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 3 , 0 , "" ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , DLLSTRUCTGETDATA ( $URLBUFFER , 1 ) ) 
ENDFUNC 
FUNC _WINHTTPDETECTAUTOPROXYCONFIGURL ( $IAUTODETECTFLAGS ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpDetectAutoProxyConfigUrl" , "dword" , $IAUTODETECTFLAGS , "ptr*" , 0 ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , "" ) 
ENDIF 
LOCAL $PSTRING = $A_ICALL [ 2 ] 
IF $PSTRING THEN 
LOCAL $ILEN = DLLCALL ( "kernel32.dll" , "int" , "lstrlenW" , "ptr" , $PSTRING ) 
IF @ERROR THEN 
RETURN SETERROR ( 2 , 0 , "" ) 
ENDIF 
LOCAL $TSTRING = DLLSTRUCTCREATE ( "wchar[" & $ILEN [ 0 ] + 1 & "]" , $PSTRING ) 
RETURN SETERROR ( 0 , 0 , DLLSTRUCTGETDATA ( $TSTRING , 1 ) ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , "" ) 
ENDFUNC 
FUNC _WINHTTPGETDEFAULTPROXYCONFIGURATION ( ) 
LOCAL $TWINHTTP_PROXY_INFO = DLLSTRUCTCREATE ( "dword AccessType;" & "ptr Proxy;" & "ptr ProxyBypass" ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpGetDefaultProxyConfiguration" , "ptr" , DLLSTRUCTGETPTR ( $TWINHTTP_PROXY_INFO ) ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
LOCAL $AARRAY [ 3 ] = [ DLLSTRUCTGETDATA ( $TWINHTTP_PROXY_INFO , "AccessType" ) , DLLSTRUCTGETDATA ( $TWINHTTP_PROXY_INFO , "Proxy" ) , DLLSTRUCTGETDATA ( $TWINHTTP_PROXY_INFO , "ProxyBypass" ) ] 
IF $AARRAY [ 1 ] THEN 
LOCAL $IPROXYLEN = DLLCALL ( "kernel32.dll" , "int" , "lstrlenW" , "ptr" , $AARRAY [ 1 ] ) 
IF @ERROR THEN 
RETURN SETERROR ( 2 , 0 , 0 ) 
ENDIF 
LOCAL $STRING_PROXY = DLLSTRUCTCREATE ( "wchar[" & $IPROXYLEN [ 0 ] + 1 & "]" , $AARRAY [ 1 ] ) 
LOCAL $PROXY = DLLSTRUCTGETDATA ( $STRING_PROXY , 1 ) 
ELSE 
$PROXY = "" 
ENDIF 
IF $AARRAY [ 2 ] THEN 
LOCAL $IPROXYBYPASSLEN = DLLCALL ( "kernel32.dll" , "int" , "lstrlenW" , "ptr" , $AARRAY [ 2 ] ) 
IF @ERROR THEN 
RETURN SETERROR ( 2 , 0 , 0 ) 
ENDIF 
LOCAL $STRING_PROXYBYPASS = DLLSTRUCTCREATE ( "wchar[" & $IPROXYBYPASSLEN [ 0 ] + 1 & "]" , $AARRAY [ 2 ] ) 
LOCAL $PROXYBYPASS = DLLSTRUCTGETDATA ( $STRING_PROXYBYPASS , 1 ) 
ELSE 
$PROXYBYPASS = "" 
ENDIF 
LOCAL $A_RET [ 3 ] = [ $AARRAY [ 0 ] , $PROXY , $PROXYBYPASS ] 
RETURN SETERROR ( 0 , 0 , $A_RET ) 
ENDFUNC 
FUNC _WINHTTPGETIEPROXYCONFIGFORCURRENTUSER ( ) 
LOCAL $TWINHTTP_CURRENT_USER_IE_PROXY_CONFIG = DLLSTRUCTCREATE ( "int AutoDetect;" & "ptr AutoConfigUrl;" & "ptr Proxy;" & "ptr ProxyBypass;" ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpGetIEProxyConfigForCurrentUser" , "ptr" , DLLSTRUCTGETPTR ( $TWINHTTP_CURRENT_USER_IE_PROXY_CONFIG ) ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
LOCAL $AARRAY [ 4 ] = [ DLLSTRUCTGETDATA ( $TWINHTTP_CURRENT_USER_IE_PROXY_CONFIG , "AutoDetect" ) , DLLSTRUCTGETDATA ( $TWINHTTP_CURRENT_USER_IE_PROXY_CONFIG , "AutoConfigUrl" ) , DLLSTRUCTGETDATA ( $TWINHTTP_CURRENT_USER_IE_PROXY_CONFIG , "Proxy" ) , DLLSTRUCTGETDATA ( $TWINHTTP_CURRENT_USER_IE_PROXY_CONFIG , "ProxyBypass" ) ] 
LOCAL $SAUTOCONFIGURL 
IF $AARRAY [ 1 ] THEN 
LOCAL $AAUTOCONFIGURLLEN = DLLCALL ( "kernel32.dll" , "int" , "lstrlenW" , "ptr" , $AARRAY [ 1 ] ) 
IF @ERROR THEN 
RETURN SETERROR ( 2 , 0 , 0 ) 
ENDIF 
LOCAL $TAUTOCONFIGURL = DLLSTRUCTCREATE ( "wchar[" & $AAUTOCONFIGURLLEN [ 0 ] + 1 & "]" , $AARRAY [ 1 ] ) 
$SAUTOCONFIGURL = DLLSTRUCTGETDATA ( $TAUTOCONFIGURL , 1 ) 
ELSE 
$SAUTOCONFIGURL = "" 
ENDIF 
LOCAL $SPROXY 
IF $AARRAY [ 2 ] THEN 
LOCAL $APROXYLEN = DLLCALL ( "kernel32.dll" , "int" , "lstrlenW" , "ptr" , $AARRAY [ 2 ] ) 
IF @ERROR THEN 
RETURN SETERROR ( 2 , 0 , 0 ) 
ENDIF 
LOCAL $TPROXY = DLLSTRUCTCREATE ( "wchar[" & $APROXYLEN [ 0 ] + 1 & "]" , $AARRAY [ 2 ] ) 
$SPROXY = DLLSTRUCTGETDATA ( $TPROXY , 1 ) 
ELSE 
$SPROXY = "" 
ENDIF 
LOCAL $SPROXYBYPASS 
IF $AARRAY [ 3 ] THEN 
LOCAL $APROXYBYPASSLEN = DLLCALL ( "kernel32.dll" , "int" , "lstrlenW" , "ptr" , $AARRAY [ 3 ] ) 
IF @ERROR THEN 
RETURN SETERROR ( 2 , 0 , 0 ) 
ENDIF 
LOCAL $TPROXYBYPASS = DLLSTRUCTCREATE ( "wchar[" & $APROXYBYPASSLEN [ 0 ] + 1 & "]" , $AARRAY [ 3 ] ) 
$SPROXYBYPASS = DLLSTRUCTGETDATA ( $TPROXYBYPASS , 1 ) 
ELSE 
$SPROXYBYPASS = "" 
ENDIF 
LOCAL $AOUTPUT [ 4 ] = [ $AARRAY [ 0 ] , $SAUTOCONFIGURL , $SPROXY , $SPROXYBYPASS ] 
RETURN SETERROR ( 0 , 0 , $AOUTPUT ) 
ENDFUNC 
FUNC _WINHTTPOPEN ( $SUSERAGENT = "AutoIt v3" , $IACCESSTYPE = $WINHTTP_ACCESS_TYPE_NO_PROXY , $SPROXYNAME = $WINHTTP_NO_PROXY_NAME , $SPROXYBYPASS = $WINHTTP_NO_PROXY_BYPASS , $IFLAG = 0 ) 
LOCAL $A_HCALL = DLLCALL ( "winhttp.dll" , "hwnd" , "WinHttpOpen" , "wstr" , $SUSERAGENT , "dword" , $IACCESSTYPE , "wstr" , $SPROXYNAME , "wstr" , $SPROXYBYPASS , "dword" , $IFLAG ) 
IF @ERROR OR NOT $A_HCALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , $A_HCALL [ 0 ] ) 
ENDFUNC 
FUNC _WINHTTPOPENREQUEST ( $HCONNECT , $SVERB = "GET" , $SOBJECTNAME = "" , $SVERSION = "HTTP/1.1" , $SREFERRER = $WINHTTP_NO_REFERER , $SACCEPTTYPES = $WINHTTP_DEFAULT_ACCEPT_TYPES , $IFLAGS = $WINHTTP_FLAG_ESCAPE_DISABLE ) 
LOCAL $A_HCALL = DLLCALL ( "winhttp.dll" , "hwnd" , "WinHttpOpenRequest" , "hwnd" , $HCONNECT , "wstr" , STRINGUPPER ( $SVERB ) , "wstr" , $SOBJECTNAME , "wstr" , STRINGUPPER ( $SVERSION ) , "wstr" , $SREFERRER , "wstr*" , $SACCEPTTYPES , "dword" , $IFLAGS ) 
IF @ERROR OR NOT $A_HCALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , $A_HCALL [ 0 ] ) 
ENDFUNC 
FUNC _WINHTTPQUERYDATAAVAILABLE ( $HREQUEST ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpQueryDataAvailable" , "hwnd" , $HREQUEST , "dword*" , 0 ) 
IF @ERROR THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , $A_ICALL [ 2 ] , $A_ICALL [ 0 ] ) 
ENDFUNC 
FUNC _WINHTTPQUERYHEADERS ( $HREQUEST , $IINFOLEVEL = $WINHTTP_QUERY_RAW_HEADERS_CRLF , $SNAME = $WINHTTP_HEADER_NAME_BY_INDEX ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpQueryHeaders" , "hwnd" , $HREQUEST , "dword" , $IINFOLEVEL , "wstr" , $SNAME , "ptr" , 0 , "dword*" , 0 , "dword*" , 0 ) 
IF @ERROR OR $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
LOCAL $ISIZE = $A_ICALL [ 5 ] 
IF NOT $ISIZE THEN 
RETURN SETERROR ( 0 , 0 , "" ) 
ENDIF 
LOCAL $TBUFFER = DLLSTRUCTCREATE ( "wchar[" & $ISIZE + 1 & "]" ) 
$A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpQueryHeaders" , "hwnd" , $HREQUEST , "dword" , $IINFOLEVEL , "wstr" , $SNAME , "ptr" , DLLSTRUCTGETPTR ( $TBUFFER ) , "dword*" , $ISIZE , "dword*" , 0 ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 2 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , DLLSTRUCTGETDATA ( $TBUFFER , 1 ) ) 
ENDFUNC 
FUNC _WINHTTPQUERYOPTION ( $HINTERNET , $IOPTION ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpQueryOption" , "hwnd" , $HINTERNET , "dword" , $IOPTION , "ptr" , 0 , "dword*" , 0 ) 
IF @ERROR OR $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , "" ) 
ENDIF 
LOCAL $ISIZE = $A_ICALL [ 4 ] 
LOCAL $TBUFFER 
SWITCH $IOPTION 
CASE $WINHTTP_OPTION_CONNECTION_INFO , $WINHTTP_OPTION_PASSWORD , $WINHTTP_OPTION_PROXY_PASSWORD , $WINHTTP_OPTION_PROXY_USERNAME , $WINHTTP_OPTION_URL , $WINHTTP_OPTION_USERNAME , $WINHTTP_OPTION_USER_AGENT , $WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT , $WINHTTP_OPTION_PASSPORT_COBRANDING_URL 
$TBUFFER = DLLSTRUCTCREATE ( "wchar[" & $ISIZE + 1 & "]" ) 
CASE $WINHTTP_OPTION_PARENT_HANDLE , $WINHTTP_OPTION_CALLBACK 
$TBUFFER = DLLSTRUCTCREATE ( "ptr" ) 
CASE $WINHTTP_OPTION_CONNECT_TIMEOUT , $WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH , $WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW , $WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM , $WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH , $WINHTTP_OPTION_CONNECT_RETRIES , $WINHTTP_OPTION_EXTENDED_ERROR , $WINHTTP_OPTION_HANDLE_TYPE , $WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER , $WINHTTP_OPTION_MAX_CONNS_PER_SERVER , $WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS , $WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT , $WINHTTP_OPTION_RECEIVE_TIMEOUT , $WINHTTP_OPTION_RESOLVE_TIMEOUT , $WINHTTP_OPTION_SECURITY_FLAGS , $WINHTTP_OPTION_SECURITY_KEY_BITNESS , $WINHTTP_OPTION_SEND_TIMEOUT 
$TBUFFER = DLLSTRUCTCREATE ( "int" ) 
CASE ELSE 
DLLSTRUCTCREATE ( "byte[" & $ISIZE & "]" ) 
ENDSWITCH 
$A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpQueryOption" , "hwnd" , $HINTERNET , "dword" , $IOPTION , "ptr" , DLLSTRUCTGETPTR ( $TBUFFER ) , "dword*" , $ISIZE ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 2 , 0 , "" ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , DLLSTRUCTGETDATA ( $TBUFFER , 1 ) ) 
ENDFUNC 
FUNC _WINHTTPREADDATA ( $HREQUEST , $IMODE = 0 , $INUMBEROFBYTESTOREAD = 8192 ) 
LOCAL $TBUFFER 
SWITCH $IMODE 
CASE 1 , 2 
$TBUFFER = DLLSTRUCTCREATE ( "byte[" & $INUMBEROFBYTESTOREAD & "]" ) 
CASE ELSE 
$IMODE = 0 
$TBUFFER = DLLSTRUCTCREATE ( "char[" & $INUMBEROFBYTESTOREAD & "]" ) 
ENDSWITCH 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpReadData" , "hwnd" , $HREQUEST , "ptr" , DLLSTRUCTGETPTR ( $TBUFFER ) , "ulong" , $INUMBEROFBYTESTOREAD , "dword*" , 0 ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , "" ) 
ENDIF 
IF NOT $A_ICALL [ 4 ] THEN 
RETURN SETERROR ( - 1 , 0 , "" ) 
ENDIF 
SWITCH $A_ICALL [ 4 ] < $INUMBEROFBYTESTOREAD 
CASE TRUE 
SWITCH $IMODE 
CASE 0 
RETURN SETERROR ( 0 , $A_ICALL [ 4 ] , STRINGLEFT ( DLLSTRUCTGETDATA ( $TBUFFER , 1 ) , $A_ICALL [ 4 ] ) ) 
CASE 1 
RETURN SETERROR ( 0 , $A_ICALL [ 4 ] , BINARYTOSTRING ( BINARYMID ( DLLSTRUCTGETDATA ( $TBUFFER , 1 ) , 1 , $A_ICALL [ 4 ] ) , 4 ) ) 
CASE 2 
RETURN SETERROR ( 0 , $A_ICALL [ 4 ] , BINARYMID ( DLLSTRUCTGETDATA ( $TBUFFER , 1 ) , 1 , $A_ICALL [ 4 ] ) ) 
ENDSWITCH 
CASE ELSE 
SWITCH $IMODE 
CASE 0 , 2 
RETURN SETERROR ( 0 , $A_ICALL [ 4 ] , DLLSTRUCTGETDATA ( $TBUFFER , 1 ) ) 
CASE 1 
RETURN SETERROR ( 0 , $A_ICALL [ 4 ] , BINARYTOSTRING ( DLLSTRUCTGETDATA ( $TBUFFER , 1 ) , 4 ) ) 
ENDSWITCH 
ENDSWITCH 
ENDFUNC 
FUNC _WINHTTPRECEIVERESPONSE ( $HREQUEST ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpReceiveResponse" , "hwnd" , $HREQUEST , "ptr" , 0 ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , 1 ) 
ENDFUNC 
FUNC _WINHTTPSENDREQUEST ( $HREQUEST , $SHEADERS = $WINHTTP_NO_ADDITIONAL_HEADERS , $SOPTIONAL = $WINHTTP_NO_REQUEST_DATA , $ITOTALLENGTH = 0 , $ICONTEXT = 0 ) 
LOCAL $IOPTIONALLENGTH = STRINGLEN ( $SOPTIONAL ) 
LOCAL $STRUCTOPTIONAL = DLLSTRUCTCREATE ( "char[" & $IOPTIONALLENGTH + 1 & "]" ) 
DLLSTRUCTSETDATA ( $STRUCTOPTIONAL , 1 , $SOPTIONAL ) 
IF NOT $ITOTALLENGTH OR $ITOTALLENGTH < $IOPTIONALLENGTH THEN 
$ITOTALLENGTH += $IOPTIONALLENGTH 
ENDIF 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpSendRequest" , "hwnd" , $HREQUEST , "wstr" , $SHEADERS , "dword" , 0 , "ptr" , DLLSTRUCTGETPTR ( $STRUCTOPTIONAL ) , "dword" , $IOPTIONALLENGTH , "dword" , $ITOTALLENGTH , "ptr" , $ICONTEXT ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , 1 ) 
ENDFUNC 
FUNC _WINHTTPSETCREDENTIALS ( $HREQUEST , $IAUTHTARGETS , $IAUTHSCHEME , $SUSERNAME , $SPASSWORD ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpSetCredentials" , "hwnd" , $HREQUEST , "dword" , $IAUTHTARGETS , "dword" , $IAUTHSCHEME , "wstr" , $SUSERNAME , "wstr" , $SPASSWORD , "ptr" , 0 ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , 1 ) 
ENDFUNC 
FUNC _WINHTTPSETDEFAULTPROXYCONFIGURATION ( $IACCESSTYPE , $PROXY , $PROXYBYPASS ) 
LOCAL $TPROXY = DLLSTRUCTCREATE ( "wchar[" & STRINGLEN ( $PROXY ) + 1 & "]" ) 
DLLSTRUCTSETDATA ( $TPROXY , 1 , $PROXY ) 
LOCAL $TPROXYBYPASS = DLLSTRUCTCREATE ( "wchar[" & STRINGLEN ( $PROXYBYPASS ) + 1 & "]" ) 
DLLSTRUCTSETDATA ( $TPROXYBYPASS , 1 , $PROXYBYPASS ) 
LOCAL $TWINHTTP_PROXY_INFO = DLLSTRUCTCREATE ( "dword AccessType;" & "ptr Proxy;" & "ptr ProxyBypass" ) 
DLLSTRUCTSETDATA ( $TWINHTTP_PROXY_INFO , "AccessType" , $IACCESSTYPE ) 
DLLSTRUCTSETDATA ( $TWINHTTP_PROXY_INFO , "Proxy" , DLLSTRUCTGETPTR ( $TPROXY ) ) 
DLLSTRUCTSETDATA ( $TWINHTTP_PROXY_INFO , "ProxyBypass" , DLLSTRUCTGETPTR ( $TPROXYBYPASS ) ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpSetDefaultProxyConfiguration" , "ptr" , DLLSTRUCTGETPTR ( $TWINHTTP_PROXY_INFO ) ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , 1 ) 
ENDFUNC 
FUNC _WINHTTPSETOPTION ( $HINTERNET , $IOPTION , $SSETTING ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpSetOption" , "hwnd" , $HINTERNET , "dword" , $IOPTION , "wstr" , $SSETTING , "dword" , STRINGLEN ( $SSETTING ) ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , 1 ) 
ENDFUNC 
FUNC _WINHTTPSETSTATUSCALLBACK ( $HINTERNET , $FINTERNETCALLBACK , $INOTIFICATIONFLAGS = $WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS ) 
LOCAL $A_PCALL = DLLCALL ( "winhttp.dll" , "ptr" , "WinHttpSetStatusCallback" , "hwnd" , $HINTERNET , "ptr" , DLLCALLBACKGETPTR ( $FINTERNETCALLBACK ) , "dword" , $INOTIFICATIONFLAGS , "ptr" , 0 ) 
IF @ERROR THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , $A_PCALL [ 0 ] ) 
ENDFUNC 
FUNC _WINHTTPSETTIMEOUTS ( $HINTERNET , $IRESOLVETIMEOUT , $ICONNECTTIMEOUT , $ISENDTIMEOUT , $IRECEIVETIMEOUT ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpSetTimeouts" , "hwnd" , $HINTERNET , "int" , $IRESOLVETIMEOUT , "int" , $ICONNECTTIMEOUT , "int" , $ISENDTIMEOUT , "int" , $IRECEIVETIMEOUT ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , 1 ) 
ENDFUNC 
FUNC _WINHTTPTIMEFROMSYSTEMTIME ( ) 
LOCAL $SYSTEMTIME = DLLSTRUCTCREATE ( "ushort Year;" & "ushort Month;" & "ushort DayOfWeek;" & "ushort Day;" & "ushort Hour;" & "ushort Minute;" & "ushort Second;" & "ushort Milliseconds" ) 
DLLCALL ( "kernel32.dll" , "none" , "GetSystemTime" , "ptr" , DLLSTRUCTGETPTR ( $SYSTEMTIME ) ) 
IF @ERROR THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
LOCAL $STIME = DLLSTRUCTCREATE ( "wchar[62]" ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpTimeFromSystemTime" , "ptr" , DLLSTRUCTGETPTR ( $SYSTEMTIME ) , "ptr" , DLLSTRUCTGETPTR ( $STIME ) ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 2 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , 0 , DLLSTRUCTGETDATA ( $STIME , 1 ) ) 
ENDFUNC 
FUNC _WINHTTPTIMETOSYSTEMTIME ( $SHTTPTIME ) 
LOCAL $SYSTEMTIME = DLLSTRUCTCREATE ( "ushort Year;" & "ushort Month;" & "ushort DayOfWeek;" & "ushort Day;" & "ushort Hour;" & "ushort Minute;" & "ushort Second;" & "ushort Milliseconds" ) 
LOCAL $STIME = DLLSTRUCTCREATE ( "wchar[62]" ) 
DLLSTRUCTSETDATA ( $STIME , 1 , $SHTTPTIME ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpTimeToSystemTime" , "ptr" , DLLSTRUCTGETPTR ( $STIME ) , "ptr" , DLLSTRUCTGETPTR ( $SYSTEMTIME ) ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 2 , 0 , 0 ) 
ENDIF 
LOCAL $A_RET [ 8 ] = [ DLLSTRUCTGETDATA ( $SYSTEMTIME , "Year" ) , DLLSTRUCTGETDATA ( $SYSTEMTIME , "Month" ) , DLLSTRUCTGETDATA ( $SYSTEMTIME , "DayOfWeek" ) , DLLSTRUCTGETDATA ( $SYSTEMTIME , "Day" ) , DLLSTRUCTGETDATA ( $SYSTEMTIME , "Hour" ) , DLLSTRUCTGETDATA ( $SYSTEMTIME , "Minute" ) , DLLSTRUCTGETDATA ( $SYSTEMTIME , "Second" ) , DLLSTRUCTGETDATA ( $SYSTEMTIME , "Milliseconds" ) ] 
RETURN SETERROR ( 0 , 0 , $A_RET ) 
ENDFUNC 
FUNC _WINHTTPWRITEDATA ( $HREQUEST , $DATA , $IMODE = 0 ) 
LOCAL $INUMBEROFBYTESTOWRITE , $TDATA 
SWITCH $IMODE 
CASE 1 
$INUMBEROFBYTESTOWRITE = BINARYLEN ( $DATA ) 
$TDATA = DLLSTRUCTCREATE ( "byte[" & $INUMBEROFBYTESTOWRITE & "]" ) 
CASE ELSE 
$INUMBEROFBYTESTOWRITE = STRINGLEN ( $DATA ) 
$TDATA = DLLSTRUCTCREATE ( "char[" & $INUMBEROFBYTESTOWRITE + 1 & "]" ) 
ENDSWITCH 
DLLSTRUCTSETDATA ( $TDATA , 1 , $DATA ) 
LOCAL $A_ICALL = DLLCALL ( "winhttp.dll" , "int" , "WinHttpWriteData" , "hwnd" , $HREQUEST , "ptr" , DLLSTRUCTGETPTR ( $TDATA ) , "dword" , $INUMBEROFBYTESTOWRITE , "dword*" , 0 ) 
IF @ERROR OR NOT $A_ICALL [ 0 ] THEN 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
RETURN SETERROR ( 0 , $A_ICALL [ 4 ] , 1 ) 
ENDFUNC 
GLOBAL CONST $BS_GROUPBOX = 7 
GLOBAL CONST $BS_BOTTOM = 2048 
GLOBAL CONST $BS_CENTER = 768 
GLOBAL CONST $BS_DEFPUSHBUTTON = 1 
GLOBAL CONST $BS_LEFT = 256 
GLOBAL CONST $BS_MULTILINE = 8192 
GLOBAL CONST $BS_PUSHBOX = 10 
GLOBAL CONST $BS_PUSHLIKE = 4096 
GLOBAL CONST $BS_RIGHT = 512 
GLOBAL CONST $BS_RIGHTBUTTON = 32 
GLOBAL CONST $BS_TOP = 1024 
GLOBAL CONST $BS_VCENTER = 3072 
GLOBAL CONST $BS_FLAT = 32768 
GLOBAL CONST $BS_ICON = 64 
GLOBAL CONST $BS_BITMAP = 128 
GLOBAL CONST $BS_NOTIFY = 16384 
GLOBAL CONST $BS_SPLITBUTTON = 12 
GLOBAL CONST $BS_DEFSPLITBUTTON = 13 
GLOBAL CONST $BS_COMMANDLINK = 14 
GLOBAL CONST $BS_DEFCOMMANDLINK = 15 
GLOBAL CONST $BCSIF_GLYPH = 1 
GLOBAL CONST $BCSIF_IMAGE = 2 
GLOBAL CONST $BCSIF_STYLE = 4 
GLOBAL CONST $BCSIF_SIZE = 8 
GLOBAL CONST $BCSS_NOSPLIT = 1 
GLOBAL CONST $BCSS_STRETCH = 2 
GLOBAL CONST $BCSS_ALIGNLEFT = 4 
GLOBAL CONST $BCSS_IMAGE = 8 
GLOBAL CONST $BUTTON_IMAGELIST_ALIGN_LEFT = 0 
GLOBAL CONST $BUTTON_IMAGELIST_ALIGN_RIGHT = 1 
GLOBAL CONST $BUTTON_IMAGELIST_ALIGN_TOP = 2 
GLOBAL CONST $BUTTON_IMAGELIST_ALIGN_BOTTOM = 3 
GLOBAL CONST $BUTTON_IMAGELIST_ALIGN_CENTER = 4 
GLOBAL CONST $BS_3STATE = 5 
GLOBAL CONST $BS_AUTO3STATE = 6 
GLOBAL CONST $BS_AUTOCHECKBOX = 3 
GLOBAL CONST $BS_CHECKBOX = 2 
GLOBAL CONST $BS_RADIOBUTTON = 4 
GLOBAL CONST $BS_AUTORADIOBUTTON = 9 
GLOBAL CONST $BS_OWNERDRAW = 11 
GLOBAL CONST $GUI_SS_DEFAULT_BUTTON = 0 
GLOBAL CONST $GUI_SS_DEFAULT_CHECKBOX = 0 
GLOBAL CONST $GUI_SS_DEFAULT_GROUP = 0 
GLOBAL CONST $GUI_SS_DEFAULT_RADIO = 0 
GLOBAL CONST $BCM_FIRST = 5632 
GLOBAL CONST $BCM_GETIDEALSIZE = ( $BCM_FIRST + 1 ) 
GLOBAL CONST $BCM_GETIMAGELIST = ( $BCM_FIRST + 3 ) 
GLOBAL CONST $BCM_GETNOTE = ( $BCM_FIRST + 10 ) 
GLOBAL CONST $BCM_GETNOTELENGTH = ( $BCM_FIRST + 11 ) 
GLOBAL CONST $BCM_GETSPLITINFO = ( $BCM_FIRST + 8 ) 
GLOBAL CONST $BCM_GETTEXTMARGIN = ( $BCM_FIRST + 5 ) 
GLOBAL CONST $BCM_SETDROPDOWNSTATE = ( $BCM_FIRST + 6 ) 
GLOBAL CONST $BCM_SETIMAGELIST = ( $BCM_FIRST + 2 ) 
GLOBAL CONST $BCM_SETNOTE = ( $BCM_FIRST + 9 ) 
GLOBAL CONST $BCM_SETSHIELD = ( $BCM_FIRST + 12 ) 
GLOBAL CONST $BCM_SETSPLITINFO = ( $BCM_FIRST + 7 ) 
GLOBAL CONST $BCM_SETTEXTMARGIN = ( $BCM_FIRST + 4 ) 
GLOBAL CONST $BM_CLICK = 245 
GLOBAL CONST $BM_GETCHECK = 240 
GLOBAL CONST $BM_GETIMAGE = 246 
GLOBAL CONST $BM_GETSTATE = 242 
GLOBAL CONST $BM_SETCHECK = 241 
GLOBAL CONST $BM_SETDONTCLICK = 248 
GLOBAL CONST $BM_SETIMAGE = 247 
GLOBAL CONST $BM_SETSTATE = 243 
GLOBAL CONST $BM_SETSTYLE = 244 
GLOBAL CONST $BCN_FIRST = - 1250 
GLOBAL CONST $BCN_DROPDOWN = ( $BCN_FIRST + 2 ) 
GLOBAL CONST $BCN_HOTITEMCHANGE = ( $BCN_FIRST + 1 ) 
GLOBAL CONST $BN_CLICKED = 0 
GLOBAL CONST $BN_PAINT = 1 
GLOBAL CONST $BN_HILITE = 2 
GLOBAL CONST $BN_UNHILITE = 3 
GLOBAL CONST $BN_DISABLE = 4 
GLOBAL CONST $BN_DOUBLECLICKED = 5 
GLOBAL CONST $BN_SETFOCUS = 6 
GLOBAL CONST $BN_KILLFOCUS = 7 
GLOBAL CONST $BN_PUSHED = $BN_HILITE 
GLOBAL CONST $BN_UNPUSHED = $BN_UNHILITE 
GLOBAL CONST $BN_DBLCLK = $BN_DOUBLECLICKED 
GLOBAL CONST $BST_CHECKED = 1 
GLOBAL CONST $BST_INDETERMINATE = 2 
GLOBAL CONST $BST_UNCHECKED = 0 
GLOBAL CONST $BST_FOCUS = 8 
GLOBAL CONST $BST_PUSHED = 4 
GLOBAL CONST $BST_DONTCLICK = 128 
GLOBAL CONST $ES_LEFT = 0 
GLOBAL CONST $ES_CENTER = 1 
GLOBAL CONST $ES_RIGHT = 2 
GLOBAL CONST $ES_MULTILINE = 4 
GLOBAL CONST $ES_UPPERCASE = 8 
GLOBAL CONST $ES_LOWERCASE = 16 
GLOBAL CONST $ES_PASSWORD = 32 
GLOBAL CONST $ES_AUTOVSCROLL = 64 
GLOBAL CONST $ES_AUTOHSCROLL = 128 
GLOBAL CONST $ES_NOHIDESEL = 256 
GLOBAL CONST $ES_OEMCONVERT = 1024 
GLOBAL CONST $ES_READONLY = 2048 
GLOBAL CONST $ES_WANTRETURN = 4096 
GLOBAL CONST $ES_NUMBER = 8192 
GLOBAL CONST $EC_ERR = - 1 
GLOBAL CONST $ECM_FIRST = 5376 
GLOBAL CONST $EM_CANUNDO = 198 
GLOBAL CONST $EM_CHARFROMPOS = 215 
GLOBAL CONST $EM_EMPTYUNDOBUFFER = 205 
GLOBAL CONST $EM_FMTLINES = 200 
GLOBAL CONST $EM_GETCUEBANNER = ( $ECM_FIRST + 2 ) 
GLOBAL CONST $EM_GETFIRSTVISIBLELINE = 206 
GLOBAL CONST $EM_GETHANDLE = 189 
GLOBAL CONST $EM_GETIMESTATUS = 217 
GLOBAL CONST $EM_GETLIMITTEXT = 213 
GLOBAL CONST $EM_GETLINE = 196 
GLOBAL CONST $EM_GETLINECOUNT = 186 
GLOBAL CONST $EM_GETMARGINS = 212 
GLOBAL CONST $EM_GETMODIFY = 184 
GLOBAL CONST $EM_GETPASSWORDCHAR = 210 
GLOBAL CONST $EM_GETRECT = 178 
GLOBAL CONST $EM_GETSEL = 176 
GLOBAL CONST $EM_GETTHUMB = 190 
GLOBAL CONST $EM_GETWORDBREAKPROC = 209 
GLOBAL CONST $EM_HIDEBALLOONTIP = ( $ECM_FIRST + 4 ) 
GLOBAL CONST $EM_LIMITTEXT = 197 
GLOBAL CONST $EM_LINEFROMCHAR = 201 
GLOBAL CONST $EM_LINEINDEX = 187 
GLOBAL CONST $EM_LINELENGTH = 193 
GLOBAL CONST $EM_LINESCROLL = 182 
GLOBAL CONST $EM_POSFROMCHAR = 214 
GLOBAL CONST $EM_REPLACESEL = 194 
GLOBAL CONST $EM_SCROLL = 181 
GLOBAL CONST $EM_SCROLLCARET = 183 
GLOBAL CONST $EM_SETCUEBANNER = ( $ECM_FIRST + 1 ) 
GLOBAL CONST $EM_SETHANDLE = 188 
GLOBAL CONST $EM_SETIMESTATUS = 216 
GLOBAL CONST $EM_SETLIMITTEXT = $EM_LIMITTEXT 
GLOBAL CONST $EM_SETMARGINS = 211 
GLOBAL CONST $EM_SETMODIFY = 185 
GLOBAL CONST $EM_SETPASSWORDCHAR = 204 
GLOBAL CONST $EM_SETREADONLY = 207 
GLOBAL CONST $EM_SETRECT = 179 
GLOBAL CONST $EM_SETRECTNP = 180 
GLOBAL CONST $EM_SETSEL = 177 
GLOBAL CONST $EM_SETTABSTOPS = 203 
GLOBAL CONST $EM_SETWORDBREAKPROC = 208 
GLOBAL CONST $EM_SHOWBALLOONTIP = ( $ECM_FIRST + 3 ) 
GLOBAL CONST $EM_UNDO = 199 
GLOBAL CONST $EC_LEFTMARGIN = 1 
GLOBAL CONST $EC_RIGHTMARGIN = 2 
GLOBAL CONST $EC_USEFONTINFO = 65535 
GLOBAL CONST $EMSIS_COMPOSITIONSTRING = 1 
GLOBAL CONST $EIMES_GETCOMPSTRATONCE = 1 
GLOBAL CONST $EIMES_CANCELCOMPSTRINFOCUS = 2 
GLOBAL CONST $EIMES_COMPLETECOMPSTRKILLFOCUS = 4 
GLOBAL CONST $EN_ALIGN_LTR_EC = 1792 
GLOBAL CONST $EN_ALIGN_RTL_EC = 1793 
GLOBAL CONST $EN_CHANGE = 768 
GLOBAL CONST $EN_ERRSPACE = 1280 
GLOBAL CONST $EN_HSCROLL = 1537 
GLOBAL CONST $EN_KILLFOCUS = 512 
GLOBAL CONST $EN_MAXTEXT = 1281 
GLOBAL CONST $EN_SETFOCUS = 256 
GLOBAL CONST $EN_UPDATE = 1024 
GLOBAL CONST $EN_VSCROLL = 1538 
GLOBAL CONST $TTI_NONE = 0 
GLOBAL CONST $TTI_INFO = 1 
GLOBAL CONST $TTI_WARNING = 2 
GLOBAL CONST $TTI_ERROR = 3 
GLOBAL CONST $TTI_INFO_LARGE = 4 
GLOBAL CONST $TTI_WARNING_LARGE = 5 
GLOBAL CONST $TTI_ERROR_LARGE = 6 
GLOBAL CONST $__EDITCONSTANT_WS_VSCROLL = 2097152 
GLOBAL CONST $__EDITCONSTANT_WS_HSCROLL = 1048576 
GLOBAL CONST $GUI_SS_DEFAULT_EDIT = BITOR ( $ES_WANTRETURN , $__EDITCONSTANT_WS_VSCROLL , $__EDITCONSTANT_WS_HSCROLL , $ES_AUTOVSCROLL , $ES_AUTOHSCROLL ) 
GLOBAL CONST $GUI_SS_DEFAULT_INPUT = BITOR ( $ES_LEFT , $ES_AUTOHSCROLL ) 
GLOBAL CONST $GUI_EVENT_CLOSE = - 3 
GLOBAL CONST $GUI_EVENT_MINIMIZE = - 4 
GLOBAL CONST $GUI_EVENT_RESTORE = - 5 
GLOBAL CONST $GUI_EVENT_MAXIMIZE = - 6 
GLOBAL CONST $GUI_EVENT_PRIMARYDOWN = - 7 
GLOBAL CONST $GUI_EVENT_PRIMARYUP = - 8 
GLOBAL CONST $GUI_EVENT_SECONDARYDOWN = - 9 
GLOBAL CONST $GUI_EVENT_SECONDARYUP = - 10 
GLOBAL CONST $GUI_EVENT_MOUSEMOVE = - 11 
GLOBAL CONST $GUI_EVENT_RESIZED = - 12 
GLOBAL CONST $GUI_EVENT_DROPPED = - 13 
GLOBAL CONST $GUI_RUNDEFMSG = "GUI_RUNDEFMSG" 
GLOBAL CONST $GUI_AVISTOP = 0 
GLOBAL CONST $GUI_AVISTART = 1 
GLOBAL CONST $GUI_AVICLOSE = 2 
GLOBAL CONST $GUI_CHECKED = 1 
GLOBAL CONST $GUI_INDETERMINATE = 2 
GLOBAL CONST $GUI_UNCHECKED = 4 
GLOBAL CONST $GUI_DROPACCEPTED = 8 
GLOBAL CONST $GUI_NODROPACCEPTED = 4096 
GLOBAL CONST $GUI_ACCEPTFILES = $GUI_DROPACCEPTED 
GLOBAL CONST $GUI_SHOW = 16 
GLOBAL CONST $GUI_HIDE = 32 
GLOBAL CONST $GUI_ENABLE = 64 
GLOBAL CONST $GUI_DISABLE = 128 
GLOBAL CONST $GUI_FOCUS = 256 
GLOBAL CONST $GUI_NOFOCUS = 8192 
GLOBAL CONST $GUI_DEFBUTTON = 512 
GLOBAL CONST $GUI_EXPAND = 1024 
GLOBAL CONST $GUI_ONTOP = 2048 
GLOBAL CONST $GUI_FONTITALIC = 2 
GLOBAL CONST $GUI_FONTUNDER = 4 
GLOBAL CONST $GUI_FONTSTRIKE = 8 
GLOBAL CONST $GUI_DOCKAUTO = 1 
GLOBAL CONST $GUI_DOCKLEFT = 2 
GLOBAL CONST $GUI_DOCKRIGHT = 4 
GLOBAL CONST $GUI_DOCKHCENTER = 8 
GLOBAL CONST $GUI_DOCKTOP = 32 
GLOBAL CONST $GUI_DOCKBOTTOM = 64 
GLOBAL CONST $GUI_DOCKVCENTER = 128 
GLOBAL CONST $GUI_DOCKWIDTH = 256 
GLOBAL CONST $GUI_DOCKHEIGHT = 512 
GLOBAL CONST $GUI_DOCKSIZE = 768 
GLOBAL CONST $GUI_DOCKMENUBAR = 544 
GLOBAL CONST $GUI_DOCKSTATEBAR = 576 
GLOBAL CONST $GUI_DOCKALL = 802 
GLOBAL CONST $GUI_DOCKBORDERS = 102 
GLOBAL CONST $GUI_GR_CLOSE = 1 
GLOBAL CONST $GUI_GR_LINE = 2 
GLOBAL CONST $GUI_GR_BEZIER = 4 
GLOBAL CONST $GUI_GR_MOVE = 6 
GLOBAL CONST $GUI_GR_COLOR = 8 
GLOBAL CONST $GUI_GR_RECT = 10 
GLOBAL CONST $GUI_GR_ELLIPSE = 12 
GLOBAL CONST $GUI_GR_PIE = 14 
GLOBAL CONST $GUI_GR_DOT = 16 
GLOBAL CONST $GUI_GR_PIXEL = 18 
GLOBAL CONST $GUI_GR_HINT = 20 
GLOBAL CONST $GUI_GR_REFRESH = 22 
GLOBAL CONST $GUI_GR_PENSIZE = 24 
GLOBAL CONST $GUI_GR_NOBKCOLOR = - 2 
GLOBAL CONST $GUI_BKCOLOR_DEFAULT = - 1 
GLOBAL CONST $GUI_BKCOLOR_TRANSPARENT = - 2 
GLOBAL CONST $GUI_BKCOLOR_LV_ALTERNATE = -33554432 
GLOBAL CONST $GUI_WS_EX_PARENTDRAG = 1048576 
GLOBAL CONST $SS_LEFT = 0 
GLOBAL CONST $SS_CENTER = 1 
GLOBAL CONST $SS_RIGHT = 2 
GLOBAL CONST $SS_ICON = 3 
GLOBAL CONST $SS_BLACKRECT = 4 
GLOBAL CONST $SS_GRAYRECT = 5 
GLOBAL CONST $SS_WHITERECT = 6 
GLOBAL CONST $SS_BLACKFRAME = 7 
GLOBAL CONST $SS_GRAYFRAME = 8 
GLOBAL CONST $SS_WHITEFRAME = 9 
GLOBAL CONST $SS_SIMPLE = 11 
GLOBAL CONST $SS_LEFTNOWORDWRAP = 12 
GLOBAL CONST $SS_BITMAP = 14 
GLOBAL CONST $SS_ETCHEDHORZ = 16 
GLOBAL CONST $SS_ETCHEDVERT = 17 
GLOBAL CONST $SS_ETCHEDFRAME = 18 
GLOBAL CONST $SS_NOPREFIX = 128 
GLOBAL CONST $SS_NOTIFY = 256 
GLOBAL CONST $SS_CENTERIMAGE = 512 
GLOBAL CONST $SS_RIGHTJUST = 1024 
GLOBAL CONST $SS_SUNKEN = 4096 
GLOBAL CONST $GUI_SS_DEFAULT_LABEL = 0 
GLOBAL CONST $GUI_SS_DEFAULT_GRAPHIC = 0 
GLOBAL CONST $GUI_SS_DEFAULT_ICON = $SS_NOTIFY 
GLOBAL CONST $GUI_SS_DEFAULT_PIC = $SS_NOTIFY 
GLOBAL CONST $WS_TILED = 0 
GLOBAL CONST $WS_OVERLAPPED = 0 
GLOBAL CONST $WS_MAXIMIZEBOX = 65536 
GLOBAL CONST $WS_MINIMIZEBOX = 131072 
GLOBAL CONST $WS_TABSTOP = 65536 
GLOBAL CONST $WS_GROUP = 131072 
GLOBAL CONST $WS_SIZEBOX = 262144 
GLOBAL CONST $WS_THICKFRAME = 262144 
GLOBAL CONST $WS_SYSMENU = 524288 
GLOBAL CONST $WS_HSCROLL = 1048576 
GLOBAL CONST $WS_VSCROLL = 2097152 
GLOBAL CONST $WS_DLGFRAME = 4194304 
GLOBAL CONST $WS_BORDER = 8388608 
GLOBAL CONST $WS_CAPTION = 12582912 
GLOBAL CONST $WS_OVERLAPPEDWINDOW = 13565952 
GLOBAL CONST $WS_TILEDWINDOW = 13565952 
GLOBAL CONST $WS_MAXIMIZE = 16777216 
GLOBAL CONST $WS_CLIPCHILDREN = 33554432 
GLOBAL CONST $WS_CLIPSIBLINGS = 67108864 
GLOBAL CONST $WS_DISABLED = 134217728 
GLOBAL CONST $WS_VISIBLE = 268435456 
GLOBAL CONST $WS_MINIMIZE = 536870912 
GLOBAL CONST $WS_CHILD = 1073741824 
GLOBAL CONST $WS_POPUP = -2147483648 
GLOBAL CONST $WS_POPUPWINDOW = -2138570752 
GLOBAL CONST $DS_MODALFRAME = 128 
GLOBAL CONST $DS_SETFOREGROUND = 512 
GLOBAL CONST $DS_CONTEXTHELP = 8192 
GLOBAL CONST $WS_EX_ACCEPTFILES = 16 
GLOBAL CONST $WS_EX_MDICHILD = 64 
GLOBAL CONST $WS_EX_APPWINDOW = 262144 
GLOBAL CONST $WS_EX_COMPOSITED = 33554432 
GLOBAL CONST $WS_EX_CLIENTEDGE = 512 
GLOBAL CONST $WS_EX_CONTEXTHELP = 1024 
GLOBAL CONST $WS_EX_DLGMODALFRAME = 1 
GLOBAL CONST $WS_EX_LEFTSCROLLBAR = 16384 
GLOBAL CONST $WS_EX_OVERLAPPEDWINDOW = 768 
GLOBAL CONST $WS_EX_RIGHT = 4096 
GLOBAL CONST $WS_EX_STATICEDGE = 131072 
GLOBAL CONST $WS_EX_TOOLWINDOW = 128 
GLOBAL CONST $WS_EX_TOPMOST = 8 
GLOBAL CONST $WS_EX_TRANSPARENT = 32 
GLOBAL CONST $WS_EX_WINDOWEDGE = 256 
GLOBAL CONST $WS_EX_LAYERED = 524288 
GLOBAL CONST $WS_EX_CONTROLPARENT = 65536 
GLOBAL CONST $WS_EX_LAYOUTRTL = 4194304 
GLOBAL CONST $WS_EX_RTLREADING = 8192 
GLOBAL CONST $WM_GETTEXTLENGTH = 14 
GLOBAL CONST $WM_GETTEXT = 13 
GLOBAL CONST $WM_SIZE = 5 
GLOBAL CONST $WM_SIZING = 532 
GLOBAL CONST $WM_USER = 1024 
GLOBAL CONST $WM_CREATE = 1 
GLOBAL CONST $WM_DESTROY = 2 
GLOBAL CONST $WM_MOVE = 3 
GLOBAL CONST $WM_ACTIVATE = 6 
GLOBAL CONST $WM_SETFOCUS = 7 
GLOBAL CONST $WM_KILLFOCUS = 8 
GLOBAL CONST $WM_ENABLE = 10 
GLOBAL CONST $WM_SETREDRAW = 11 
GLOBAL CONST $WM_SETTEXT = 12 
GLOBAL CONST $WM_PAINT = 15 
GLOBAL CONST $WM_CLOSE = 16 
GLOBAL CONST $WM_QUIT = 18 
GLOBAL CONST $WM_ERASEBKGND = 20 
GLOBAL CONST $WM_SYSCOLORCHANGE = 21 
GLOBAL CONST $WM_SHOWWINDOW = 24 
GLOBAL CONST $WM_WININICHANGE = 26 
GLOBAL CONST $WM_DEVMODECHANGE = 27 
GLOBAL CONST $WM_ACTIVATEAPP = 28 
GLOBAL CONST $WM_FONTCHANGE = 29 
GLOBAL CONST $WM_TIMECHANGE = 30 
GLOBAL CONST $WM_CANCELMODE = 31 
GLOBAL CONST $WM_SETCURSOR = 32 
GLOBAL CONST $WM_MOUSEACTIVATE = 33 
GLOBAL CONST $WM_CHILDACTIVATE = 34 
GLOBAL CONST $WM_QUEUESYNC = 35 
GLOBAL CONST $WM_GETMINMAXINFO = 36 
GLOBAL CONST $WM_PAINTICON = 38 
GLOBAL CONST $WM_ICONERASEBKGND = 39 
GLOBAL CONST $WM_NEXTDLGCTL = 40 
GLOBAL CONST $WM_SPOOLERSTATUS = 42 
GLOBAL CONST $WM_DRAWITEM = 43 
GLOBAL CONST $WM_MEASUREITEM = 44 
GLOBAL CONST $WM_DELETEITEM = 45 
GLOBAL CONST $WM_VKEYTOITEM = 46 
GLOBAL CONST $WM_CHARTOITEM = 47 
GLOBAL CONST $WM_SETFONT = 48 
GLOBAL CONST $WM_GETFONT = 49 
GLOBAL CONST $WM_SETHOTKEY = 50 
GLOBAL CONST $WM_GETHOTKEY = 51 
GLOBAL CONST $WM_QUERYDRAGICON = 55 
GLOBAL CONST $WM_COMPAREITEM = 57 
GLOBAL CONST $WM_GETOBJECT = 61 
GLOBAL CONST $WM_COMPACTING = 65 
GLOBAL CONST $WM_COMMNOTIFY = 68 
GLOBAL CONST $WM_WINDOWPOSCHANGING = 70 
GLOBAL CONST $WM_WINDOWPOSCHANGED = 71 
GLOBAL CONST $WM_POWER = 72 
GLOBAL CONST $WM_NOTIFY = 78 
GLOBAL CONST $WM_COPYDATA = 74 
GLOBAL CONST $WM_CANCELJOURNAL = 75 
GLOBAL CONST $WM_INPUTLANGCHANGEREQUEST = 80 
GLOBAL CONST $WM_INPUTLANGCHANGE = 81 
GLOBAL CONST $WM_TCARD = 82 
GLOBAL CONST $WM_HELP = 83 
GLOBAL CONST $WM_USERCHANGED = 84 
GLOBAL CONST $WM_NOTIFYFORMAT = 85 
GLOBAL CONST $WM_CUT = 768 
GLOBAL CONST $WM_COPY = 769 
GLOBAL CONST $WM_PASTE = 770 
GLOBAL CONST $WM_CLEAR = 771 
GLOBAL CONST $WM_UNDO = 772 
GLOBAL CONST $WM_CONTEXTMENU = 123 
GLOBAL CONST $WM_STYLECHANGING = 124 
GLOBAL CONST $WM_STYLECHANGED = 125 
GLOBAL CONST $WM_DISPLAYCHANGE = 126 
GLOBAL CONST $WM_GETICON = 127 
GLOBAL CONST $WM_SETICON = 128 
GLOBAL CONST $WM_NCCREATE = 129 
GLOBAL CONST $WM_NCDESTROY = 130 
GLOBAL CONST $WM_NCCALCSIZE = 131 
GLOBAL CONST $WM_NCHITTEST = 132 
GLOBAL CONST $WM_NCPAINT = 133 
GLOBAL CONST $WM_NCACTIVATE = 134 
GLOBAL CONST $WM_GETDLGCODE = 135 
GLOBAL CONST $WM_SYNCPAINT = 136 
GLOBAL CONST $WM_NCMOUSEMOVE = 160 
GLOBAL CONST $WM_NCLBUTTONDOWN = 161 
GLOBAL CONST $WM_NCLBUTTONUP = 162 
GLOBAL CONST $WM_NCLBUTTONDBLCLK = 163 
GLOBAL CONST $WM_NCRBUTTONDOWN = 164 
GLOBAL CONST $WM_NCRBUTTONUP = 165 
GLOBAL CONST $WM_NCRBUTTONDBLCLK = 166 
GLOBAL CONST $WM_NCMBUTTONDOWN = 167 
GLOBAL CONST $WM_NCMBUTTONUP = 168 
GLOBAL CONST $WM_NCMBUTTONDBLCLK = 169 
GLOBAL CONST $WM_KEYDOWN = 256 
GLOBAL CONST $WM_KEYUP = 257 
GLOBAL CONST $WM_CHAR = 258 
GLOBAL CONST $WM_DEADCHAR = 259 
GLOBAL CONST $WM_SYSKEYDOWN = 260 
GLOBAL CONST $WM_SYSKEYUP = 261 
GLOBAL CONST $WM_SYSCHAR = 262 
GLOBAL CONST $WM_SYSDEADCHAR = 263 
GLOBAL CONST $WM_INITDIALOG = 272 
GLOBAL CONST $WM_COMMAND = 273 
GLOBAL CONST $WM_SYSCOMMAND = 274 
GLOBAL CONST $WM_TIMER = 275 
GLOBAL CONST $WM_HSCROLL = 276 
GLOBAL CONST $WM_VSCROLL = 277 
GLOBAL CONST $WM_INITMENU = 278 
GLOBAL CONST $WM_INITMENUPOPUP = 279 
GLOBAL CONST $WM_MENUSELECT = 287 
GLOBAL CONST $WM_MENUCHAR = 288 
GLOBAL CONST $WM_ENTERIDLE = 289 
GLOBAL CONST $WM_MENURBUTTONUP = 290 
GLOBAL CONST $WM_MENUDRAG = 291 
GLOBAL CONST $WM_MENUGETOBJECT = 292 
GLOBAL CONST $WM_UNINITMENUPOPUP = 293 
GLOBAL CONST $WM_MENUCOMMAND = 294 
GLOBAL CONST $WM_CHANGEUISTATE = 295 
GLOBAL CONST $WM_UPDATEUISTATE = 296 
GLOBAL CONST $WM_QUERYUISTATE = 297 
GLOBAL CONST $WM_CTLCOLORMSGBOX = 306 
GLOBAL CONST $WM_CTLCOLOREDIT = 307 
GLOBAL CONST $WM_CTLCOLORLISTBOX = 308 
GLOBAL CONST $WM_CTLCOLORBTN = 309 
GLOBAL CONST $WM_CTLCOLORDLG = 310 
GLOBAL CONST $WM_CTLCOLORSCROLLBAR = 311 
GLOBAL CONST $WM_CTLCOLORSTATIC = 312 
GLOBAL CONST $WM_CTLCOLOR = 25 
GLOBAL CONST $MN_GETHMENU = 481 
GLOBAL CONST $NM_FIRST = 0 
GLOBAL CONST $NM_OUTOFMEMORY = $NM_FIRST - 1 
GLOBAL CONST $NM_CLICK = $NM_FIRST - 2 
GLOBAL CONST $NM_DBLCLK = $NM_FIRST - 3 
GLOBAL CONST $NM_RETURN = $NM_FIRST - 4 
GLOBAL CONST $NM_RCLICK = $NM_FIRST - 5 
GLOBAL CONST $NM_RDBLCLK = $NM_FIRST - 6 
GLOBAL CONST $NM_SETFOCUS = $NM_FIRST - 7 
GLOBAL CONST $NM_KILLFOCUS = $NM_FIRST - 8 
GLOBAL CONST $NM_CUSTOMDRAW = $NM_FIRST - 12 
GLOBAL CONST $NM_HOVER = $NM_FIRST - 13 
GLOBAL CONST $NM_NCHITTEST = $NM_FIRST - 14 
GLOBAL CONST $NM_KEYDOWN = $NM_FIRST - 15 
GLOBAL CONST $NM_RELEASEDCAPTURE = $NM_FIRST - 16 
GLOBAL CONST $NM_SETCURSOR = $NM_FIRST - 17 
GLOBAL CONST $NM_CHAR = $NM_FIRST - 18 
GLOBAL CONST $NM_TOOLTIPSCREATED = $NM_FIRST - 19 
GLOBAL CONST $NM_LDOWN = $NM_FIRST - 20 
GLOBAL CONST $NM_RDOWN = $NM_FIRST - 21 
GLOBAL CONST $NM_THEMECHANGED = $NM_FIRST - 22 
GLOBAL CONST $WM_MOUSEMOVE = 512 
GLOBAL CONST $WM_LBUTTONDOWN = 513 
GLOBAL CONST $WM_LBUTTONUP = 514 
GLOBAL CONST $WM_LBUTTONDBLCLK = 515 
GLOBAL CONST $WM_RBUTTONDOWN = 516 
GLOBAL CONST $WM_RBUTTONUP = 517 
GLOBAL CONST $WM_RBUTTONDBLCK = 518 
GLOBAL CONST $WM_MBUTTONDOWN = 519 
GLOBAL CONST $WM_MBUTTONUP = 520 
GLOBAL CONST $WM_MBUTTONDBLCK = 521 
GLOBAL CONST $WM_MOUSEWHEEL = 522 
GLOBAL CONST $WM_XBUTTONDOWN = 523 
GLOBAL CONST $WM_XBUTTONUP = 524 
GLOBAL CONST $WM_XBUTTONDBLCLK = 525 
GLOBAL CONST $WM_MOUSEHWHEEL = 526 
GLOBAL CONST $PS_SOLID = 0 
GLOBAL CONST $PS_DASH = 1 
GLOBAL CONST $PS_DOT = 2 
GLOBAL CONST $PS_DASHDOT = 3 
GLOBAL CONST $PS_DASHDOTDOT = 4 
GLOBAL CONST $PS_NULL = 5 
GLOBAL CONST $PS_INSIDEFRAME = 6 
GLOBAL CONST $LWA_ALPHA = 2 
GLOBAL CONST $LWA_COLORKEY = 1 
GLOBAL CONST $RGN_AND = 1 
GLOBAL CONST $RGN_OR = 2 
GLOBAL CONST $RGN_XOR = 3 
GLOBAL CONST $RGN_DIFF = 4 
GLOBAL CONST $RGN_COPY = 5 
GLOBAL CONST $ERRORREGION = 0 
GLOBAL CONST $NULLREGION = 1 
GLOBAL CONST $SIMPLEREGION = 2 
GLOBAL CONST $COMPLEXREGION = 3 
GLOBAL CONST $TRANSPARENT = 1 
GLOBAL CONST $OPAQUE = 2 
GLOBAL CONST $CCM_FIRST = 8192 
GLOBAL CONST $CCM_GETUNICODEFORMAT = ( $CCM_FIRST + 6 ) 
GLOBAL CONST $CCM_SETUNICODEFORMAT = ( $CCM_FIRST + 5 ) 
GLOBAL CONST $CCM_SETBKCOLOR = $CCM_FIRST + 1 
GLOBAL CONST $CCM_SETCOLORSCHEME = $CCM_FIRST + 2 
GLOBAL CONST $CCM_GETCOLORSCHEME = $CCM_FIRST + 3 
GLOBAL CONST $CCM_GETDROPTARGET = $CCM_FIRST + 4 
GLOBAL CONST $CCM_SETWINDOWTHEME = $CCM_FIRST + 11 
GLOBAL CONST $GA_PARENT = 1 
GLOBAL CONST $GA_ROOT = 2 
GLOBAL CONST $GA_ROOTOWNER = 3 
GLOBAL CONST $SM_CXSCREEN = 0 
GLOBAL CONST $SM_CYSCREEN = 1 
GLOBAL CONST $SM_CXVSCROLL = 2 
GLOBAL CONST $SM_CYHSCROLL = 3 
GLOBAL CONST $SM_CYCAPTION = 4 
GLOBAL CONST $SM_CXBORDER = 5 
GLOBAL CONST $SM_CYBORDER = 6 
GLOBAL CONST $SM_CXDLGFRAME = 7 
GLOBAL CONST $SM_CYDLGFRAME = 8 
GLOBAL CONST $SM_CYVTHUMB = 9 
GLOBAL CONST $SM_CXHTHUMB = 10 
GLOBAL CONST $SM_CXICON = 11 
GLOBAL CONST $SM_CYICON = 12 
GLOBAL CONST $SM_CXCURSOR = 13 
GLOBAL CONST $SM_CYCURSOR = 14 
GLOBAL CONST $SM_CYMENU = 15 
GLOBAL CONST $SM_CXFULLSCREEN = 16 
GLOBAL CONST $SM_CYFULLSCREEN = 17 
GLOBAL CONST $SM_CYKANJIWINDOW = 18 
GLOBAL CONST $SM_MOUSEPRESENT = 19 
GLOBAL CONST $SM_CYVSCROLL = 20 
GLOBAL CONST $SM_CXHSCROLL = 21 
GLOBAL CONST $SM_DEBUG = 22 
GLOBAL CONST $SM_SWAPBUTTON = 23 
GLOBAL CONST $SM_RESERVED1 = 24 
GLOBAL CONST $SM_RESERVED2 = 25 
GLOBAL CONST $SM_RESERVED3 = 26 
GLOBAL CONST $SM_RESERVED4 = 27 
GLOBAL CONST $SM_CXMIN = 28 
GLOBAL CONST $SM_CYMIN = 29 
GLOBAL CONST $SM_CXSIZE = 30 
GLOBAL CONST $SM_CYSIZE = 31 
GLOBAL CONST $SM_CXFRAME = 32 
GLOBAL CONST $SM_CYFRAME = 33 
GLOBAL CONST $SM_CXMINTRACK = 34 
GLOBAL CONST $SM_CYMINTRACK = 35 
GLOBAL CONST $SM_CXDOUBLECLK = 36 
GLOBAL CONST $SM_CYDOUBLECLK = 37 
GLOBAL CONST $SM_CXICONSPACING = 38 
GLOBAL CONST $SM_CYICONSPACING = 39 
GLOBAL CONST $SM_MENUDROPALIGNMENT = 40 
GLOBAL CONST $SM_PENWINDOWS = 41 
GLOBAL CONST $SM_DBCSENABLED = 42 
GLOBAL CONST $SM_CMOUSEBUTTONS = 43 
GLOBAL CONST $SM_SECURE = 44 
GLOBAL CONST $SM_CXEDGE = 45 
GLOBAL CONST $SM_CYEDGE = 46 
GLOBAL CONST $SM_CXMINSPACING = 47 
GLOBAL CONST $SM_CYMINSPACING = 48 
GLOBAL CONST $SM_CXSMICON = 49 
GLOBAL CONST $SM_CYSMICON = 50 
GLOBAL CONST $SM_CYSMCAPTION = 51 
GLOBAL CONST $SM_CXSMSIZE = 52 
GLOBAL CONST $SM_CYSMSIZE = 53 
GLOBAL CONST $SM_CXMENUSIZE = 54 
GLOBAL CONST $SM_CYMENUSIZE = 55 
GLOBAL CONST $SM_ARRANGE = 56 
GLOBAL CONST $SM_CXMINIMIZED = 57 
GLOBAL CONST $SM_CYMINIMIZED = 58 
GLOBAL CONST $SM_CXMAXTRACK = 59 
GLOBAL CONST $SM_CYMAXTRACK = 60 
GLOBAL CONST $SM_CXMAXIMIZED = 61 
GLOBAL CONST $SM_CYMAXIMIZED = 62 
GLOBAL CONST $SM_NETWORK = 63 
GLOBAL CONST $SM_CLEANBOOT = 67 
GLOBAL CONST $SM_CXDRAG = 68 
GLOBAL CONST $SM_CYDRAG = 69 
GLOBAL CONST $SM_SHOWSOUNDS = 70 
GLOBAL CONST $SM_CXMENUCHECK = 71 
GLOBAL CONST $SM_CYMENUCHECK = 72 
GLOBAL CONST $SM_SLOWMACHINE = 73 
GLOBAL CONST $SM_MIDEASTENABLED = 74 
GLOBAL CONST $SM_MOUSEWHEELPRESENT = 75 
GLOBAL CONST $SM_XVIRTUALSCREEN = 76 
GLOBAL CONST $SM_YVIRTUALSCREEN = 77 
GLOBAL CONST $SM_CXVIRTUALSCREEN = 78 
GLOBAL CONST $SM_CYVIRTUALSCREEN = 79 
GLOBAL CONST $SM_CMONITORS = 80 
GLOBAL CONST $SM_SAMEDISPLAYFORMAT = 81 
GLOBAL CONST $SM_IMMENABLED = 82 
GLOBAL CONST $SM_CXFOCUSBORDER = 83 
GLOBAL CONST $SM_CYFOCUSBORDER = 84 
GLOBAL CONST $SM_TABLETPC = 86 
GLOBAL CONST $SM_MEDIACENTER = 87 
GLOBAL CONST $SM_STARTER = 88 
GLOBAL CONST $SM_SERVERR2 = 89 
GLOBAL CONST $SM_CMETRICS = 90 
GLOBAL CONST $SM_REMOTESESSION = 4096 
GLOBAL CONST $SM_SHUTTINGDOWN = 8192 
GLOBAL CONST $SM_REMOTECONTROL = 8193 
GLOBAL CONST $SM_CARETBLINKINGENABLED = 8194 
GLOBAL CONST $BLACKNESS = 66 
GLOBAL CONST $CAPTUREBLT = 1073741824 
GLOBAL CONST $DSTINVERT = 5570569 
GLOBAL CONST $MERGECOPY = 12583114 
GLOBAL CONST $MERGEPAINT = 12255782 
GLOBAL CONST $NOMIRRORBITMAP = -2147483648 
GLOBAL CONST $NOTSRCCOPY = 3342344 
GLOBAL CONST $NOTSRCERASE = 1114278 
GLOBAL CONST $PATCOPY = 15728673 
GLOBAL CONST $PATINVERT = 5898313 
GLOBAL CONST $PATPAINT = 16452105 
GLOBAL CONST $SRCAND = 8913094 
GLOBAL CONST $SRCCOPY = 13369376 
GLOBAL CONST $SRCERASE = 4457256 
GLOBAL CONST $SRCINVERT = 6684742 
GLOBAL CONST $SRCPAINT = 15597702 
GLOBAL CONST $WHITENESS = 16711778 
GLOBAL CONST $DT_BOTTOM = 8 
GLOBAL CONST $DT_CALCRECT = 1024 
GLOBAL CONST $DT_CENTER = 1 
GLOBAL CONST $DT_EDITCONTROL = 8192 
GLOBAL CONST $DT_END_ELLIPSIS = 32768 
GLOBAL CONST $DT_EXPANDTABS = 64 
GLOBAL CONST $DT_EXTERNALLEADING = 512 
GLOBAL CONST $DT_HIDEPREFIX = 1048576 
GLOBAL CONST $DT_INTERNAL = 4096 
GLOBAL CONST $DT_LEFT = 0 
GLOBAL CONST $DT_MODIFYSTRING = 65536 
GLOBAL CONST $DT_NOCLIP = 256 
GLOBAL CONST $DT_NOFULLWIDTHCHARBREAK = 524288 
GLOBAL CONST $DT_NOPREFIX = 2048 
GLOBAL CONST $DT_PATH_ELLIPSIS = 16384 
GLOBAL CONST $DT_PREFIXONLY = 2097152 
GLOBAL CONST $DT_RIGHT = 2 
GLOBAL CONST $DT_RTLREADING = 131072 
GLOBAL CONST $DT_SINGLELINE = 32 
GLOBAL CONST $DT_TABSTOP = 128 
GLOBAL CONST $DT_TOP = 0 
GLOBAL CONST $DT_VCENTER = 4 
GLOBAL CONST $DT_WORDBREAK = 16 
GLOBAL CONST $DT_WORD_ELLIPSIS = 262144 
GLOBAL CONST $RDW_ERASE = 4 
GLOBAL CONST $RDW_FRAME = 1024 
GLOBAL CONST $RDW_INTERNALPAINT = 2 
GLOBAL CONST $RDW_INVALIDATE = 1 
GLOBAL CONST $RDW_NOERASE = 32 
GLOBAL CONST $RDW_NOFRAME = 2048 
GLOBAL CONST $RDW_NOINTERNALPAINT = 16 
GLOBAL CONST $RDW_VALIDATE = 8 
GLOBAL CONST $RDW_ERASENOW = 512 
GLOBAL CONST $RDW_UPDATENOW = 256 
GLOBAL CONST $RDW_ALLCHILDREN = 128 
GLOBAL CONST $RDW_NOCHILDREN = 64 
GLOBAL CONST $WM_RENDERFORMAT = 773 
GLOBAL CONST $WM_RENDERALLFORMATS = 774 
GLOBAL CONST $WM_DESTROYCLIPBOARD = 775 
GLOBAL CONST $WM_DRAWCLIPBOARD = 776 
GLOBAL CONST $WM_PAINTCLIPBOARD = 777 
GLOBAL CONST $WM_VSCROLLCLIPBOARD = 778 
GLOBAL CONST $WM_SIZECLIPBOARD = 779 
GLOBAL CONST $WM_ASKCBFORMATNAME = 780 
GLOBAL CONST $WM_CHANGECBCHAIN = 781 
GLOBAL CONST $WM_HSCROLLCLIPBOARD = 782 
GLOBAL CONST $HTERROR = - 2 
GLOBAL CONST $HTTRANSPARENT = - 1 
GLOBAL CONST $HTNOWHERE = 0 
GLOBAL CONST $HTCLIENT = 1 
GLOBAL CONST $HTCAPTION = 2 
GLOBAL CONST $HTSYSMENU = 3 
GLOBAL CONST $HTGROWBOX = 4 
GLOBAL CONST $HTSIZE = $HTGROWBOX 
GLOBAL CONST $HTMENU = 5 
GLOBAL CONST $HTHSCROLL = 6 
GLOBAL CONST $HTVSCROLL = 7 
GLOBAL CONST $HTMINBUTTON = 8 
GLOBAL CONST $HTMAXBUTTON = 9 
GLOBAL CONST $HTLEFT = 10 
GLOBAL CONST $HTRIGHT = 11 
GLOBAL CONST $HTTOP = 12 
GLOBAL CONST $HTTOPLEFT = 13 
GLOBAL CONST $HTTOPRIGHT = 14 
GLOBAL CONST $HTBOTTOM = 15 
GLOBAL CONST $HTBOTTOMLEFT = 16 
GLOBAL CONST $HTBOTTOMRIGHT = 17 
GLOBAL CONST $HTBORDER = 18 
GLOBAL CONST $HTREDUCE = $HTMINBUTTON 
GLOBAL CONST $HTZOOM = $HTMAXBUTTON 
GLOBAL CONST $HTSIZEFIRST = $HTLEFT 
GLOBAL CONST $HTSIZELAST = $HTBOTTOMRIGHT 
GLOBAL CONST $HTOBJECT = 19 
GLOBAL CONST $HTCLOSE = 20 
GLOBAL CONST $HTHELP = 21 
GLOBAL CONST $COLOR_SCROLLBAR = 0 
GLOBAL CONST $COLOR_BACKGROUND = 1 
GLOBAL CONST $COLOR_ACTIVECAPTION = 2 
GLOBAL CONST $COLOR_INACTIVECAPTION = 3 
GLOBAL CONST $COLOR_MENU = 4 
GLOBAL CONST $COLOR_WINDOW = 5 
GLOBAL CONST $COLOR_WINDOWFRAME = 6 
GLOBAL CONST $COLOR_MENUTEXT = 7 
GLOBAL CONST $COLOR_WINDOWTEXT = 8 
GLOBAL CONST $COLOR_CAPTIONTEXT = 9 
GLOBAL CONST $COLOR_ACTIVEBORDER = 10 
GLOBAL CONST $COLOR_INACTIVEBORDER = 11 
GLOBAL CONST $COLOR_APPWORKSPACE = 12 
GLOBAL CONST $COLOR_HIGHLIGHT = 13 
GLOBAL CONST $COLOR_HIGHLIGHTTEXT = 14 
GLOBAL CONST $COLOR_BTNFACE = 15 
GLOBAL CONST $COLOR_BTNSHADOW = 16 
GLOBAL CONST $COLOR_GRAYTEXT = 17 
GLOBAL CONST $COLOR_BTNTEXT = 18 
GLOBAL CONST $COLOR_INACTIVECAPTIONTEXT = 19 
GLOBAL CONST $COLOR_BTNHIGHLIGHT = 20 
GLOBAL CONST $COLOR_3DDKSHADOW = 21 
GLOBAL CONST $COLOR_3DLIGHT = 22 
GLOBAL CONST $COLOR_INFOTEXT = 23 
GLOBAL CONST $COLOR_INFOBK = 24 
GLOBAL CONST $COLOR_HOTLIGHT = 26 
GLOBAL CONST $COLOR_GRADIENTACTIVECAPTION = 27 
GLOBAL CONST $COLOR_GRADIENTINACTIVECAPTION = 28 
GLOBAL CONST $COLOR_MENUHILIGHT = 29 
GLOBAL CONST $COLOR_MENUBAR = 30 
GLOBAL CONST $COLOR_DESKTOP = 1 
GLOBAL CONST $COLOR_3DFACE = 15 
GLOBAL CONST $COLOR_3DSHADOW = 16 
GLOBAL CONST $COLOR_3DHIGHLIGHT = 20 
GLOBAL CONST $COLOR_3DHILIGHT = 20 
GLOBAL CONST $COLOR_BTNHILIGHT = 20 
GLOBAL CONST $HINST_COMMCTRL = - 1 
GLOBAL CONST $IDB_STD_SMALL_COLOR = 0 
GLOBAL CONST $IDB_STD_LARGE_COLOR = 1 
GLOBAL CONST $IDB_VIEW_SMALL_COLOR = 4 
GLOBAL CONST $IDB_VIEW_LARGE_COLOR = 5 
GLOBAL CONST $IDB_HIST_SMALL_COLOR = 8 
GLOBAL CONST $IDB_HIST_LARGE_COLOR = 9 
GLOBAL CONST $STARTF_FORCEOFFFEEDBACK = 128 
GLOBAL CONST $STARTF_FORCEONFEEDBACK = 64 
GLOBAL CONST $STARTF_RUNFULLSCREEN = 32 
GLOBAL CONST $STARTF_USECOUNTCHARS = 8 
GLOBAL CONST $STARTF_USEFILLATTRIBUTE = 16 
GLOBAL CONST $STARTF_USEHOTKEY = 512 
GLOBAL CONST $STARTF_USEPOSITION = 4 
GLOBAL CONST $STARTF_USESHOWWINDOW = 1 
GLOBAL CONST $STARTF_USESIZE = 2 
GLOBAL CONST $STARTF_USESTDHANDLES = 256 
GLOBAL CONST $CDDS_PREPAINT = 1 
GLOBAL CONST $CDDS_POSTPAINT = 2 
GLOBAL CONST $CDDS_PREERASE = 3 
GLOBAL CONST $CDDS_POSTERASE = 4 
GLOBAL CONST $CDDS_ITEM = 65536 
GLOBAL CONST $CDDS_ITEMPREPAINT = 65537 
GLOBAL CONST $CDDS_ITEMPOSTPAINT = 65538 
GLOBAL CONST $CDDS_ITEMPREERASE = 65539 
GLOBAL CONST $CDDS_ITEMPOSTERASE = 65540 
GLOBAL CONST $CDDS_SUBITEM = 131072 
GLOBAL CONST $CDIS_SELECTED = 1 
GLOBAL CONST $CDIS_GRAYED = 2 
GLOBAL CONST $CDIS_DISABLED = 4 
GLOBAL CONST $CDIS_CHECKED = 8 
GLOBAL CONST $CDIS_FOCUS = 16 
GLOBAL CONST $CDIS_DEFAULT = 32 
GLOBAL CONST $CDIS_HOT = 64 
GLOBAL CONST $CDIS_MARKED = 128 
GLOBAL CONST $CDIS_INDETERMINATE = 256 
GLOBAL CONST $CDIS_SHOWKEYBOARDCUES = 512 
GLOBAL CONST $CDIS_NEARHOT = 1024 
GLOBAL CONST $CDIS_OTHERSIDEHOT = 2048 
GLOBAL CONST $CDIS_DROPHILITED = 4096 
GLOBAL CONST $CDRF_DODEFAULT = 0 
GLOBAL CONST $CDRF_NEWFONT = 2 
GLOBAL CONST $CDRF_SKIPDEFAULT = 4 
GLOBAL CONST $CDRF_NOTIFYPOSTPAINT = 16 
GLOBAL CONST $CDRF_NOTIFYITEMDRAW = 32 
GLOBAL CONST $CDRF_NOTIFYSUBITEMDRAW = 32 
GLOBAL CONST $CDRF_NOTIFYPOSTERASE = 64 
GLOBAL CONST $CDRF_DOERASE = 8 
GLOBAL CONST $CDRF_SKIPPOSTPAINT = 256 
GLOBAL CONST $GUI_SS_DEFAULT_GUI = BITOR ( $WS_MINIMIZEBOX , $WS_CAPTION , $WS_POPUP , $WS_SYSMENU ) 
OPT ( "GUIOnEventMode" , 1 ) 
GLOBAL $ISRUN = 0 , $ISAUTOGET 
GLOBAL $SYS_FILE = @SCRIPTDIR & "\settings.ini" 
$ISAUTOGET = INIREAD ( $SYS_FILE , "settings" , "自动获取" , 1 ) 
#Region ### START Koda GUI section ### Form=F:\AUTOIT\窗体\NOD32 ID获取.kxf 
$FORM1 = GUICREATE ( "NOD32 升级ID获取器 FOR ESS   -- POWERED BY MENGNIU.IN" , 536 , 245 , 192 , 114 ) 
GUISETONEVENT ( $GUI_EVENT_CLOSE , "tuichu" ) 
$GROUP1 = GUICTRLCREATEGROUP ( "数据信息" , 88 , 8 , 433 , 225 ) 
$EDIT_CONTENT = GUICTRLCREATEEDIT ( "" , 96 , 24 , 417 , 201 ) 
GUICTRLCREATEGROUP ( "" , - 99 , - 99 , 1 , 1 ) 
$BUTTON_GET_ID = GUICTRLCREATEBUTTON ( "获 取" , 16 , 16 , 50 , 22 ) 
GUICTRLSETONEVENT ( - 1 , "_controlit" ) 
$BUTTON_ESC = GUICTRLCREATEBUTTON ( "退 出" , 16 , 46 , 50 , 22 ) 
GUICTRLSETONEVENT ( - 1 , "tuichu" ) 
$CHECKBOX_AUTO_GET = GUICTRLCREATECHECKBOX ( "自动获取" , 16 , 80 , 65 , 17 ) 
IF $ISAUTOGET == 1 THEN GUICTRLSETSTATE ( - 1 , $GUI_CHECKED ) 
GUICTRLSETONEVENT ( - 1 , "_checkbox" ) 
$LABEL1 = GUICTRLCREATELABEL ( "QQ:" , 15 , 128 , 23 , 17 ) 
GUICTRLSETCOLOR ( - 1 , 32768 ) 
$LABEL2 = GUICTRLCREATELABEL ( "MENGNIU.IN" , 15 , 176 , 69 , 17 ) 
GUICTRLSETCOLOR ( - 1 , 255 ) 
$LABEL3 = GUICTRLCREATELABEL ( "猛牛脚本" , 15 , 208 , 52 , 17 ) 
GUICTRLSETCOLOR ( - 1 , 255 ) 
$LABEL4 = GUICTRLCREATELABEL ( "114026307" , 15 , 150 , 58 , 17 ) 
GUICTRLSETCOLOR ( - 1 , 32768 ) 
GUISETSTATE ( @SW_SHOW ) 
IF $ISAUTOGET == 1 THEN _CONTROLIT ( ) 
#EndRegion ### END Koda GUI section ### 
WHILE 1 
SLEEP ( 100 ) 
WEND 
FUNC _CHECKBOX ( ) 
$ISAUTOGET = GUICTRLREAD ( $CHECKBOX_AUTO_GET ) 
INIWRITE ( $SYS_FILE , "settings" , "自动获取" , $ISAUTOGET ) 
ENDFUNC 
FUNC _CONTROLIT ( ) 
GUICTRLSETSTATE ( $BUTTON_GET_ID , $GUI_DISABLE ) 
_ADD_DATA_TO_EDIT ( $EDIT_CONTENT , "开始获取,请稍等..." ) 
$_I_INDEX = 0 
DO 
_GET_INFO ( $_I_INDEX ) 
IF @ERROR == 2 THEN EXITLOOP 
$_I_INDEX += 1 
UNTIL NOT @ERROR 
GUICTRLSETSTATE ( $BUTTON_GET_ID , $GUI_ENABLE ) 
ENDFUNC 
FUNC _GET_INFO ( $_INDEX = 0 ) 
$_WEB_HTML = HTTPCONNECT ( "http://www.nod32id.com/nod32-update-id" , "get" , "http://mengniu.in" ) 
$_WEB_HTML [ 1 ] = BINARYTOSTRING ( $_WEB_HTML [ 1 ] ) 
$_TARGET_PAGE = STRINGREGEXP ( $_WEB_HTML [ 1 ] , "/nod32-update-id/.*?NOD32.*升级ID_\d{1,2}月\d{1,2}日" , 3 ) 
IF @ERROR THEN RETURN SETERROR ( 2 , 0 , 0 ) 
_ADD_DATA_TO_EDIT ( $EDIT_CONTENT , "正在获取更新日期为:[" & _REG_GET_STRING ( $_TARGET_PAGE [ $_INDEX ] , "\d*月\d*日" ) & "]的ID...." ) 
$_TARGET_PAGE = "http://www.nod32id.com" & _REG_GET_STRING ( $_TARGET_PAGE [ $_INDEX ] , "/nod32-update-id/.*?(?=")" ) 
SHOWTISHI ( $_TARGET_PAGE ) 
$_WEB_HTML = HTTPCONNECT ( $_TARGET_PAGE , "get" , "http://mengniu.in" ) 
$_WEB_HTML [ 1 ] = BINARYTOSTRING ( $_WEB_HTML [ 1 ] ) 
$_CONTENT = _REG_GET_STRING ( $_WEB_HTML [ 1 ] , "(?<=ESS的)[\s\S]*?(?=正文)" ) 
SHOWTISHI ( $_CONTENT ) 
$_USERS = STRINGREGEXP ( $_CONTENT , "(?<=Username:).*?(?= <br)|(?<=用户名:).*?(?= <br)|(?<=用户名: ).*?(?= <br)|TRIAL-\d{8}" , 3 ) 
$_PASSWORD = STRINGREGEXP ( $_CONTENT , "(?<=Password:)\w*?(?=<)|(?<=密码:)\w*?(?=<)|(?<=密码: )\w*?(?=<)|(?=\D)\w{10}(?=</p>)" , 3 ) 
$_USER_NUM = UBOUND ( $_USERS ) 
$_PASS_NUM = UBOUND ( $_PASSWORD ) 
IF $_USER_NUM <> $_PASS_NUM THEN RETURN SETERROR ( 1 , 0 , 0 ) 
_ADD_DATA_TO_EDIT ( $EDIT_CONTENT , "以下是获取到的升级ID:" ) 
FOR $_I = 0 TO $_USER_NUM - 1 
_ADD_DATA_TO_EDIT ( $EDIT_CONTENT , "用户名:" & $_USERS [ $_I ] & "密码:" & $_PASSWORD [ $_I ] ) 
NEXT 
ENDFUNC 
FUNC _ADD_DATA_TO_EDIT ( $_GUICTRL , $_CONTENT ) 
GUICTRLSETDATA ( $_GUICTRL , GUICTRLREAD ( $_GUICTRL ) & $_CONTENT & @CRLF ) 
GUICTRLRECVMSG ( $_GUICTRL , $EM_SCROLLCARET ) 
ENDFUNC 
FUNC HTTPCONNECT ( $_THE_URL = "" , $_METHOD = "post" , $_REFERER = "" , $_COOKIES = "" , $_SEND_INFO = "" ) 
LOCAL $_THE_SERVER , $_THEQUEST , $_THE_HEADERS , $_THE_INFO_TO_RETURN [ 2 ] 
$_THE_URL = STRINGREGEXPREPLACE ( $_THE_URL , "https://|http://" , "" ) 
$_THE_SERVER = STRINGREGEXP ( $_THE_URL , ".*?(?=/)" , 1 ) 
IF @ERROR THEN RETURN SETERROR ( 1 , 0 , 0 ) 
$_THEQUEST = STRINGRIGHT ( $_THE_URL , STRINGLEN ( $_THE_URL ) - STRINGLEN ( $_THE_SERVER [ 0 ] ) ) 
$_HOPEN = _WINHTTPOPEN ( ) 
_WINHTTPSETTIMEOUTS ( $_HOPEN , 5000 , 10000 , 100000 , 10000 ) 
$_HCONNECT = _WINHTTPCONNECT ( $_HOPEN , $_THE_SERVER [ 0 ] ) 
$_HREQUEST = _WINHTTPOPENREQUEST ( $_HCONNECT , $_METHOD , $_THEQUEST , "HTTP/1.1" , $_REFERER , "*/*" ) 
IF $_COOKIES <> "" THEN _WINHTTPADDREQUESTHEADERS ( $_HREQUEST , "Cookie:" & $_COOKIES & @CRLF ) 
$_THE_HEADERS &= "Cache-Control:no-cache" & @CRLF 
IF $_METHOD == "POST" THEN $_THE_HEADERS &= "Content-Type:application/x-www-form-urlencoded" & @CRLF 
$_THE_HEADERS &= "Accept-Language:zh-cn" 
$_THE_HEADERS &= "Connection:Keep-Alive" 
_WINHTTPSENDREQUEST ( $_HREQUEST , $_THE_HEADERS , $_SEND_INFO , STRINGLEN ( $_SEND_INFO ) ) 
_WINHTTPRECEIVERESPONSE ( $_HREQUEST ) 
IF _WINHTTPQUERYDATAAVAILABLE ( $_HREQUEST ) THEN 
$_HEADER = _WINHTTPQUERYHEADERS ( $_HREQUEST ) 
$_THE_INFO_TO_RETURN [ 0 ] = $_HEADER 
$_BODY = _WINHTTPREADDATA ( $_HREQUEST , 2 , 1000000 ) 
$_THE_INFO_TO_RETURN [ 1 ] = $_BODY 
ELSE 
RETURN SETERROR ( 1 , 0 , 0 ) 
ENDIF 
_WINHTTPCLOSEHANDLE ( $_HREQUEST ) 
_WINHTTPCLOSEHANDLE ( $_HCONNECT ) 
_WINHTTPCLOSEHANDLE ( $_HOPEN ) 
RETURN $_THE_INFO_TO_RETURN 
ENDFUNC 
FUNC SHOWTISHI ( $NEIRONG ) 
CONSOLEWRITE ( $NEIRONG & @CRLF ) 
ENDFUNC 
FUNC _REG_GET_STRING ( $_THE_INFO , $_THE_REG_EXP ) 
LOCAL $_STING_REG_EXP 
IF $_THE_INFO == "" OR $_THE_REG_EXP == "" THEN RETURN SETERROR ( 1 , 1 , 0 ) 
$_STING_REG_EXP = STRINGREGEXP ( $_THE_INFO , $_THE_REG_EXP , 1 ) 
IF @ERROR THEN RETURN SETERROR ( 1 , 1 , 0 ) 
RETURN $_STING_REG_EXP [ 0 ] 
ENDFUNC 
FUNC SHOWMSG ( $DETAIL , $CHAOSHI = 99999 ) 
MSGBOX ( 262144 + 64 , "提示" , $DETAIL , $CHAOSHI ) 
ENDFUNC 
FUNC TUICHU ( ) 
EXIT 
ENDFUNC 
雪    币: 7136
活跃值: (1593)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
红叶疯了 2010-10-18 12:02
3
0
ximo大大,能否分享下经验?   
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
KuNgBiM 66 2010-10-18 12:22
4
0
2楼很给力啊,膜拜后路过。。。
雪    币: 1382
活跃值: (728)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hmilywen 2010-10-18 13:43
5
0
http://bbs.pediy.com/showpost.php?p=863008&postcount=10


0042CC52
雪    币: 7136
活跃值: (1593)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
红叶疯了 2010-10-18 14:34
6
0
我的方法相同,但得不到完整语句! 只能是得到部分内容!
雪    币: 515
活跃值: (64)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
红尘岁月 2 2010-10-18 17:11
7
0
一样,只能得到部分内容。

一直没有人回答,说明程序中直接取只能取部分。

整体的内容应该是需要一个函数来解析的。
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
快雪时晴 4 2010-10-18 21:37
8
0
应该是有一个组装函数,但内存中似乎也看不到完整的一句例如SLEEP(100)
雪    币: 515
活跃值: (64)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
红尘岁月 2 2010-10-19 08:13
9
0
看了一下,直接分析内存数据也是不难的。
雪    币: 6173
活跃值: (3113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinarenjf 2010-10-19 08:19
10
0
LS能否放点资料说明下...
雪    币: 515
活跃值: (64)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
红尘岁月 2 2010-10-19 08:58
11
0
早上刚刚研究的结果,不全

以楼主的程序为例:
1、找到分析的地方 (这个好找,能取出部分内容的同志都应该了解)
0042CB16    8B4C24 6C       MOV ECX, DWORD PTR SS:[ESP+6C]
0042CB1A    8B5424 74       MOV EDX, DWORD PTR SS:[ESP+74]
0042CB1E    0FB61C11        MOVZX EBX, BYTE PTR DS:[ECX+EDX]
0042CB22    8D0411          LEA EAX, DWORD PTR DS:[ECX+EDX]
0042CB25    41              INC ECX
0042CB26    8BFB            MOV EDI, EBX
0042CB28    8D7424 20       LEA ESI, DWORD PTR SS:[ESP+20]
0042CB2C    894C24 6C       MOV DWORD PTR SS:[ESP+6C], ECX
0042CB30    E8 CB5FFDFF     CALL 00402B00                            ; 00402B00
0042CB35    56              PUSH ESI
0042CB36    E8 458B0000     CALL 00435680                            ; 00435680
0042CB3B    84C0            TEST AL, AL
0042CB3D    74 1D           JE SHORT 0042CB5C                        ; 0042CB5C
0042CB3F    8B4C24 6C       MOV ECX, DWORD PTR SS:[ESP+6C]
0042CB43    8B5424 74       MOV EDX, DWORD PTR SS:[ESP+74]
0042CB47    8D0411          LEA EAX, DWORD PTR DS:[ECX+EDX]
0042CB4A    8B00            MOV EAX, DWORD PTR DS:[EAX]
0042CB4C    83C1 04         ADD ECX, 4
0042CB4F    894C24 6C       MOV DWORD PTR SS:[ESP+6C], ECX
0042CB53    894424 20       MOV DWORD PTR SS:[ESP+20], EAX
.......

循环解析的地方,看一下开始的地方:
0042CB16    8B4C24 6C       MOV ECX, DWORD PTR SS:[ESP+6C]
0042CB1A    8B5424 74       MOV EDX, DWORD PTR SS:[ESP+74]

EDX保存解析的基址,ECX是增量
查看基址内容:
008D1200  98 06 00 00 37 07 00 00 00 24 00 55 00 62 00 60  ?..7...$.U.b.`
008D1210  00 6E 00 68 00 69 00 7F 37 1E 00 00 00 3D 00 5F  .n.h.i.7...=._
008D1220  00 6B 00 6A 00 71 00 57 00 6A 00 2D 00 49 00 6C  .k.j.q.W.j.-.I.l
008D1230  00 7F 00 6E 00 6E 00 7B 00 6C 00 41 00 77 00 7D  ..n.n.{.l.A.w.}
008D1240  00 71 00 70 00 23 00 69 00 71 00 70 00 77 00 6B  .q.p.#.i.q.p.w.k
008D1250  00 30 00 77 00 7D 00 71 00 7F 37 28 00 00 00 0B  .0.w.}.q.7(...
008D1260  00 69 00 5D 00 5C 00 47 00 61 00 5C 00 1B 00 7F  .i.].\.G.a.\..
008D1270  00 5A 00 49 00 58 00 58 00 4D 00 5A 00 77 00 47  .Z.I.X.X.M.Z.w.G
008D1280  00 5D 00 5C 00 4E 00 41 00 44 00 4D 00 15 00 3E  .].\.N.A.D.M..>
008D1290  7F F9 8B 38 62 E9 54 74 00 66 00 67 00 6C 00 1B  鶍8b門t.f.g.l.
008D12A0  00 1A 00 61 00 6C 00 06 00 4D 00 50 00 4D 00 7F  ..a.l..M.P.M.
008D12B0  37 4C 00 00 00 6F 00 0D 00 39 00 38 00 23 00 05  7L...o...9.8.#.
008D12C0  00 38 00 7F 00 1B 00 3E 00 2D 00 3C 00 3C 00 29  .8...>.-.<.<.)
008D12D0  00 3E 00 13 00 1E 00 29 00 3F 00 13 00 0F 00 23  .>...).?...#
008D12E0  00 21 00 21 00 29 00 22 00 38 00 71 00 02 00 03  .!.!.).".8.q..
008D12F0  00 08 00 7F 00 7E 00 6C 00 09 00 1F 00 1F 00 6C  ...~.l.....l

98 06 00 00 估计与整个autoit语句长度有关,
接着:
37 07 00 00 00 24 00 55 00 62 00 60  ?..7...$.U.b.`
008D1210  00 6E 00 68 00 69 00
37 代表类型,07 00 00 00  代表长度,是宽字符,要 x 2,后面的字符,解析要与长度 XOR
004450A4    66:313C43       XOR WORD PTR DS:[EBX+EAX*2], DI
004450A8    40              INC EAX
004450A9    3BC7            CMP EAX, EDI

再后面
7F 37 1E 00 00 00 3D 00 5F  .n.h.i.7...=._
008D1220  00 6B 00 6A 00 71 00 57 00 6A 00 2D 00 49 00 6C  .k.j.q.W.j.-.I.l
008D1230  00 7F 00 6E 00 6E 00 7B 00 6C 00 41 00 77 00 7D  ..n.n.{.l.A.w.}
008D1240  00 71 00 70 00 23 00 69 00 71 00 70 00 77 00 6B  .q.p.#.i.q.p.w.k
008D1250  00 30 00 77 00 7D 00 71 00

7F 代表换行
37 文本 1E 00 00 00  代表长度

后面类似
其中,我早上分析出的一些类型
30 约定符,文本
31 函数名,文本
32 环境变量,文本,带@ 如@TEMPDIR
33 变量名,文本,需要带$
36 参数,文本,需要带引号
37 文本
40 ,
41 =
47 (
48 )
4A -
4D &
7F 换行
05 数值
雪    币: 1163
活跃值: (137)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
pencil 5 2010-10-19 09:10
12
0
ximo牛分享下喽~
雪    币: 7136
活跃值: (1593)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
红叶疯了 2010-10-19 09:34
13
0
各位大大说的都不错,可是为什么都不全呢!
强烈建议 ximo大大出来分享下经验!
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小鱼 2010-10-19 11:30
14
0
case 0x40:          /* , */
                        i++;
                        fwrite( ", ", 2, 1, fp );
                        break;

                case 0x41:        /* = */
                        i++;
                        fwrite( "= ", 2, 1, fp );                       
                        break;

                case 0x42:        /* > */
                        i++;
                        fwrite( "> ", 2, 1, fp );
                        break;

                case 0x43:        /* < */
                        i++;
                        fwrite( "< ", 2, 1, fp );
                        break;

                case 0x44:        /* <> */
                        i++;
                        fwrite( "<> ", 3, 1, fp );
                        break;

                case 0x45:        /* >= */
                        i++;
                        fwrite( ">= ", 3, 1, fp );
                        break;

                case 0x46:        /* <= */
                        i++;
                        fwrite( "<= ", 3, 1, fp );
                        break;

                case 0x47:        /* ( */
                        i++;
                        fwrite( "( ", 2, 1, fp );
                        break;

                case 0x48:        /* ) */
                        i++;
                        fwrite( ") ", 2, 1, fp );
                        break;

                case 0x49:        /* + */
                        i++;
                        fwrite( "+ ", 2, 1, fp );
                        break;

                case 0x4a:        /* - */
                        i++;
                        fwrite( "- ", 2, 1, fp );
                        break;

                case 0x4b:        /* / */
                        i++;
                        fwrite( "/ ", 2, 1, fp );
                        break;

                case 0x4c:        /* * */
                        i++;
                        fwrite( "* ", 2, 1, fp );
                        break;

                case 0x4d:        /* & */
                        i++;
                        fwrite( "& ", 2, 1, fp );
                        break;

                case 0x4e:        /* [ */
                        i++;
                        fwrite( "[ ", 2, 1, fp );
                        break;

                case 0x4f:        /* ] */
                        i++;
                        fwrite( "] ", 2, 1, fp );
                        break;

                case 0x50:        /* == */
                        i++;
                        fwrite( "== ", 3, 1, fp );
                        break;

                case 0x51:        /* ^ */
                        i++;
                        fwrite( "^ ", 2, 1, fp );
                        break;

                case 0x52:        /* += */
                        i++;
                        fwrite( "+= ", 3, 1, fp );
                        break;

                case 0x53:        /* -= */
                        i++;
                        fwrite( "-= ", 3, 1, fp );
                        break;

                case 0x54:        /* /= */
                        i++;
                        fwrite( "/= ", 3, 1, fp );
                        break;

                case 0x55:        /* *= */
                        i++;
                        fwrite( "*= ", 3, 1, fp );
                        break;

                case 0x56:        /* &= */
                        i++;
                        fwrite( "&= ", 3, 1, fp );
                        break;

                case 0x7f:        /* 段结束 */
                        i++;
                        fwrite( "\r\n", 2, 1, fp );
                        sectionIndex++;
                        break;
雪    币: 515
活跃值: (64)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
红尘岁月 2 2010-10-19 13:00
15
0
非常感谢..
雪    币: 276
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
loveqqc 2010-10-20 06:28
16
0
有办法了?能说详细点吗?谢谢!
雪    币: 276
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
loveqqc 2010-10-20 06:46
17
0
case 0x40:    /* , */
      i++;
      fwrite( ", ", 2, 1, fp );
      break;

    case 0x41:  /* = */
      i++;
      fwrite( "= ", 2, 1, fp );      
      break;
这些是什么意思,楼上能说清楚点吗?
雪    币: 276
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
loveqqc 2010-10-20 07:01
18
0
哪位分享下工具啊,谢谢啦。
雪    币: 478
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
flyingayi 2010-10-20 08:55
19
0
都是牛人那。
雪    币: 62
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
friendkill 2010-10-20 14:07
20
0
程序有壳? 太菜了,壳都脱不掉

嗯,用工具解开了
雪    币: 1382
活跃值: (728)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hmilywen 2010-10-21 16:05
21
0
小鱼妹妹贴代码了~
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lotsunhim 2010-10-23 12:26
22
0
不会,做个记号。
雪    币: 611
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ximo 2010-10-28 14:49
23
0
http://clamav-sosdg.googlecode.com/svn/trunk/clamav-win32/libclamav/autoit.c
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qqmss 2010-10-30 11:17
24
0
这个怎么用啊,是执行脚本还是什么??
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
快雪时晴 4 2010-10-30 13:28
25
0
参考解码部分,od调试验证,写出自己的脚本
游客
登录 | 注册 方可回帖
返回