remove the dependency of ole32.lib

This commit is contained in:
Jinhao
2018-06-27 04:26:23 +08:00
parent a120447716
commit d6590f88b0
3 changed files with 19 additions and 6 deletions

View File

@@ -3,8 +3,8 @@
* Nana C++ Library(http://www.nanapro.org)
* Copyright(C) 2003-2017 Jinhao(cnjinhao@hotmail.com)
*
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*
* @file: nana/detail/platform_spec.hpp
@@ -128,6 +128,8 @@ namespace detail
public:
co_initializer();
~co_initializer();
void task_mem_free(void* p);
private:
HMODULE ole32_;
};

View File

@@ -100,6 +100,18 @@ namespace detail
}
}
void platform_spec::co_initializer::task_mem_free(void* p)
{
if (ole32_)
{
using CoTaskMemFree_t = void (__stdcall *)(LPVOID pv);
CoTaskMemFree_t free_fn = reinterpret_cast<CoTaskMemFree_t>(::GetProcAddress(ole32_, "CoTaskMemFree"));
if (free_fn)
free_fn(p);
}
}
struct platform_spec::implementation
{
std::map<native_window_type, window_icons> iconbase;