Пример #1
0
// Create the window, show it.
HRESULT FirstTry::Initialize()
{
	HRESULT hr = CreateDeviceIndependentResources();

	if (SUCCEEDED(hr))
	{
		// Register the window class
		WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };
		wcex.style = CS_HREDRAW | CS_VREDRAW;
		wcex.lpfnWndProc = FirstTry::WndProc;
		wcex.cbClsExtra = 0;
		wcex.cbWndExtra = sizeof(LONG_PTR);
		wcex.hInstance = HINST_THISCOMPONENT;
		wcex.hbrBackground = NULL;
		wcex.lpszMenuName = NULL;
		wcex.hCursor = LoadCursor(NULL, IDI_APPLICATION);
		wcex.lpszClassName = L"FirstTry";

		RegisterClassEx(&wcex);

		// Obtain the system DPI
		float dpiX, dpiY;
		m_pD2DFactory->GetDesktopDpi(&dpiX, &dpiY);

		// Create the window
		m_hwnd = CreateWindow(L"FirstTry", L"First Try", WS_OVERLAPPEDWINDOW,
			CW_USEDEFAULT, CW_USEDEFAULT, static_cast<UINT>(ceil(640.f*dpiX / 96.f)), static_cast<UINT>(ceil(480.f*dpiY / 96.f)),
			NULL, NULL, HINST_THISCOMPONENT, this);

		hr = m_hwnd ? S_OK : E_FAIL;
		if (SUCCEEDED(hr))
		{
			// Initialize Animation.
			hr = InitializeAnimation();
			if (SUCCEEDED(hr))
			{
				hr = CreateAnimationVariables();
				if (SUCCEEDED(hr))
				{
					ShowWindow(m_hwnd, SW_SHOWNORMAL);
					UpdateWindow(m_hwnd);
				}
			}
		}
	}

	return hr;
}
HRESULT CApplication::BeforeEnteringMessageLoop()
{
    HRESULT hr = CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);

    if (SUCCEEDED(hr))
    {
        hr = CreateApplicationWindow();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateD3D11Device();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateD2D1Factory();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateD2D1Device();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateWICFactory();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateAnimationManager();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateAnimationTransitionLibrary();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateAnimationVariables();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateDCompositionDevice();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateDCompositionRenderTarget();
    }

    if (SUCCEEDED(hr))
    {
        hr = CreateDCompositionVisualTree();
    }

    if (SUCCEEDED(hr))
    {
        hr = AttachDCompositionVisualTreeToRenderTarget();
    }

    if (SUCCEEDED(hr))
    {
        hr = _device->Commit();
    }

    return hr;
}