Use wxDL_INIT_FUNC() macro

This commit is contained in:
Tobias Taschner
2020-01-15 16:13:26 +01:00
parent 21cc8a4e49
commit dea80692b4

View File

@@ -38,17 +38,17 @@ wxIMPLEMENT_DYNAMIC_CLASS(wxWebViewEdge, wxWebView);
int wxWebViewEdge::ms_isAvailable = -1; int wxWebViewEdge::ms_isAvailable = -1;
// WebView2Loader typedefs // WebView2Loader typedefs
typedef HRESULT (__stdcall *PFNWXCreateWebView2EnvironmentWithDetails)( typedef HRESULT (__stdcall *CreateWebView2EnvironmentWithDetails_t)(
PCWSTR browserExecutableFolder, PCWSTR browserExecutableFolder,
PCWSTR userDataFolder, PCWSTR userDataFolder,
PCWSTR additionalBrowserArguments, PCWSTR additionalBrowserArguments,
IWebView2CreateWebView2EnvironmentCompletedHandler* environment_created_handler); IWebView2CreateWebView2EnvironmentCompletedHandler* environment_created_handler);
typedef HRESULT(__stdcall *PFNWXGetWebView2BrowserVersionInfo)( typedef HRESULT(__stdcall *GetWebView2BrowserVersionInfo_t)(
PCWSTR browserExecutableFolder, PCWSTR browserExecutableFolder,
LPWSTR* versionInfo); LPWSTR* versionInfo);
PFNWXCreateWebView2EnvironmentWithDetails wxCreateWebView2EnvironmentWithDetails = NULL; CreateWebView2EnvironmentWithDetails_t wxCreateWebView2EnvironmentWithDetails = NULL;
PFNWXGetWebView2BrowserVersionInfo wxGetWebView2BrowserVersionInfo = NULL; GetWebView2BrowserVersionInfo_t wxGetWebView2BrowserVersionInfo = NULL;
wxDynamicLibrary wxWebViewEdge::ms_loaderDll; wxDynamicLibrary wxWebViewEdge::ms_loaderDll;
@@ -67,11 +67,6 @@ bool wxWebViewEdge::IsAvailable()
bool wxWebViewEdge::Initialize() bool wxWebViewEdge::Initialize()
{ {
#define RESOLVE_LOADER_FUNCTION(type, funcname) \
wx##funcname = (type)ms_loaderDll.GetSymbol(wxT(#funcname)); \
if ( !wx##funcname ) \
return false
// WebView2 is only available for Windows 7 or newer // WebView2 is only available for Windows 7 or newer
if (!wxCheckOsVersion(6, 1)) if (!wxCheckOsVersion(6, 1))
return false; return false;
@@ -80,8 +75,10 @@ bool wxWebViewEdge::Initialize()
return false; return false;
// Try to load functions from loader DLL // Try to load functions from loader DLL
RESOLVE_LOADER_FUNCTION(PFNWXCreateWebView2EnvironmentWithDetails, CreateWebView2EnvironmentWithDetails); wxDL_INIT_FUNC(wx, CreateWebView2EnvironmentWithDetails, ms_loaderDll);
RESOLVE_LOADER_FUNCTION(PFNWXGetWebView2BrowserVersionInfo, GetWebView2BrowserVersionInfo); wxDL_INIT_FUNC(wx, GetWebView2BrowserVersionInfo, ms_loaderDll);
if (!wxGetWebView2BrowserVersionInfo || !wxCreateWebView2EnvironmentWithDetails)
return false;
// Check if a Edge browser can be found by the loader DLL // Check if a Edge browser can be found by the loader DLL
LPWSTR versionStr; LPWSTR versionStr;