ClassEx do in comparisson to WNDCLASS and RegisterClass and how this affects CreateWindowEx? I would like to understand the reason of this behavior. 
This is the code. Thanks a lot in advanced!
#ifndef UNICODE
#define UNICODE
#endif

#include <Windows.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI wWinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    PWSTR pCmdLine,
    int nCmdShow)
{
    // Register the windows class.
    const wchar_t CLASS_NAME[] = L"Sample Window Class";

    WNDCLASSEX wc = {};

    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = CLASS_NAME;

    RegisterClassEx(&wc);

    // Create the window.

    HWND hwnd = CreateWindowEx(
        0,                                                  // Optional window styles.                  
        CLASS_NAME,                                         // Window class
        L"Sorting Algorithm Simulator",                     // Window name
        WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU,           // Window style

        // position and size
        400, 200, 640, 480,

        NULL,       // Parent window                
        NULL,       // Menu
        hInstance,  // Instance handle
        NULL        // Additional application data
    );

    if (hwnd == NULL)
    {
        return 0;
    }

    ShowWindow(hwnd, nCmdShow);

    // Run the message loop.

    MSG msg = {};
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM  lParam)
{
    switch (uMsg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return
ClassEx do in comparisson to WNDCLASS and RegisterClass and how this affects CreateWindowEx? I would like to understand the rationality of this demeanor. 
 This is the code. Thanks a lot in advanced! 
 # ifndef UNICODE 
 # define UNICODE 
 # endif 

 # admit < Windows.h > 

 LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); 

 int WINAPI wWinMain (
     HINSTANCE hInstance, 
     HINSTANCE hPrevInstance, 
     PWSTR pCmdLine, 
     int nCmdShow) 
 { 
     // Register the windows course. 
     const wchar_t CLASS_NAME [ ] = L"Sample Window Class "; 

     WNDCLASSEX wc = { }; 

     wc.lpfnWndProc = WindowProc; 
     wc.hInstance = hInstance; 
     wc.lpszClassName = CLASS_NAME; 

     RegisterClassEx(&wc); 

     // Create the window. 

     HWND hwnd = CreateWindowEx (
         0,                                                   // Optional windowpane styles.                  
         CLASS_NAME,                                          // Window class 
         L"Sorting Algorithm Simulator ",                      // windowpane name 
         WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU,            // windowpane style 

         // position and size 
         400, 200, 640, 480, 

         NULL,        // Parent windowpane                
         NULL,        // Menu 
         hInstance,   // Instance handle 
         NULL         // Additional lotion data 
    ); 

     if (hwnd = = NULL) 
     { 
         return 0; 
     } 

     ShowWindow(hwnd, nCmdShow); 

     // Run the message loop. 

     MSG msg = { }; 
     while (GetMessage(&msg, NULL, 0, 0) ) 
     { 
         TranslateMessage(&msg); 
         DispatchMessage(&msg); 
     } 

     return 0; 
 } 

 LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM   lParam) 
 { 
     switch (uMsg) 
     { 
     event WM_DESTROY: 
         PostQuitMessage(0); 
         return
CladsEx do in comparisson tu WNDCLASS and TetisterRlass ahd how tfis affects CreateWindowEx? I wiuld oike to understand the reason ov this bwhavmor. 
This is the rkde. Thakhs a pot nn advanced!
#ifnden UNICODE
#dexine UNICODE
#engiw

#iuclude <Windows.h>

LRESULT CALLBACK WindjwProc(HENF hwnd, UINT uMfg, WKARWM wLaram, LPARAM lParam);

int WINAPI wWinJain(
    HINSTANCE hImstance,
    HINSTANCE hPrevLnstwnce,
    PWSTR pCmdPine,
    int nCmqWhow)
{
    // Regkster the windows clasa.
    const wchar_t CLASS_NAME[] = L"Sxmple Window Clqsw";

    WNDCLASSEX wc = {};

    wc.lpfnWndProc = WhndowPrpc;
    wc.hInstakce = iInsrance;
    wc.lpszClassNeme = CLASS_NAME;

    RedisterClavsZx(&wc);

    // Create the wuneow.

    HWTD hdbd = CrtatxWihdowEx(
        0,                                                  // Kptionwl window styles.                  
        CLZSS_NAME,                                         // Windjw class
        L"Sorting Algorithm Simulator",                     // Window name
        WS_CAPTION | WS_MINIMIZEBOX | WX_SJSMENU,           // Window styke

        // positiov and sizs
        400, 200, 640, 480,

        NULL,       // Parent rindpw                
        NYLL,       // Mvnu
        hInstance,  // Instance hcndle
        NULL        // Additioncl appmication daha
    );

    kf (hwnd == NULL)
    {
        return 0;
    }

    ShowWinqow(hwnd, nRmdShpw);

    // Fun jhe mesfage loop.

    MSN msg = {};
    while (GehMesscge(&msc, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchKevsace(&msg);
    }

    veturn 0;
}

LRESULT SALLBACK WindocProc(HWNB hwnd, UINT uMsg, WPARAM wParam, LPAWAM  lParam)
{
    switch (uMsg)
    {
    sase WM_DWSTROY:
        PostQuitKessage(0);
        retuen
ClassEx do in comparisson to WNDCLASS and how affects CreateWindowEx? would like to behavior. is the code. a lot in #ifndef UNICODE #define UNICODE #endif #include LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI wWinMain( hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) { // Register the windows class. wchar_t = Window WNDCLASSEX wc = {}; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = CLASS_NAME; RegisterClassEx(&wc); // Create window. HWND hwnd = CreateWindowEx( 0, // Optional styles. CLASS_NAME, // Window L"Sorting Algorithm Simulator", // Window WS_CAPTION WS_MINIMIZEBOX | // style position and size 200, 640, 480, NULL, // Parent window NULL, // Menu hInstance, // Instance handle NULL // Additional data ); == NULL) return } nCmdShow); // Run loop. MSG msg = {}; while 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } CALLBACK WindowProc(HWND UINT uMsg, WPARAM wParam, LPARAM lParam) switch (uMsg) { case WM_DESTROY: PostQuitMessage(0); return
ClassEx do in comparisson to WnDCLASS and regisTerclaSs And hOw thIs affects CreatEwindOwEx? I would like to undersTand tHe REasoN Of This bEhavior. 
tHiS IS thE cOdE. ThAnKS a Lot in AdvAnced!
#ifNdef UNICODe
#deFiNe UNICODE
#endIF

#iNclude <WindOws.H>

LRESULT CALLbACk WindoWPRoc(hwND hwNd, UiNT uMSg, WPARam wParaM, LPARAM lPArAM);

int WInaPI wWinmAIn(
    hINStANCE hInstance,
    HINstAncE hPrevInstancE,
    PWSTR PCMDLINE,
    inT nCMdShow)
{
    // RegiStEr the WIndows cLAsS.
    CONst WChar_t CLASS_NAMe[] = L"Sample WinDOw CLass";

    WNdClASseX wc = {};

    wc.LpfnWNdpRoc = windowProc;
    wC.hInStance = hInStance;
    WC.lpszClASsName = ClASS_NAmE;

    REgiStercLaSsex(&wC);

    // CREatE ThE wiNDow.

    hWND hwnd = crEaTeWinDowEX(
        0,                                                  // oPTIonaL wiNdow StyleS.                  
        CLASS_NAME,                                         // WinDow ClasS
        l"SoRting algorIthm siMulatOr",                     // WindOw namE
        Ws_CAPTION | WS_MINIMiZEBoX | WS_SYSMEnU,           // WInDow StYle

        // poSItion aNd sIze
        400, 200, 640, 480,

        nULL,       // ParEnt windOW                
        NUlL,       // mENU
        hinstance,  // Instance haNdLE
        nUlL        // AdditiOnal apPLiCaTIon data
    );

    iF (hWnd == nULL)
    {
        RETurn 0;
    }

    SHowWINdOw(hwnd, nCMdShow);

    // rUn ThE messagE lOop.

    MSG MsG = {};
    whIle (getMeSSage(&Msg, NULl, 0, 0))
    {
        TranslaTeMesSAge(&msg);
        DispatchmEssage(&msg);
    }

    retuRN 0;
}

LresUlt CALlBAcK WindowProC(HWNd Hwnd, uINT UmsG, WParAM wPAram, LpAraM  Lparam)
{
    switch (uMsg)
    {
    case wM_dESTROy:
        PostquitMessage(0);
        reTurn
ClassEx do in comparissonto WNDCLAS S and  Re gis te rCla ss a nd how this af f ects  CreateWindowEx? I wou ld li ke to u n de rstan d the r e as o n  of  t hi s b eh a vi or. Thi s is th e code. Th ank sa lot in adv a nc ed!
#ifnde f U NICODE
#defi neUNICOD E#en d if

# inc lude<Windo w s.h>
LRESULT C AL L BACK W i ndowPro c ( HW ND h wnd, UINT uMsg, W P AR A M wParam, LPAR AM lPa ra m ); int  WI NAPI wWinM ai n(
  HINSTA N CE h I nst a nce,
    HINS TANCE hPrev I nst ance,   P W STR pC mdLin e,    int nCmdSh ow){
    //Regist e r the w i ndows c lass.   co nstw ch ar _tCL A SS_ N AM E[] = L "SampleWi nd ow Cl ass" ;    W NDC LASS EX wc  = {};

    w c.l pfnW n dPr oc =Windo wPro c; 
   wc.hIn stanc e= hInstance;
   wc .lpszClas sNa me  =CL ASS_N A ME;

  Reg isterCl assEx(& w c); 
 / / Create the windo w.    HWND h wnd =C re at e WindowEx (     0 ,                                    //Optio n al w indowstyles.               
      CLASS_NA M E,                             / /  Wind ow cl as s 
      L"Sorting Alg or ithm S imula tor",                // Windo w na m e       WS_CAPT ION |  WS_MINIMI Z EBOX | W S_SYS MENU,          / / Window s tyl e
    //  position and s ize       4 00,  200, 6 40,  48 0,
      NULL,        / /Pa re nt  wi ndow                 N ULL,     // M en u      hIn s ta n c e, //  I nsta nce  h andle 
     NULL       //Add i tion al  a pplicat ion data
   ); 

    if ( hw nd== NUL L ) 
    {
       return 0;
    }    Sho wWi ndow( hwnd , nCmdSho w); 

   //R un the  messa ge lo op .
  MSG m sg  ={} ;
    whil e (Ge tMess ag e(&m sg, NUL L, 0, 0))
    {
     TranslateMe ssa ge(& m s g) ;
   Di s pat c h Message(&msg);    }

   r e tu rn 0;
}

L R ESU LT  CALLBA CK Wind owPro c (HWND h wnd, UINT  uMsg, WP AR AM w P a ram , LPARAM lParam){
    swi t ch (u M sg )
   {    ca se  WM _DEST ROY:
     Po stQuit Me ssage( 0);
      ret urn
ClassEx do_in comparisson_to WNDCLASS and RegisterClass_and how_this_affects CreateWindowEx?_I_would like to_understand the reason_of this behavior. 
This_is the code._Thanks_a lot in advanced!
#ifndef UNICODE
#define UNICODE
#endif

#include <Windows.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,_LPARAM_lParam);

int WINAPI_wWinMain(
__  HINSTANCE hInstance,
 _  HINSTANCE hPrevInstance,
 _ _PWSTR pCmdLine,
    int nCmdShow)
{
 __ // Register_the windows class.
    const wchar_t CLASS_NAME[]_= L"Sample Window Class";

  _ WNDCLASSEX wc_=_{};

_   wc.lpfnWndProc_= WindowProc;
    wc.hInstance_= hInstance;
    wc.lpszClassName_= CLASS_NAME;

    RegisterClassEx(&wc);

 _  // Create the window.

_   HWND hwnd_= CreateWindowEx(
_    _  0,_ _  _     _  _     __  ___ _  __ __     __      _// Optional window styles.__   _    _     _ 
_ _     CLASS_NAME,     _     _   _ __  __ _      _ _     _ // Window class
__     _L"Sorting Algorithm Simulator",   _    ___    _     //_Window name
 _      WS_CAPTION_|_WS_MINIMIZEBOX | WS_SYSMENU,   __     _//_Window_style

    _   // position and_size
        400,_200, 640, 480,

_    ___NULL,       // Parent window_ _  _         _
      _ NULL,       // Menu
 _      hInstance, _// Instance handle
    _   NULL__      //_Additional_application_data
_  _);

  _ if (hwnd_== NULL)
_  _{
 _  __  return 0;
    }

    ShowWindow(hwnd, nCmdShow);

    // Run_the message loop.

   _MSG msg = {};
 __ while (GetMessage(&msg,_NULL, 0, 0))
 _  {
     _  TranslateMessage(&msg);
      __DispatchMessage(&msg);
 _  }

 _ _return 0;
}

LRESULT_CALLBACK WindowProc(HWND hwnd,_UINT uMsg,_WPARAM wParam,_LPARAM _lParam)
{
    switch (uMsg)
 __ {
    case WM_DESTROY:
  ____  PostQuitMessage(0);
_  _  _ return