create a modal dialog box using win32 APIs

#include <windows.h>
 

BITMAP   bmp;
 

void PaintBkBitmap(HWND hWndDlg) {
 

    HDC      hdc, hMemDC;
 

    PAINTSTRUCT ps;

    HGDIOBJ hOld;
 

    RECT rc;
 

    GetClientRect(hWndDlg,&rc);
 

    hdc = BeginPaint(hWndDlg,&ps);
 
 

    hMemDC = CreateCompatibleDC(hdc);
 

    hOld = SelectObject(hMemDC,hBitmap);
 

    BOOL bRet = BitBlt(hdc,rc.right - 50 - 200,10,200,87,hMemDC,0,0,SRCAND);
 

    SelectObject(hMemDC,hOld);

    DeleteDC(hMemDC);

    ReleaseDC(hWndDlg,hdc);

    EndPaint(hWndDlg,&ps);

}
 
 
 

LRESULT CALLBACK DlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
 

int APIENTRY WinMain(HINSTANCE hInstance,

                     HINSTANCE hPrevInstance,

                     LPTSTR    lpCmdLine,

                     int       nCmdShow)

{

    UNREFERENCED_PARAMETER(hPrevInstance);

    UNREFERENCED_PARAMETER(lpCmdLine);
 

    hInst = hInstance;
 

    int nRet = (int)DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG),0,(DLGPROC) DlgProc);
 

    if (-1 == nRet)

    {

      return FALSE;

    }
 

    return 0;

}
 
 
 

BOOL       DlgCmd   (   HWND    hwndDlg,        // handle to dialog box

                        UINT    uMsg,           // message

                        WPARAM  wParam,         // first message parameter

                        LPARAM  lParam          // second message parameter

                    ) {
 

    WORD    wNotifyCode;

    WORD    wID;

    HWND    hwndCtl;
 

    wNotifyCode =   HIWORD(wParam); // notification code 

    wID         =   LOWORD(wParam); // item, control, or accelerator identifier 

    hwndCtl     =   (HWND) lParam;  // handle of control 
 

    if  (BN_CLICKED ==  wNotifyCode) {  //  nothing else will happen...

    

            switch(wID){
 

                case    IDC_OK:
 

                            return DlgOK(hwndDlg);

                            break;
 

                case    IDC_CANCEL:
 

                            EndDialog(hwndDlg,IDOK);

                            break;
 

            }

        }

                                        

    return( TRUE);

}
 

BOOL DlgOK(HWND hwndDlg) {
 

    return TRUE;

}
 

BOOL DlgInit(HWND hwndDlg) {
 

    hBitmap = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BITMAP));
 

    int nRet = GetObject(hBitmap, sizeof(BITMAP), (LPVOID)&bmp);

 

    return TRUE;

}
 

LRESULT CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
 

     switch (uMsg) {
 

                case    WM_INITDIALOG:  return  (   DlgInit   (   hwndDlg));
 

                case    WM_COMMAND:     return  (   DlgCmd    (   hwndDlg,

                                                                        uMsg,

                                                                        wParam,

                                                                        lParam

                                                                    )

                                                );  
 

                case    WM_PAINT:       PaintBkBitmap( hwndDlg);
 

            };
 

    return FALSE;

}

Select all

A Free Day

Loading … loading … and loading😦. The internet has some problems. haizz. Long time until now, I have a day… free day. Actually I don’t know how should I do now. Recently, turtle is quiet busy … I can’t understand what is he doing ??? @@ before I enter this site I had a lot of things in my head but … when I see the screen, it’s seem disappear. A🙂 now, I just think I am not a gentle girl, I’m a shrewd maybe ??? :)) I don’t know all above sentence, how many true sentences or fall but you get my thinkings, right ? Hic you must because you obligated me write by english😉 A day for silly thoughts

Goodnight Turtle

a simple http uploader

/*
url = http://somesite.com
file = local file path
file2 = filename for upload
submit_name = the name of the submit html field on the page
submit_value = the value for the submit field
file_form_name = the file name field on the html page
mime_type = the http file type of the upload
folder_path = the path including file of the page to upload to ie: /pictures/user/index.php
*/
int UpLoad( const char *url, const char *file, const char *file2, const char *submit_name, const char *submit_value, 
const char *file_form_name, const char *mime_type, const char *folder_path )
{
    WSADATA wsaData;
    WSAStartup( MAKEWORD( 2,2 ), &wsaData );
    SOCKET sock = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

    if( sock == INVALID_SOCKET )
    {
        return 0;
    }

    int value = 5000;
    if( setsockopt( sock, SOL_SOCKET, SO_SNDTIMEO, (char *)&value, sizeof( int ) ) == SOCKET_ERROR )
    {
        closesocket( sock );
        return 0;
    }
    
    LPHOSTENT hostEntry;
    hostEntry = gethostbyname( url );

    if( hostEntry == NULL )
    {
        closesocket( sock );
        return 0;
    }
    sockaddr_in addr2;
    
    addr2.sin_family = AF_INET;
    addr2.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list);
    addr2.sin_port = htons( 80 );
    
    if( connect( sock, (LPSOCKADDR) &addr2, sizeof(struct sockaddr) ) == SOCKET_ERROR )
    {
        closesocket( sock );
        return 0;
    }

    HANDLE f = CreateFile( file2, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );

    if( !f )
    {
        closesocket( sock );
        return 0;
    }

    char end[512] = "";
    
    wsprintf( end, "\r\n-----------------------------3164130335698\r\nContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n-----------------------------3164130335698\r\n\r\n", submit_name, submit_value );

    DWORD hi;
    DWORD size = GetFileSize( f, &hi );

    char *filepart = (char *) GlobalAlloc( GPTR, size + 2048 );

    wsprintf( filepart, "-----------------------------3164130335698\r\nContent-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\nContent-Type: %s\r\n\r\n", file_form_name, file, mime_type );

    DWORD len = strlen( filepart );

    ReadFile( f, (LPVOID)((DWORD)filepart + len), size, &hi, NULL );

    CloseHandle( f );

    char *request = (char *) GlobalAlloc( GPTR, 1024 + len + size + 1 );

    wsprintf( request, 
    "POST /%s HTTP/1.1\r\nHost: %s\r\nUser-Agent: ELUpload/1.0\r\nConnection: Keep-alive\r\nContent-Type: multipart/form-data; boundary=---------------------------3164130335698\r\nContent-length: %d\r\n---------------------------3164130335698\r\nContent-Disposition: form-data; name=\"MAX_FILE_SIZE\"\r\n\r\n100000\r\n", 
    folder_path, url, len + size + 1 + strlen( end ) );
    
    DWORD head = strlen( request );

    memcpy( request + head, filepart, len + size + 1 );
    head += len + size + 1;
    memcpy( request + head, end, strlen( end ) );
    head += strlen( end );
    
    for( int i = 0; i < head; i++ )
    {
        if( send( sock, (request + i), 1, 0 ) == SOCKET_ERROR )
        {
            closesocket( sock );
            GlobalFree( request );
            GlobalFree( filepart );
            return 0;
        }
    }

    closesocket( sock );

    GlobalFree( request );
    GlobalFree( filepart );
    
    return 1;
}
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="text" name="serial"><br>
<input type="submit" name="submit" value="Upload File" />
</form>

giữa đêm không tìm đến giấc ngủ

Đã nhiều lúc tôi vốn nghĩ cuộc đời này bất công, cùng với điều đó tôi mang theo những hận thù , căm ghét trút lên những gì tối thấy hoặc không may mắn lọt vào suy nghĩ của tôi. Chao ôi tôi đã sai nhiều lần không đếm nỗi và lần này cũng vậy. vừa mở mắt thì nghe tin máy bay rơi. vừa ngồi xuống nghỉ ngơi thì hay tin xe gặp tai nạn, biết bao đau thương , mất mát đến với nhiều người mà chỉ một phút thoáng qua tôi không dừng được cảm xúc của mình có những lúc muốn bật khóc như nếm được mùi đau đớn. Tôi của hiện tại dám tự nhận mình nếm trái đắng sao? đau khổ kia tôi nếm phải có là gì so với những người hôm nay tôi thấy, ngày hôm qua tôi được nghe kể lại? Tôi thật còn may mắn lắm thế tại sao lại tự mang đến phiền muồn và tuôn hận thù. Tôi thật có lỗi.

 

Thanks for all

Một cái tên có thể đổi, một đường link cũng có thể thay đổi… đúng không… có thể biến mất như nó chưa từng tồn tại. Một ngày đã qua, là một ngày như thế nào  rùi  nhỉ . E vốn chẳng tin vào ngôn tình mà nếu nó có thật thì e cũng sẽ chẳng phải là người may mắn ấy đâu đúng không. Có lẽ đây là lần cuối rồi. Thật sự muốn nghe 1 lời chúc từ a, một lời chúc như những lúc a vẫn hát vui nhưng chắc là không được rồi.Thêm một tuổi ùi chắc e sẽ cố không trẻ con nữa, không bị bắt nạt nữa . E không biết hiện giờ mình đang nghĩ gì nữa E nhớ e từng hỏi nếu như 1 ngày e biến mất thì a có sao không. Dĩ nhiên là không sao rồi, điều đó e cũng tự hiểu mà.  Dù sao e cũng cảm ơn a thời gian qua đã chấp nhận cho 1 đứa dở hơi như e làm phiền đủ kiểu. Có lẽ với a chỉ vui thôi nhưng với e điều đó thật tốt biết bao. Chắc a cũng chẳng quan tâm tại sao hay chuyện gì đâu. Mà thật ra cũng chẳng có chuyện gì cả . Sau này chúc a luôn vui vẻ, hanh phúc sẽ luôn đến với a. Cảm ơn anh vì tất cả .

Best things will come to you

Ambiguous Feelings

I don’t know how to talk about today. I feel it’s not a good day for me. Now i’m sad for somethings … is gone. I wanna write a lot but i just see screen and now i can’t know what did i think … Turtle may be you can read this note in anytime but not today. But don’t ask me why or what happened. I just wanna thought that when talked with you something would become not too sad. Thanks a lot about your listening🙂

GOOD NIGHT TURTLE

A Day

I can’t remember exactly that how long i don’t write in here. May be few days🙂. Today, turtle didn’t talk with me. The reason:  he want to know that did pig miss him ? And then the result was … :)). Suddenly, i remember that: … TURTLE SAID WE WOULD WRITE TOGETHER BUT …😦. Bad turtle😦

GOOD NIGHT TURTLE

Follow

Get every new post delivered to your Inbox.