亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? http.asm

?? http.rar
?? ASM
?? 第 1 頁 / 共 5 頁
字號(hào):
                        invoke String2Dword,addr PortString
                        mov HTTPPort,eax
                .else
                        mov al,byte ptr [edi]
                        mov byte ptr [esi],al
                        inc edi
                        inc esi
                        inc ecx
                .endif
        .endw
        .if ecx==URLLength      ; if there's no relative URL , we must add "/" to it.
                mov byte ptr [RelativeURL],"/"
        .endif
        ret
ParseURL endp
;==========================================================================
;                                GetFileName
;==========================================================================
; This function searches the url string for the last "/" character. If "/"
; is found, it's assumed that the file name follows "/" character.
;--------------------------------------------------------------------------
GetFileName proc URL:DWORD
        invoke RtlFillMemory,addr FileName,256,0
        invoke lstrlen,URL
        std               ; We will search for "/" in reverse direction
        mov edi,URL
        add edi,eax
        dec edi
        mov ecx,eax
        mov al,"/"
        repne scasb
        cld
        jne No_name
        cmp byte ptr [edi],"/"
        je  No_name
        inc edi
        inc edi
        invoke lstrcpy,addr FileName,edi
No_name:
        ret
GetFileName endp
;=====================================================================
;                               ShowProgress
;=====================================================================
; This procedure updates the progress bar and displays the number
; of bytes downloaded so far on the status bar
;=====================================================================
ShowProgress proc uses ebx edx hWnd:DWORD
        LOCAL temp[100]:BYTE
       .if ContentLength!=0
                xor edx,edx
                mov eax,CurrentDataSize
                mov ebx,1000
                mul ebx
                mov ebx,ContentLength
                div ebx
                invoke SendDlgItemMessage,hWnd,IDC_PROGRESS,PBM_SETPOS,eax,NULL
        .endif
        push CurrentDataSize
        push offset Downloading
        lea eax,temp
        push eax
        call wsprintfA
        add esp,12
        invoke SetStatusText,addr temp,NULL
        ret
ShowProgress endp
;====================================================================
;                               TranslateErrorCode
;====================================================================
; This function takes the error code and an address of a buffer and
; looks up the error string in the string resource.
;====================================================================
TranslateErrorCode proc ErrCode:DWORD, pErrString:DWORD
        invoke LoadString,hInstance,ErrCode,pErrString,512
        .if eax==0
                invoke LoadString,hInstance,1,pErrString,512
        .endif
        ret
TranslateErrorCode endp
;====================================================================
;                               GetErrorString
;====================================================================
; This function calls WSAGetLastError to retrieve the error code of 
; the last socket operation and looks up the error string in
; the string resource.
;====================================================================
GetErrorString proc pErrString:DWORD
        invoke WSAGetLastError
        push eax
        invoke TranslateErrorCode,eax,pErrString
        pop eax
        ret
GetErrorString endp
;====================================================================
;                               CloseSock
;====================================================================
; This function performs winsock library shutdown. It closes socket,
; output file, kills timer,and calls WSACleanup. It also clears the
; status bar and resets the progress bar control.
;====================================================================
CloseSock proc
        .if sock!=0
                invoke closesocket,sock
                mov sock,0
        .endif                
        .if FileHandle!=0
                invoke CloseHandle,FileHandle
        .endif
        .if TimerID!=0
                invoke KillTimer,hwnd,TimerID
                invoke ClearMessages,hwnd,WM_SOCKET
                invoke ClearMessages,hwndStatus,SB_SETTEXT
                invoke SendMessage,hwndStatus,SB_SETTEXT,1,NULL
        .endif
        invoke SendDlgItemMessage,hwnd,IDC_PROGRESS,PBM_SETPOS,0,0
        invoke SetWindowText,hwndStatus,NULL
        invoke SetDlgItemText,hwnd,IDC_NAME,NULL
        ret
CloseSock endp
SetStatusText PROC Text:DWORD, Text1:DWORD
        push Text1
        push Text
        push offset ErrorString
        call wsprintfA
        add esp,12
        invoke SetWindowText,hwndStatus,addr ErrorString
        ret
SetStatusText ENDP
EnableControls PROC
        invoke EnableWindow,hwndConnectButton,TRUE
        invoke EnableMenuItem,hMenu,IDM_CONNECT,MF_ENABLED
        ret 
EnableControls ENDP
DisableControls PROC
        invoke EnableWindow,hwndConnectButton,FALSE
        invoke EnableMenuItem,hMenu,IDM_CONNECT,MF_GRAYED
        ret
DisableControls ENDP
ConnectSocket PROC
        invoke DisableControls
        mov sock,0      ; We use the value of sock to check if the socket is closed so we must initialize it to 0
                                      ;  which means "closed or not created yet"
        invoke ParseURL,addr URLString  ; Parse the URL into host name, relative url and the http port
        invoke lstrlen,addr URLString
        .if eax>40
                invoke lstrcpyn,addr CommandString,addr URLString,20
                invoke lstrcat,addr CommandString,addr Dots
                invoke lstrlen,addr URLString
                sub eax,20
                push edi
                mov edi,offset URLString
                add edi,eax
                invoke lstrcat,addr CommandString,edi
                pop edi
        .else
                invoke lstrcpy,addr CommandString,addr URLString
        .endif        
        invoke SetDlgItemText,hwnd,IDC_NAME,\
                addr CommandString
        invoke socket,PF_INET,SOCK_STREAM,0     ; Create a stream socket
        .if eax!=INVALID_SOCKET
                mov sock,eax
                .if Resuming==FALSE
                        invoke SetStatusText,addr ResolvingServer,addr HostName
                        invoke inet_addr,addr HostName  ; Assume that the host name is not an ip address. If the host name is really an ip address,
                                                        ; the function will fail with eax==INADDR_NONE
                        .if eax==INADDR_NONE
                                invoke gethostbyname,addr HostName     ; Use this function to get the host ip address from host name.
                                .if eax==NULL
                                        invoke ShowErrorMessage
                                        ret
                                .endif
                                mov eax,[eax+12]
                                mov eax,[eax]
                                mov eax,[eax]
                                mov SocketAddress.sin_addr,eax
                        .else
                                mov SocketAddress.sin_addr,eax
                        .endif
                        mov SocketAddress.sin_family,AF_INET
                .endif
                invoke htons,HTTPPort   ; We must convert host byte order to network byte order
                mov SocketAddress.sin_port,ax
                invoke WSAAsyncSelect,sock,hwnd,WM_SOCKET,\     ; We choose to receive notification about successful connection,
                        FD_CONNECT or FD_READ or FD_CLOSE ; incoming data, and when the socket is closed
                .if eax==NULL
                        invoke SetStatusText,addr Connecting,addr HostName
                        invoke connect,sock,addr SocketAddress,sizeof SocketAddress     ; Make a connection with the remote host
                                                                        ; Since we operate in non-blocking mode, we wait for the window socket to call us when
                                                                        ; the events we are interested in occur.
                        .if eax==SOCKET_ERROR
                                invoke WSAGetLastError
                                .if eax!=WSAEWOULDBLOCK
                                        invoke ShowErrorMessage
                                .endif        
                        .endif
                .else
                        invoke ShowErrorMessage
                .endif
        .else
                invoke SetWindowText,hwndStatus,NULL
                invoke ShowErrorMessage
        .endif
        ret
ConnectSocket ENDP
ShowErrorMessage PROC
        invoke GetErrorString,addr ErrorString
        invoke MessageBox,hwnd,addr ErrorString,addr AppName,MB_OK+MB_ICONERROR
        invoke CloseSock
        invoke EnableControls
        ret
ShowErrorMessage ENDP
WriteOutputFile PROC buffer1:DWORD, BytesToWrite:DWORD
        .if ContentLength!=0
                mov eax,BytesToWrite
                add eax,CurrentDataSize
                .if eax>ContentLength
                        mov eax,ContentLength
                        sub eax,CurrentDataSize
                        mov BytesToWrite,eax
                .endif
        .endif
        invoke WriteFile,FileHandle,buffer1,\
                BytesToWrite,\
                addr BytesWritten,NULL                        
        push eax                
        .if eax==TRUE
                mov eax,BytesWritten                
                add CurrentDataSize,eax
                add ActualDataRead,eax
                invoke ShowProgress,hwnd
        .else
                invoke MessageBox,hwnd,addr WriteError,addr AppName,MB_OK+MB_ICONERROR
                invoke SetDlgItemText,hwnd,IDC_NAME,NULL
                invoke SetWindowText,hwndStatus,NULL                
        .endif
        pop eax
        ret
WriteOutputFile endp
;=====================================================================
;                               StrLen
;=====================================================================
; This procedure takes an address of a string as its parameter and
; returns the length of the string in eax
;=====================================================================
StrLen PROC uses edi String:DWORD
        mov edi,String
        mov al,0
        mov ecx,0FFFFFFFFh
        repne scasb
        sub ecx,0FFFFFFFFh
        neg ecx
        dec ecx
        mov eax,ecx
        ret
StrLen ENDP
;=====================================================================
;                               StrCpy
;=====================================================================
; This procedure copies a string into a buffer. If the buffer is smaller
; than the string to copy, it returns 0.
;=====================================================================
StrCpy PROC uses edi esi StrBuffer:DWORD,String:DWORD
        invoke StrLen,String
        mov ecx,eax
        mov edi,StrBuffer
        mov esi,String
        rep movsb
        ret
StrCpy ENDP
;=========================================================================
;                               InString
;=========================================================================
; Search for a substring in one string. Case Sensitive
; Return Value: -1 if substring not found, offset of the first byte
; of the substring if successful
;=========================================================================
InString PROC uses ebx edi esi StrMain:DWORD, StrSub:DWORD
        invoke StrLen,StrMain

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区视频在线| 亚洲色图视频网| 中文字幕av一区二区三区| 亚洲黄色在线视频| 久久国产生活片100| 91福利视频网站| 国产人成亚洲第一网站在线播放 | 欧美丰满少妇xxxxx高潮对白| 久久先锋影音av鲁色资源网| 爽好多水快深点欧美视频| 99国内精品久久| 欧美狂野另类xxxxoooo| 成人欧美一区二区三区小说| 国产原创一区二区| 日韩欧美aaaaaa| 亚洲一区二区综合| www.日韩在线| 久久精品视频网| 国内精品伊人久久久久影院对白| 在线播放/欧美激情| 午夜欧美在线一二页| 91高清视频免费看| 亚洲免费av网站| 一本色道久久综合精品竹菊| 亚洲欧洲另类国产综合| 床上的激情91.| 国产精品久久久久婷婷| 成人综合婷婷国产精品久久蜜臀 | 欧美性色综合网| 亚洲三级在线免费| 色视频一区二区| 一区二区三区欧美久久| 在线观看不卡视频| 亚洲成在人线在线播放| 欧美精品一区二区三区四区 | 久久久蜜臀国产一区二区| 日韩va欧美va亚洲va久久| 欧美日韩国产一级| 午夜精品久久久久久久久久| 欧美男同性恋视频网站| 免费成人在线影院| 亚洲精品一区二区三区精华液| 国产毛片精品视频| 国产欧美日韩在线| 91社区在线播放| 亚洲成人一区二区在线观看| 欧美日韩国产首页| 精品在线播放免费| 国产精品久久久久一区二区三区共| 一本色道久久综合狠狠躁的推荐| 亚洲另类一区二区| 欧美群妇大交群中文字幕| 久久国产精品色| 国产精品蜜臀av| 在线观看三级视频欧美| 日本欧美大码aⅴ在线播放| 精品免费视频.| 99国产欧美另类久久久精品| 偷窥国产亚洲免费视频| 精品久久久久久久人人人人传媒 | 一区二区三区在线影院| 欧美一区二区视频免费观看| 国产传媒日韩欧美成人| 亚洲一区二区三区中文字幕在线| 欧美电视剧在线观看完整版| kk眼镜猥琐国模调教系列一区二区| 亚洲另类色综合网站| 日韩欧美激情在线| 99视频超级精品| 日本系列欧美系列| 亚洲视频一区二区在线观看| 日韩一级成人av| aaa国产一区| 青青草原综合久久大伊人精品优势| 中文字幕第一页久久| 3d动漫精品啪啪1区2区免费| 成人美女在线观看| 麻豆91小视频| 亚洲国产欧美在线| 国产精品毛片无遮挡高清| 91精品国产综合久久国产大片| 成人精品国产一区二区4080| 成人黄色一级视频| 蜜乳av一区二区| 亚洲自拍偷拍欧美| 国产精品丝袜在线| 精品美女一区二区| 欧美日韩国产小视频在线观看| 不卡视频在线看| 国产一区二区看久久| 日韩精品91亚洲二区在线观看 | 欧美极品美女视频| 日韩久久精品一区| 欧美日韩国产高清一区| 94-欧美-setu| 成人免费观看av| 国产精品一区二区三区乱码 | 一本大道综合伊人精品热热| 国产福利不卡视频| 激情综合色综合久久| 美女在线视频一区| 午夜精品国产更新| 亚洲综合激情小说| 亚洲日本免费电影| 亚洲欧美视频在线观看视频| 欧美经典一区二区| 欧美激情一区二区三区全黄| 久久久99精品免费观看| 精品国产三级电影在线观看| 欧美一级片在线看| 日韩三级电影网址| 欧美成人精品二区三区99精品| 欧美一区二区性放荡片| 欧美一二三四区在线| 欧美一区二区三区四区高清| 欧美一个色资源| 日韩欧美一二三四区| 欧美成人aa大片| 精品久久久影院| 欧美韩国一区二区| 中文字幕中文字幕在线一区| 亚洲欧美日韩一区二区 | 国产麻豆欧美日韩一区| 久热成人在线视频| 国产一区二区精品久久99| 国产一区欧美日韩| 成人动漫在线一区| 91激情在线视频| 欧美一区二区三区思思人| 精品国产一区二区三区久久久蜜月 | 欧美日韩精品欧美日韩精品一 | 久久精品国产一区二区三| 另类小说欧美激情| 国产精品香蕉一区二区三区| 国产成人免费视频网站| 99国产精品久久| 色婷婷av一区二区| 久久国内精品自在自线400部| 亚洲一区二区三区视频在线| 国产成人精品一区二区三区网站观看 | 亚洲综合免费观看高清完整版在线| 一区二区三区四区视频精品免费 | 亚洲一区二区三区四区中文字幕| 亚洲精品在线三区| 久久久777精品电影网影网 | 不卡欧美aaaaa| 欧美自拍丝袜亚洲| 精品国产乱码91久久久久久网站| 国产精品污网站| 亚洲成人免费在线观看| 国产一区二区三区香蕉| 色综合久久综合| 日韩欧美的一区二区| 欧美激情综合在线| 日韩电影在线免费观看| 精品在线一区二区三区| 91官网在线观看| 国产亚洲女人久久久久毛片| 亚州成人在线电影| 成人av中文字幕| 欧美大片日本大片免费观看| 亚洲人xxxx| 国产精品性做久久久久久| 欧美猛男超大videosgay| 亚洲国产成人自拍| 日本特黄久久久高潮| 91理论电影在线观看| 精品国产一区二区精华| 亚洲成人手机在线| 99r国产精品| 久久久亚洲精品石原莉奈 | 91麻豆精品久久久久蜜臀| 日韩伦理av电影| 国产精品18久久久久久久网站| 欧美精品xxxxbbbb| 亚洲欧美精品午睡沙发| 国产剧情一区二区三区| 91精品在线观看入口| 亚洲韩国一区二区三区| 91在线观看成人| 国产精品日产欧美久久久久| 国内精品在线播放| 日韩精品综合一本久道在线视频| 五月天丁香久久| 欧美在线影院一区二区| 亚洲欧美另类久久久精品2019| 成人午夜私人影院| 欧美极品少妇xxxxⅹ高跟鞋| 精品一区二区三区免费观看| 日韩精品一区二区三区在线| 日韩成人精品在线观看| 欧美人牲a欧美精品| 午夜欧美视频在线观看| 欧美精品乱码久久久久久| 亚洲网友自拍偷拍| 9191久久久久久久久久久| 亚洲高清视频中文字幕| 欧美男女性生活在线直播观看| 亚洲国产wwwccc36天堂| 5858s免费视频成人|