Quantcast
Channel: CodeGuru Forums - Visual C++ Programming
Viewing all articles
Browse latest Browse all 3029

Bitmap Display from Buffer received by TCP socket

$
0
0
I want to display my image on window without saving it.
When data is received window size changes but there is no display
on window.
My Code is:

Code:


int iBufferLength;
        int iEnd;
        int iSpaceRemaining;
       
        int i;
 
        iBufferLength = iSpaceRemaining = sizeof(chIncomingDataBuffer);
        iEnd = 0;
        iSpaceRemaining -= iEnd;
 
        iBytesRead = recv(Socket, chIncomingDataBuffer+iEnd, iSpaceRemaining, 0);
       
        iEnd+=iBytesRead;
        if (iBytesRead == SOCKET_ERROR)
                MessageBox(hWnd,
                                                "Socket Error",
                                                "Connection strt",
                                                MB_ICONINFORMATION|MB_OK);
                chIncomingDataBuffer[iEnd] = '\0';
 
        if (lstrlen(chIncomingDataBuffer) != 0)
        {
                /*FILE* pfile;
                                       
                                        pfile =        fopen("test.jpeg", "wb");
                                fwrite(chIncomingDataBuffer,1, iBytesRead ,pfile);
                                fclose(pfile);*/
 
                                GetWindowRect(hWnd, &rect);
                                SetWindowPos(hWnd, NULL, rect.left, rect.top, cBitmap.bmWidth, cBitmap.bmHeight, 0);
                                  HDC ThisDC = GetDC(hWnd);
 
              DeleteDC(RemoteDC);
              RemoteDC = CreateCompatibleDC(ThisDC);
                          DeleteObject(hbitmap);
                          hbitmap= CreateCompatibleBitmap(ThisDC, cBitmap.bmWidth, cBitmap.bmHeight);
 
                          SelectObject(RemoteDC, hbitmap);
 
                          ReleaseDC(hWnd, ThisDC);
 

 
                          BITMAPINFO bi;
                          HBITMAP hbmap;
                          int bisize = sizeof(BITMAPINFO);
                          memcpy(&bi, chIncomingDataBuffer+iEnd, bisize );
                          SetDIBits(RemoteDC, hbitmap, 0,  cBitmap.bmHeight, chIncomingDataBuffer+iEnd+bisize,  &bi, DIB_RGB_COLORS);
 

                          InvalidateRect(hWnd, NULL, false);


Can you find my error,,,where I'm doing wrong?

Viewing all articles
Browse latest Browse all 3029

Latest Images

Trending Articles



Latest Images