// 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; }