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,
//};
+
struct handle_deleter {
typedef HANDLE pointer;
void operator ()(HANDLE handle) {
}
};
+ 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;
//};
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;