home *** CD-ROM | disk | FTP | other *** search
/ ftp.sberbank.sumy.ua / 2014.11.ftp.sberbank.sumy.ua.tar / ftp.sberbank.sumy.ua / incoming / 1 / MyJpg.asm < prev    next >
Assembly Source File  |  2014-02-08  |  4KB  |  147 lines

  1.       .386
  2.       .model flat, stdcall  ; 32 bit memory model
  3.       option casemap :none  ; case sensitive
  4.  
  5.  
  6.       include \masm32\include\windows.inc
  7.       include \masm32\include\user32.inc
  8.       include \masm32\include\kernel32.inc
  9.       include \masm32\include\gdi32.inc
  10.       
  11.       includelib \masm32\lib\user32.lib
  12.       includelib \masm32\lib\kernel32.lib
  13.       includelib \masm32\lib\gdi32.lib
  14.  
  15.       return MACRO arg
  16.         mov eax, arg
  17.         ret
  18.       ENDM
  19.  
  20.  
  21.   WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
  22.   WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
  23.  
  24.  
  25. .data
  26.  
  27.  szClassName   db "Evgeney_Victorovich_Kupin_27_April_1982",0
  28.  szDisplayName db "<>",0
  29.  strDll        db "JTBknv01.dll",0
  30.  strProc       db "JpgInToBmpOut",0
  31.  strFileName   db "IMG3592A.jpg",0
  32.  strSaveName   db "Kupin.bmp",0 
  33.  
  34.  
  35.  
  36.  CommandLine   dd 0
  37.  hWnd          dd 0
  38.  hInstance     dd 0
  39.  
  40.  hIcon                   dd  ? 
  41.  hinstLib                dd  ?  
  42.  JpegFileToBitmapFile    dd  ?
  43.  
  44.  
  45. .code
  46.  
  47. start:
  48.       invoke GetModuleHandle, NULL
  49.       mov hInstance, eax
  50.  
  51.       invoke GetCommandLine
  52.       mov CommandLine, eax
  53.  
  54.       invoke WinMain, hInstance,NULL,CommandLine,SW_SHOWDEFAULT
  55.       invoke ExitProcess,eax
  56.  
  57. WinMain proc hInst     :DWORD, hPrevInst :DWORD, CmdLine   :DWORD, CmdShow   :DWORD
  58.  
  59.       LOCAL wc   :WNDCLASSEX
  60.       LOCAL msg  :MSG
  61.  
  62.       mov wc.cbSize,          sizeof WNDCLASSEX
  63.       mov wc.style,           CS_HREDRAW or CS_VREDRAW \
  64.                               or CS_BYTEALIGNWINDOW
  65.       mov  wc.lpfnWndProc,    offset WndProc
  66.       mov  wc.cbClsExtra,     NULL
  67.       mov  wc.cbWndExtra,     NULL
  68.       push hInst
  69.       pop  wc.hInstance
  70.       mov  wc.hbrBackground,  COLOR_WINDOW
  71.       mov  wc.lpszMenuName,   NULL
  72.       mov  wc.lpszClassName,  offset szClassName
  73.       push hIcon
  74.       pop  wc.hIcon
  75.       invoke LoadCursor,NULL,IDC_ARROW
  76.       mov  wc.hCursor,        eax
  77.       push hIcon 
  78.       pop  wc.hIconSm
  79.  
  80.       invoke RegisterClassEx, ADDR wc
  81.  
  82.  
  83.       invoke CreateWindowEx,WS_EX_LEFT,
  84.                             ADDR szClassName,
  85.                             ADDR szDisplayName,
  86.                             WS_OVERLAPPED or WS_SYSMENU,
  87.                             0,0,640,510,
  88.                             NULL,NULL,
  89.                             hInst,NULL
  90.       mov   hWnd,eax
  91.  
  92.       invoke ShowWindow,hWnd,SW_SHOWNORMAL
  93.       invoke UpdateWindow,hWnd
  94.  
  95.     StartLoop:
  96.       invoke GetMessage,ADDR msg,NULL,0,0
  97.       cmp eax, 0
  98.       je ExitLoop
  99.       invoke TranslateMessage, ADDR msg
  100.       invoke DispatchMessage,  ADDR msg
  101.       jmp StartLoop
  102.     ExitLoop:
  103.  
  104.       return msg.wParam
  105.  
  106. WinMain endp
  107.  
  108.  
  109. WndProc proc hWin   :DWORD, uMsg   :DWORD, wParam :DWORD, lParam :DWORD
  110.  
  111.     LOCAL Ps   :PAINTSTRUCT
  112.     LOCAL hDC  :DWORD
  113.  
  114.     .if uMsg == WM_CREATE
  115.         invoke LoadLibrary, ADDR strDll
  116.         mov    hinstLib, eax
  117.         invoke GetProcAddress, hinstLib, ADDR strProc
  118.         mov    JpegFileToBitmapFile, eax
  119.  
  120.         lea    eax, strSaveName
  121.         push   eax
  122.         lea    eax, strFileName
  123.         push   eax
  124.         call   JpegFileToBitmapFile
  125.  
  126.         return 0
  127.  
  128. ;    .elseif uMsg == WM_PAINT
  129. ;        invoke BeginPaint,hWin,ADDR Ps
  130. ;        mov hDC, eax
  131.  
  132.  
  133. ;        invoke EndPaint,hWin,ADDR Ps
  134. ;        return 0
  135.  
  136.     .elseif uMsg == WM_DESTROY
  137.         invoke PostQuitMessage,NULL
  138.         return 0 
  139.     .endif
  140.  
  141.     invoke DefWindowProc,hWin,uMsg,wParam,lParam
  142.  
  143.     ret
  144.  
  145. WndProc endp
  146. end start
  147.