Visual C++ GUI explanation needed
===

I am new to c++ GUI and would like to know more

    #include <windows.h>
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
        LPSTR lpCmdLine, int nCmdShow)
    {
        MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
        return 0;
    }

Would someone be kind enough to explain what `HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR lpCmdLine, int nCmdShow`do?

