Just for the record: it's perfectly fine and safe to do that. They will be kept alive as long as they are selected and will be deleted, once a different object is selected or the DC is deleted.

Am 12.04.2015 um 18:29 schrieb cwitt...@svn.reactos.org:
Author: cwittich
Date: Sun Apr 12 16:29:36 2015
New Revision: 67177

URL: http://svn.reactos.org/svn/reactos?rev=67177&view=rev
Log:
[SNDREC32]
do not delete objects which are still selected into a DC

Modified:
     trunk/reactos/base/applications/sndrec32/sndrec32.cpp

Modified: trunk/reactos/base/applications/sndrec32/sndrec32.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndrec32/sndrec32.cpp?rev=67177&r1=67176&r2=67177&view=diff
==============================================================================
--- trunk/reactos/base/applications/sndrec32/sndrec32.cpp       [iso-8859-1] 
(original)
+++ trunk/reactos/base/applications/sndrec32/sndrec32.cpp       [iso-8859-1] 
Sun Apr 12 16:29:36 2015
@@ -352,6 +352,7 @@
      PAINTSTRUCT ps;
      HDC hdc;
      HPEN pen;
+    HPEN oldpen;
unsigned int max_h = (cli.bottom / 2);
      unsigned int samples;
@@ -366,7 +367,7 @@
              /* Initialize hdc objects */
              hdc = BeginPaint(hWnd, &ps);
              pen = (HPEN)CreatePen(PS_SOLID, 1, WAVEBAR_COLOR);
-            SelectObject(hdc, (HBRUSH)pen);
+            oldpen = (HPEN) SelectObject(hdc, (HBRUSH)pen);
              if (AUD_OUT->current_status() == snd::WAVEOUT_PLAYING)
              {
                  samples = AUD_OUT->tot_samples_buf();
@@ -412,6 +413,7 @@
                  LineTo(hdc, WAVEBAR_CX, cli.bottom  / 2);
              }
+ SelectObject(hdc, oldpen);
              DeleteObject( pen );
              EndPaint( hWnd, &ps );
              break;
@@ -437,6 +439,7 @@
      PAINTSTRUCT ps;
      HDC hdc;
      HFONT font;
+    HFONT oldfont;
      long long slid_samp = 0;
/* Checking for global pointers to buffer and io audio devices */
@@ -774,7 +777,7 @@
          case WM_PAINT:
              hdc = BeginPaint(hWnd, &ps);
              font = CreateFontIndirect(&s_info.lfMenuFont);
-            SelectObject(hdc, font);
+            oldfont = (HFONT) SelectObject(hdc, font);
              SetBkMode(hdc, TRANSPARENT);
if (AUD_IN->current_status() == snd::WAVEIN_RECORDING)
@@ -877,6 +880,7 @@
                         _tcslen(str_tmp),
                         0);
+ SelectObject(hdc, oldfont);
              DeleteObject(font);
              EndPaint(hWnd, &ps);
              break;





Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to