From 77461595071afa88a562bd78fe0392d66d363824 Mon Sep 17 00:00:00 2001 From: vasilich-tregub Date: Wed, 13 Mar 2024 16:17:41 +0700 Subject: [PATCH] Update TabWindow.cpp In project Windows-classic-samples/Samples/Win7Samples/multimedia/DirectWrite/HelloWorld, when processing message == WM_CREATE in TabWindow::WndProc(...), TabWindow fails to save its USERDATA with a ::SetWindowLongPtrW(hwnd, GWLP_USERDATA, PtrToUlong(pTabWindow)) call (file TabWindow.cpp, line 286), and consequently fails to initialize pTabWindow when processing later the WM_SIZE message. As the debugger reports an access violation exception in the _SCRT_STARTUP_WWINMAIN-branch routine, the error is hard to identify for beginner programmers. Use a standard-compliant reinterpret_cast(pTabWindow). --- .../Win7Samples/multimedia/DirectWrite/HelloWorld/TabWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Samples/Win7Samples/multimedia/DirectWrite/HelloWorld/TabWindow.cpp b/Samples/Win7Samples/multimedia/DirectWrite/HelloWorld/TabWindow.cpp index b1a4b66a..efe25fb1 100644 --- a/Samples/Win7Samples/multimedia/DirectWrite/HelloWorld/TabWindow.cpp +++ b/Samples/Win7Samples/multimedia/DirectWrite/HelloWorld/TabWindow.cpp @@ -283,7 +283,7 @@ LRESULT CALLBACK TabWindow::WndProc(HWND hwnd, UINT message, WPARAM wParam, LPAR ::SetWindowLongPtrW( hwnd, GWLP_USERDATA, - PtrToUlong(pTabWindow)); + reinterpret_cast(pTabWindow)); return 1; }