1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef BASE_WIN_SCOPED_SELECT_OBJECT_H_
6 #define BASE_WIN_SCOPED_SELECT_OBJECT_H_
10 #include "base/basictypes.h"
11 #include "base/logging.h"
16 // Helper class for deselecting object from DC.
17 class ScopedSelectObject
{
19 ScopedSelectObject(HDC hdc
, HGDIOBJ object
)
21 oldobj_(SelectObject(hdc
, object
)) {
24 DCHECK(oldobj_
!= NULL
&& oldobj_
!= HGDI_ERROR
);
27 ~ScopedSelectObject() {
28 HGDIOBJ object
= SelectObject(hdc_
, oldobj_
);
29 DCHECK((GetObjectType(oldobj_
) != OBJ_REGION
&& object
!= NULL
) ||
30 (GetObjectType(oldobj_
) == OBJ_REGION
&& object
!= HGDI_ERROR
));
37 DISALLOW_COPY_AND_ASSIGN(ScopedSelectObject
);
43 #endif // BASE_WIN_SCOPED_SELECT_OBJECT_H_