예제 #1
0
int main(int argc, char *argv[])
{
	srand((unsigned int)time(NULL));

	MainComponent mainComponent = MainComponent();
	
	mainComponent.start();

	return 0;
}
int Application::BootstrapApplication(ServiceRegistry* serviceRegistry) const
{
    Logger* logger = serviceRegistry->Get<Logger>();
    MainComponent mainComponent = MainComponent(serviceRegistry);
    mainComponent.SetLayout(GetMainComponentLayout(serviceRegistry->Get<ScaleProvider>()));

    serviceRegistry->Get<TrayIcon>()->Initialize();
    mainComponent.Initialize();

    serviceRegistry->Get<MessageBus>()->OnExit.Subscribe(bind(&Application::Exit, this));

    logger->Log(LogLevels::Trace, L"Application initialized.");

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

    logger->Log(LogLevels::Trace, L"Application shutdown.");

    return msg.wParam;
}