OSDN Git Service

アイコンの動的書き換えを行ってみた。
[wintimer/wintimer.git] / wintimer / sf_windows.h
index fbdd903..d563900 100644 (file)
@@ -57,6 +57,11 @@ namespace sf{
     void operator()(HRESULT hr) {if(hr != S_OK){throw Exc(hr);}}
   };
 
+ /* inline template <class Exc = win32_error_exception> void throw_if_err<>()(HRESULT hr)
+  {
+    if(hr != S_OK){throw Exc(hr);}
+  };*/
+
 
   ID2D1BitmapPtr load_bitmap_from_file(
     ID2D1HwndRenderTargetPtr render_target,
@@ -182,6 +187,7 @@ namespace sf{
   //};
 
   
+  
   struct handle_deleter {
     typedef HANDLE pointer;
     void operator ()(HANDLE handle) {
@@ -191,6 +197,15 @@ namespace sf{
     }
   };
 
+  struct HBITMAP_deleter {
+    typedef HBITMAP pointer;
+    void operator ()(HBITMAP handle) {
+        if (handle) {
+           ::DeleteObject(handle);
+        }
+    }
+  };
+
   //template <typename Handle,typename Handle_Deleter>
   //struct handle_holder {
   //  typedef boost::unique_ptr<Handle,Handle_Deleter> holder_type;
@@ -201,6 +216,7 @@ namespace sf{
   //};
 
   typedef std::unique_ptr<HANDLE,handle_deleter> handle_holder;
+  typedef std::unique_ptr<HBITMAP,HBITMAP_deleter> bitmap_holder;
 
   typedef device_context<d2_dc> d2_dc_type;