// Entry point for the application
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    CMainWindow application;
    return application.Run(hInstance, nCmdShow);
}
/// <summary>
/// Entry point for the application
/// </summary>
/// <param name="hInstance">Handle to the application instance</param>
/// <param name="hPrevInstance">Always 0</param>
/// <param name="lpCmdLine">Command line arguments</param>
/// <param name="nCmdShow">Whether to display minimized, maximized, or normally</param>
/// <returns>status</returns>
int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
    EnsureIndependentResourcesCreated();

    CMainWindow application;
    int result = application.Run();

    DiscardIndependentResources();

    return result;
}