Skip to content

Commit

Permalink
Avoid dynamic load uxtheme.dll since it comes with Windows XP.
Browse files Browse the repository at this point in the history
  • Loading branch information
zufuliu committed Dec 6, 2018
1 parent e824306 commit c951b0b
Show file tree
Hide file tree
Showing 13 changed files with 182 additions and 245 deletions.
1 change: 1 addition & 0 deletions build/CodeLite/Notepad2.project
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,7 @@
<Library Value="ole32.a"/>
<Library Value="oleaut32.a"/>
<Library Value="uuid.a"/>
<Library Value="uxtheme.a"/>
<Library Value="imm32.a"/>
</Linker>
<ResourceCompiler Options="-DRC_INVOKED;-DUNICODE;-D_UNICODE;"/>
Expand Down
1 change: 1 addition & 0 deletions build/CodeLite/metapath.project
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
<Library Value="ole32.a"/>
<Library Value="oleaut32.a"/>
<Library Value="uuid.a"/>
<Library Value="uxtheme.a"/>
<Library Value="psapi.a"/>
</Linker>
<ResourceCompiler Options="-DRC_INVOKED;-DUNICODE;-D_UNICODE;"/>
Expand Down
8 changes: 4 additions & 4 deletions build/VS2015/Notepad2.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
<AdditionalOptions>/source-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
Expand All @@ -119,7 +119,7 @@
<AdditionalOptions>/source-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)Notepad2.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
Expand Down Expand Up @@ -151,7 +151,7 @@
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
Expand Down Expand Up @@ -182,7 +182,7 @@
<AdditionalOptions>/source-charset:utf-8 /GA %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
Expand Down
8 changes: 4 additions & 4 deletions build/VS2015/metapath.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
<AdditionalOptions>/source-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
Expand All @@ -117,7 +117,7 @@
<AdditionalOptions>/source-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
Expand Down Expand Up @@ -145,7 +145,7 @@
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
Expand Down Expand Up @@ -175,7 +175,7 @@
<AdditionalOptions>/source-charset:utf-8 /GA %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
Expand Down
16 changes: 8 additions & 8 deletions build/VS2017/Notepad2.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
Expand All @@ -196,7 +196,7 @@
<DiagnosticsFormat>Caret</DiagnosticsFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
Expand All @@ -221,7 +221,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)Notepad2.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
Expand All @@ -246,7 +246,7 @@
<DiagnosticsFormat>Caret</DiagnosticsFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)Notepad2.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
Expand Down Expand Up @@ -282,7 +282,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
Expand Down Expand Up @@ -318,7 +318,7 @@
<DiagnosticsFormat>Caret</DiagnosticsFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
Expand Down Expand Up @@ -354,7 +354,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
Expand Down Expand Up @@ -387,7 +387,7 @@
<DiagnosticsFormat>Caret</DiagnosticsFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;imm32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
Expand Down
16 changes: 8 additions & 8 deletions build/VS2017/metapath.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
Expand All @@ -194,7 +194,7 @@
<DiagnosticsFormat>Caret</DiagnosticsFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
Expand All @@ -218,7 +218,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
Expand All @@ -241,7 +241,7 @@
<DiagnosticsFormat>Caret</DiagnosticsFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
Expand Down Expand Up @@ -273,7 +273,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
Expand Down Expand Up @@ -306,7 +306,7 @@
<DiagnosticsFormat>Caret</DiagnosticsFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
Expand Down Expand Up @@ -341,7 +341,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
Expand Down Expand Up @@ -373,7 +373,7 @@
<DiagnosticsFormat>Caret</DiagnosticsFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
Expand Down
54 changes: 17 additions & 37 deletions metapath/src/Helpers.c
Original file line number Diff line number Diff line change
Expand Up @@ -248,33 +248,15 @@ BOOL Is32bitExe(LPCWSTR lpszExeName) {
}
*/

//=============================================================================
//
// PrivateIsAppThemed()
//
extern HMODULE hModUxTheme;
BOOL PrivateIsAppThemed(void) {
BOOL bIsAppThemed = FALSE;
if (hModUxTheme) {
FARPROC pfnIsAppThemed = GetProcAddress(hModUxTheme, "IsAppThemed");
if (pfnIsAppThemed) {
bIsAppThemed = (BOOL)pfnIsAppThemed();
}
}
return bIsAppThemed;
}

//=============================================================================
//
// SetTheme()
//
BOOL SetTheme(HWND hwnd, LPCWSTR lpszTheme) {
if (hModUxTheme) {
FARPROC pfnSetWindowTheme = GetProcAddress(hModUxTheme, "SetWindowTheme");
FARPROC pfnSetWindowTheme = GetProcAddress(GetModuleHandle(L"uxtheme.dll"), "SetWindowTheme");

if (pfnSetWindowTheme) {
return (S_OK == pfnSetWindowTheme(hwnd, lpszTheme, NULL));
}
if (pfnSetWindowTheme) {
return (S_OK == pfnSetWindowTheme(hwnd, lpszTheme, NULL));
}
return FALSE;
}
Expand Down Expand Up @@ -1703,24 +1685,22 @@ BOOL GetThemedDialogFont(LPWSTR lpFaceName, WORD *wSize) {
const int iLogPixelsY = GetDeviceCaps(hDC, LOGPIXELSY);
ReleaseDC(NULL, hDC);

if (hModUxTheme) {
if ((BOOL)(GetProcAddress(hModUxTheme, "IsAppThemed"))()) {
HTHEME hTheme = (HTHEME)(INT_PTR)(GetProcAddress(hModUxTheme, "OpenThemeData"))(NULL, L"WINDOWSTYLE;WINDOW");
if (hTheme) {
LOGFONT lf;
if (S_OK == (HRESULT)(GetProcAddress(hModUxTheme, "GetThemeSysFont"))(hTheme, /*TMT_MSGBOXFONT*/805, &lf)) {
if (lf.lfHeight < 0) {
lf.lfHeight = -lf.lfHeight;
}
*wSize = (WORD)MulDiv(lf.lfHeight, 72, iLogPixelsY);
if (*wSize == 0) {
*wSize = 8;
}
lstrcpyn(lpFaceName, lf.lfFaceName, LF_FACESIZE);
bSucceed = TRUE;
if (IsAppThemed()) {
HTHEME hTheme = OpenThemeData(NULL, L"WINDOWSTYLE;WINDOW");
if (hTheme) {
LOGFONT lf;
if (S_OK == GetThemeSysFont(hTheme, /*TMT_MSGBOXFONT*/805, &lf)) {
if (lf.lfHeight < 0) {
lf.lfHeight = -lf.lfHeight;
}
*wSize = (WORD)MulDiv(lf.lfHeight, 72, iLogPixelsY);
if (*wSize == 0) {
*wSize = 8;
}
(GetProcAddress(hModUxTheme, "CloseThemeData"))(hTheme);
lstrcpyn(lpFaceName, lf.lfFaceName, LF_FACESIZE);
bSucceed = TRUE;
}
CloseThemeData(hTheme);
}
}

Expand Down
14 changes: 4 additions & 10 deletions metapath/src/metapath.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <shlobj.h>
#include <shellapi.h>
#include <commdlg.h>
#include <uxtheme.h>
#include <stdio.h>
#include "Helpers.h"
#include "Dlapi.h"
Expand Down Expand Up @@ -161,7 +162,6 @@ WCHAR szDDETopic[256] = L"";
HINSTANCE g_hInstance;
HANDLE g_hDefaultHeap;
UINT16 g_uWinVer;
HMODULE hModUxTheme = NULL;

//=============================================================================
//
Expand Down Expand Up @@ -193,9 +193,6 @@ static void CleanUpResources(BOOL initialized) {
if (tchToolbarBitmapDisabled != NULL) {
LocalFree(tchToolbarBitmapDisabled);
}
if (hModUxTheme) {
FreeLibrary(hModUxTheme);
}
if (initialized) {
UnregisterClass(WC_METAPATH, g_hInstance);
}
Expand Down Expand Up @@ -239,9 +236,6 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi
// Load Settings
LoadSettings();

const DWORD kSystemLibraryLoadFlags = (IsWin8AndAbove() || GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "SetDefaultDllDirectories")) ? LOAD_LIBRARY_SEARCH_SYSTEM32 : 0;
hModUxTheme = LoadLibraryEx(L"uxtheme.dll", NULL, kSystemLibraryLoadFlags);

if (!InitApplication(hInstance)) {
CleanUpResources(FALSE);
return FALSE;
Expand Down Expand Up @@ -720,7 +714,7 @@ LRESULT MsgCreate(HWND hwnd, WPARAM wParam, LPARAM lParam) {
hInstance,
NULL);

if (IsVistaAndAbove() && PrivateIsAppThemed()) {
if (IsVistaAndAbove() && IsAppThemed()) {
SetWindowLongPtr(hwndDirList, GWL_EXSTYLE, GetWindowLongPtr(hwndDirList, GWL_EXSTYLE) & ~WS_EX_CLIENTEDGE);
SetWindowPos(hwndDirList, NULL, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED);
}
Expand Down Expand Up @@ -806,7 +800,7 @@ LRESULT MsgCreate(HWND hwnd, WPARAM wParam, LPARAM lParam) {
//
//
void CreateBars(HWND hwnd, HINSTANCE hInstance) {
const BOOL bIsAppThemed = PrivateIsAppThemed();
const BOOL bIsAppThemed = IsAppThemed();

const DWORD dwToolbarStyle = WS_TOOLBAR | TBSTYLE_FLAT | CCS_ADJUSTABLE;
hwndToolbar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, dwToolbarStyle,
Expand Down Expand Up @@ -977,7 +971,7 @@ void MsgThemeChanged(HWND hwnd, WPARAM wParam, LPARAM lParam) {
UNREFERENCED_PARAMETER(lParam);

HINSTANCE hInstance = (HINSTANCE)(INT_PTR)GetWindowLongPtr(hwnd, GWLP_HINSTANCE);
const BOOL bIsAppThemed = PrivateIsAppThemed();
const BOOL bIsAppThemed = IsAppThemed();

if (IsVistaAndAbove() && bIsAppThemed) {
SetWindowLongPtr(hwndDirList, GWL_EXSTYLE, GetWindowLongPtr(hwndDirList, GWL_EXSTYLE) & ~WS_EX_CLIENTEDGE);
Expand Down
Loading

0 comments on commit c951b0b

Please sign in to comment.