more
This commit is contained in:
@@ -270,6 +270,7 @@ BOOL CALLBACK NewItemDlgProc(HWND hWndDlg, UINT message, WPARAM wParam, LPARAM l
|
|||||||
LPVOID lpData;
|
LPVOID lpData;
|
||||||
DWORD dwVerBuffer = 0;
|
DWORD dwVerBuffer = 0;
|
||||||
UINT uiTitleLen = MAX_TITLE_LENGTH;
|
UINT uiTitleLen = MAX_TITLE_LENGTH;
|
||||||
|
WCHAR szNameBuffer[MAX_TITLE_LENGTH] = { L"\0" };
|
||||||
WCHAR szFileBuffer[MAX_PATH] = { L"\0" };
|
WCHAR szFileBuffer[MAX_PATH] = { L"\0" };
|
||||||
|
|
||||||
GetDlgItemText(hWndDlg, IDD_PATH, (LPWSTR)&szFileBuffer, ARRAYSIZE(szFileBuffer));
|
GetDlgItemText(hWndDlg, IDD_PATH, (LPWSTR)&szFileBuffer, ARRAYSIZE(szFileBuffer));
|
||||||
@@ -294,38 +295,43 @@ BOOL CALLBACK NewItemDlgProc(HWND hWndDlg, UINT message, WPARAM wParam, LPARAM l
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
// copy the filename to a new buffer for later
|
// copy the filename to a new buffer for later
|
||||||
StringCchCopy(szBuffer, ARRAYSIZE(szBuffer), szFileBuffer);
|
StringCchCopy(szNameBuffer, ARRAYSIZE(szNameBuffer), szFileBuffer);
|
||||||
|
|
||||||
// let's retrieve the application's friendly name too
|
// let's retrieve the application's friendly name too
|
||||||
dwVerBuffer = GetFileVersionInfoSize((LPCWSTR)szBuffer, NULL);
|
dwVerBuffer = GetFileVersionInfoSize((LPCWSTR)szNameBuffer, NULL);
|
||||||
if (dwVerBuffer != 0) {
|
if (dwVerBuffer != 0) {
|
||||||
lpData = malloc(dwVerBuffer);
|
lpData = malloc(dwVerBuffer);
|
||||||
|
|
||||||
if (lpData != NULL)
|
if (lpData != NULL)
|
||||||
GetFileVersionInfo((LPCWSTR)szBuffer, (DWORD)0, dwVerBuffer, lpData);
|
GetFileVersionInfo((LPCWSTR)szNameBuffer, (DWORD)0, dwVerBuffer, lpData);
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// TODO: this is hardcoded to english. make it dynamic later
|
// TODO: this is hardcoded to english. make it dynamic later
|
||||||
// TODO: this is so busted lol, really make it dynamic so it works
|
// TODO: this is so busted lol, really make it dynamic so it works
|
||||||
if (VerQueryValue(lpData,
|
VerQueryValue(lpData,
|
||||||
TEXT("\\StringFileInfo\\040904b0\\FileDescription"),
|
TEXT("\\StringFileInfo\\040904b0\\FileDescription"),
|
||||||
(LPVOID)szBuffer, &uiTitleLen) == 0)
|
(LPVOID)szNameBuffer, &uiTitleLen); // == 0
|
||||||
{
|
|
||||||
// copy the filename back to the og buffer
|
|
||||||
StringCchCopy(szFileBuffer, ARRAYSIZE(szFileBuffer), szBuffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (lpData)
|
if (lpData)
|
||||||
free(lpData);
|
free(lpData);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PathStripPath(szBuffer);
|
PathStripPath(szNameBuffer);
|
||||||
PathCchRemoveExtension(szBuffer, ARRAYSIZE(szBuffer));
|
PathCchRemoveExtension(szNameBuffer, ARRAYSIZE(szNameBuffer));
|
||||||
|
}
|
||||||
|
|
||||||
|
SetDlgItemText(hWndDlg, IDD_NAME, (LPWSTR)szNameBuffer);
|
||||||
|
|
||||||
|
// let's get the icon now
|
||||||
|
if (ExtractIcon(hAppInstance, &szFileBuffer, -1) != 0)
|
||||||
|
{
|
||||||
|
// file contains at least one icon
|
||||||
|
hIconDlg = ExtractIcon(hAppInstance, (LPWSTR)&itm.szIconPath, itm.iIconIndex);
|
||||||
|
SendDlgItemMessage(hWndDlg, IDD_STAT_ICON, STM_SETICON, (WPARAM)hIconDlg, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetDlgItemText(hWndDlg, IDD_NAME, (LPWSTR)szBuffer);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user