home *** CD-ROM | disk | FTP | other *** search
/ ftp.sberbank.sumy.ua / 2014.11.ftp.sberbank.sumy.ua.tar / ftp.sberbank.sumy.ua / incoming / 1 / jpegdllv02.c < prev    next >
C/C++ Source or Header  |  2014-02-08  |  3KB  |  100 lines

  1. #include <windows.h>
  2. #include <tchar.h>
  3.  
  4.  
  5. typedef void ( *JPEGTOBITMAP)( char*);
  6. typedef void ( *JPGINTOBMPOUT)( char*, char*);
  7. typedef HBITMAP ( *JPEGBMPHANDLE)( char*);
  8.  
  9.  
  10. LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
  11.  
  12. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
  13.  {
  14.   WNDCLASSEX wc;
  15.   HWND hwnd;
  16.   MSG uMsg;
  17.  
  18.  
  19.      wc.cbSize = sizeof (WNDCLASSEX);
  20.      wc.lpszClassName = "WindowGraph3";
  21.      wc.lpfnWndProc = MainWndProc;
  22.      wc.style = CS_VREDRAW | CS_HREDRAW;
  23.      wc.hInstance = hInstance;
  24.      wc.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
  25.      wc.hIconSm = wc.hIcon;
  26.      wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  27.      wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
  28.      wc.lpszMenuName = 0;
  29.      wc.cbClsExtra = 0;
  30.      wc.cbWndExtra = 0;
  31.  
  32.     if(!RegisterClassEx( &wc))
  33.        return 1;
  34.  
  35.  
  36.      hwnd = CreateWindowEx( 0, "WindowGraph3", "JTBknv02.dll",
  37.                         WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
  38.                         CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL,
  39.                         hInstance, NULL);
  40.     if(!hwnd)
  41.         return 1;
  42.  
  43.      ShowWindow( hwnd, SW_SHOWNORMAL);
  44.      UpdateWindow( hwnd);
  45.  
  46.     while (GetMessage( &uMsg, NULL, 0, 0))
  47.       {
  48.         TranslateMessage( &uMsg);
  49.         DispatchMessage( &uMsg);
  50.        }
  51.  
  52.     return uMsg.wParam;
  53.  }
  54.  
  55. LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  56.  {
  57.   PAINTSTRUCT ps;
  58.   HDC hDC, hMemDC;
  59.   static HBITMAP hBmp;
  60.   static HINSTANCE hinstLib;
  61.   static JPEGBMPHANDLE JpegBmpHandle;
  62.   static JPEGTOBITMAP JpegToBitmap;
  63.   static JPGINTOBMPOUT JpgInToBmpOut;
  64.  
  65.  
  66.    switch(uMsg)
  67.      {
  68.         case WM_CREATE:
  69.            hinstLib = LoadLibrary("JTBknv02.dll");
  70.  
  71.               JpegBmpHandle = (JPEGBMPHANDLE)GetProcAddress( hinstLib, "JpegBmpHandle");
  72.            JpegToBitmap = (JPEGTOBITMAP)GetProcAddress( hinstLib, "JpegToBitmap");
  73.            JpgInToBmpOut = (JPGINTOBMPOUT)GetProcAddress( hinstLib, "JpgInToBmpOut");
  74.  
  75.            hBmp = JpegBmpHandle( "jpeg.jpg");
  76.            JpegToBitmap( "jpeg.jpg");
  77.            JpgInToBmpOut( "jpeg.jpg","bmp.bmp");
  78.  
  79.            return 0;
  80.  
  81.         case WM_PAINT:
  82.             hDC = BeginPaint( hwnd, &ps);
  83.             hMemDC = CreateCompatibleDC( hDC);
  84.             SelectObject( hMemDC, hBmp);
  85.             BitBlt( hDC, 0, 0, 400, 200, hMemDC, 0, 0, SRCCOPY);
  86.             DeleteDC(hMemDC);
  87.             EndPaint( hwnd, &ps);
  88.             return 0;
  89.  
  90.         case WM_DESTROY:
  91.             PostQuitMessage( 0);
  92.             return 0;
  93.  
  94.       }
  95.  
  96.     return DefWindowProc(hwnd, uMsg, wParam, lParam);
  97.  }
  98.  
  99.  
  100.