ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
January 2012
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
19 participants
559 discussions
Start a n
N
ew thread
[rharabien] 54907: [SHELL32] - Display application description in Opens With field of File Properties dialog - Minor improvements
by rharabien@svn.reactos.org
Author: rharabien Date: Wed Jan 11 14:13:14 2012 New Revision: 54907 URL:
http://svn.reactos.org/svn/reactos?rev=54907&view=rev
Log: [SHELL32] - Display application description in Opens With field of File Properties dialog - Minor improvements Modified: trunk/reactos/dll/win32/shell32/fprop.cpp trunk/reactos/dll/win32/shell32/shlexec.cpp Modified: trunk/reactos/dll/win32/shell32/fprop.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/fprop.cp…
============================================================================== --- trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] Wed Jan 11 14:13:14 2012 @@ -33,37 +33,139 @@ EXTERN_C HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj); BOOL PathIsExeW(LPCWSTR lpszPath); +class CFileVersionInfo +{ + public: + inline CFileVersionInfo(): + m_pInfo(NULL), m_wLang(0), m_wCode(0) {} + + inline ~CFileVersionInfo() + { + if (m_pInfo) + HeapFree(GetProcessHeap(), 0, m_pInfo); + } + + BOOL Load(LPCWSTR pwszPath) + { + ULONG cbBuf = GetFileVersionInfoSizeW(pwszPath, NULL); + if (!cbBuf) + { + WARN("GetFileVersionInfoSize %ls failed\n", pwszPath); + return FALSE; + } + + m_pInfo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cbBuf); + if (!m_pInfo) + { + ERR("HeapAlloc failed bytes %x\n", cbBuf); + return FALSE; + } + + if (!GetFileVersionInfoW(pwszPath, 0, cbBuf, m_pInfo)) + { + ERR("GetFileVersionInfoW failed\n"); + return FALSE; + } + + LPLANGANDCODEPAGE lpLangCode; + UINT cBytes; + if (!VerQueryValueW(m_pInfo, L"VarFileInfo\\Translation", (LPVOID *)&lpLangCode, &cBytes)) + { + ERR("VerQueryValueW failed\n"); + return FALSE; + } + + /* FIXME: find language from current locale / if not available, + * default to english + * for now default to first available language + */ + m_wLang = lpLangCode->lang; + m_wCode = lpLangCode->code; + return TRUE; + } + + LPCWSTR GetString(LPCWSTR pwszName) + { + if (!m_pInfo) + return NULL; + + WCHAR wszBuf[256]; + swprintf(wszBuf, L"\\StringFileInfo\\%04x%04x\\%s", m_wLang, m_wCode, pwszName); + + LPCWSTR pwszResult = NULL; + UINT cBytes = 0; + if (!VerQueryValueW(m_pInfo, wszBuf, (LPVOID *)&pwszResult, &cBytes)) + return NULL; + + return pwszResult; + } + + VS_FIXEDFILEINFO *GetFixedInfo() + { + if (!m_pInfo) + return NULL; + + VS_FIXEDFILEINFO *pInfo; + UINT cBytes; + if (!VerQueryValueW(m_pInfo, L"\\", (PVOID*)&pInfo, &cBytes)) + return NULL; + return pInfo; + } + + + private: + PVOID m_pInfo; + WORD m_wLang, m_wCode; +}; + static VOID SH_FileGeneralOpensWith(HWND hwndDlg, LPCWSTR pwszExt) { WCHAR wszBuf[MAX_PATH] = L""; - WCHAR wszBuf2[MAX_PATH] = L""; + WCHAR wszPath[MAX_PATH] = L""; DWORD dwSize = sizeof(wszBuf); if (RegGetValueW(HKEY_CLASSES_ROOT, pwszExt, L"", RRF_RT_REG_SZ, NULL, wszBuf, &dwSize) == ERROR_SUCCESS) { StringCbCatW(wszBuf, sizeof(wszBuf), L"\\shell\\open\\command"); - dwSize = sizeof(wszBuf2); - if (RegGetValueW(HKEY_CLASSES_ROOT, wszBuf, L"", RRF_RT_REG_SZ, NULL, wszBuf2, &dwSize) == ERROR_SUCCESS) + dwSize = sizeof(wszPath); + if (RegGetValueW(HKEY_CLASSES_ROOT, wszBuf, L"", RRF_RT_REG_SZ, NULL, wszPath, &dwSize) == ERROR_SUCCESS) { /* Get path from command line */ - ExpandEnvironmentStringsW(wszBuf2, wszBuf, _countof(wszBuf)); + ExpandEnvironmentStringsW(wszPath, wszBuf, _countof(wszBuf)); PathRemoveArgs(wszBuf); PathUnquoteSpacesW(wszBuf); - PathRemoveExtension(wszBuf); - LPWSTR pwszFilename = PathFindFileNameW(wszBuf); - pwszFilename[0] = towupper(pwszFilename[0]); - SetDlgItemTextW(hwndDlg, 14007, pwszFilename); - //PathSearchAndQualify(wAssocAppFullPath, wAssocAppFullPath, MAX_PATH); - return; + PathSearchAndQualify(wszBuf, wszPath, _countof(wszPath)); + + if (PathFileExistsW(wszPath)) + { + /* Get file description */ + CFileVersionInfo VerInfo; + VerInfo.Load(wszPath); + LPCWSTR pwszDescr = VerInfo.GetString(L"FileDescription"); + if (pwszDescr) + SetDlgItemTextW(hwndDlg, 14007, pwszDescr); + else + { + /* File has no description - display filename */ + LPWSTR pwszFilename = PathFindFileNameW(wszPath); + PathRemoveExtension(pwszFilename); + pwszFilename[0] = towupper(pwszFilename[0]); + SetDlgItemTextW(hwndDlg, 14007, pwszFilename); + } + } + else + { + /* Unknown application */ + LoadStringW(shell32_hInstance, IDS_UNKNOWN_APP, wszBuf, _countof(wszBuf)); + SetDlgItemTextW(hwndDlg, 14007, wszBuf); + } } else WARN("RegGetValueW %ls failed\n", wszBuf); } else WARN("RegGetValueW %ls failed\n", pwszExt); - /* Unknown application */ - LoadStringW(shell32_hInstance, IDS_UNKNOWN_APP, wszBuf, _countof(wszBuf)); - SetDlgItemTextW(hwndDlg, 14007, wszBuf); + } /************************************************************************* @@ -179,31 +281,30 @@ */ HPROPSHEETPAGE -SH_CreatePropertySheetPage(LPCSTR pszResName, DLGPROC pfnDlgProc, LPARAM lParam, LPWSTR pwszTitle) -{ - HRSRC hRes; - - if (pszResName == NULL) - return (HPROPSHEETPAGE)0; - - hRes = FindResourceA(shell32_hInstance, pszResName, (LPSTR)RT_DIALOG); - +SH_CreatePropertySheetPage(LPCSTR pwszResName, DLGPROC pfnDlgProc, LPARAM lParam, LPWSTR pwszTitle) +{ + if (pwszResName == NULL) + return NULL; + + HRSRC hRes = FindResourceA(shell32_hInstance, pwszResName, (LPSTR)RT_DIALOG); if (hRes == NULL) { ERR("failed to find resource name\n"); - return (HPROPSHEETPAGE)0; + return NULL; } LPVOID pTemplate = LoadResource(shell32_hInstance, hRes); - if (pTemplate == NULL) - return (HPROPSHEETPAGE)0; + { + ERR("failed to load resource\n"); + return NULL; + } PROPSHEETPAGEW Page; memset(&Page, 0x0, sizeof(PROPSHEETPAGEW)); Page.dwSize = sizeof(PROPSHEETPAGEW); Page.dwFlags = PSP_DLGINDIRECT; - Page.pResource = (DLGTEMPLATE *)pTemplate; + Page.pResource = (DLGTEMPLATE*)pTemplate; Page.pfnDlgProc = pfnDlgProc; Page.lParam = lParam; Page.pszTitle = pwszTitle; @@ -227,21 +328,16 @@ static BOOL SH_FileGeneralSetFileType(HWND hwndDlg, LPCWSTR pwszPath) { - HWND hDlgCtrl; - WCHAR wszBuf[256]; - TRACE("path %s\n", debugstr_w(pwszPath)); if (pwszPath == NULL || !pwszPath[0]) return FALSE; - hDlgCtrl = GetDlgItem(hwndDlg, 14005); - + HWND hDlgCtrl = GetDlgItem(hwndDlg, 14005); if (hDlgCtrl == NULL) return FALSE; - LPCWSTR pwszExt = PathFindExtensionW(pwszPath); - + /* Get file information */ SHFILEINFO fi; if (!SHGetFileInfoW(pwszPath, 0, &fi, sizeof(fi), SHGFI_TYPENAME|SHGFI_ICON)) { @@ -250,11 +346,14 @@ fi.hIcon = NULL; } + LPCWSTR pwszExt = PathFindExtensionW(pwszPath); if (pwszExt[0]) { + WCHAR wszBuf[256]; + if (!fi.szTypeName[0]) { - /* the file extension is unknown, so default to string "FileExtension File" */ + /* The file type is unknown, so default to string "FileExtension File" */ size_t cchRemaining = 0; LPWSTR pwszEnd = NULL; @@ -265,13 +364,13 @@ } else { - /* file extension type */ + /* Update file type */ StringCbPrintfW(wszBuf, sizeof(wszBuf), L"%s (%s)", fi.szTypeName, pwszExt); SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)wszBuf); } } - /* file icon */ + /* Update file icon */ if (fi.hIcon) SendDlgItemMessageW(hwndDlg, 14000, STM_SETICON, (WPARAM)fi.hIcon, 0); else @@ -291,7 +390,7 @@ SHFileGeneralGetFileTimeString(LPFILETIME lpFileTime, WCHAR *lpResult) { FILETIME ft; - SYSTEMTIME dt; + SYSTEMTIME st; if (lpFileTime == NULL || lpResult == NULL) return FALSE; @@ -299,10 +398,10 @@ if (!FileTimeToLocalFileTime(lpFileTime, &ft)) return FALSE; - FileTimeToSystemTime(&ft, &dt); + FileTimeToSystemTime(&ft, &st); /* ddmmyy */ - swprintf(lpResult, L"%02hu/%02hu/%04hu %02hu:%02hu", dt.wDay, dt.wMonth, dt.wYear, dt.wHour, dt.wMinute); + swprintf(lpResult, L"%02hu/%02hu/%04hu %02hu:%02hu", st.wDay, st.wMonth, st.wYear, st.wHour, st.wMinute); TRACE("result %s\n", debugstr_w(lpResult)); return TRUE; @@ -322,22 +421,20 @@ if (pwszPath == NULL) return FALSE; - /* find the filename position */ + /* Find the filename */ WCHAR *pwszFilename = PathFindFileNameW(pwszPath); if (pwszFilename > pwszPath) { - /* location text field */ + /* Location field */ WCHAR wszLocation[MAX_PATH]; - StringCchCopyNW(wszLocation, _countof(wszLocation), pwszPath, pwszFilename - pwszPath - 1); - - if (PathIsRootW(wszLocation)) - wcscat(wszLocation, L"\\"); + StringCchCopyNW(wszLocation, _countof(wszLocation), pwszPath, pwszFilename - pwszPath); + PathRemoveBackslashW(wszLocation); SetDlgItemTextW(hwndDlg, 14009, wszLocation); } - /* text filename field */ + /* Filename field */ SetDlgItemTextW(hwndDlg, 14001, pwszFilename); return TRUE; @@ -423,19 +520,17 @@ */ static BOOL -SH_FileVersionQuerySetText(HWND hwndDlg, DWORD idCtrl, LPVOID pInfo, LPCWSTR pwszProp) -{ - UINT cbResult; - WCHAR *pwszResult = NULL; - - if (hwndDlg == NULL || pwszProp == NULL) - return FALSE; - - if (VerQueryValueW(pInfo, pwszProp, (LPVOID *)&pwszResult, &cbResult)) +SH_FileVersionQuerySetText(HWND hwndDlg, DWORD idCtrl, CFileVersionInfo *pVerInfo, LPCWSTR pwszName) +{ + if (hwndDlg == NULL || pwszName == NULL) + return FALSE; + + LPCWSTR pwszValue = pVerInfo->GetString(pwszName); + if (pwszValue) { /* file description property */ - TRACE("%s :: %s\n", debugstr_w(pwszProp), debugstr_w(pwszResult)); - SetDlgItemTextW(hwndDlg, idCtrl, pwszResult); + TRACE("%s :: %s\n", debugstr_w(pwszName), debugstr_w(pwszValue)); + SetDlgItemTextW(hwndDlg, idCtrl, pwszValue); return TRUE; } @@ -451,27 +546,21 @@ */ static BOOL -SH_FileVersionQuerySetListText(HWND hwndDlg, LPVOID pInfo, LPCWSTR pwszProp, WORD wLang, WORD wCode) -{ - HWND hDlgCtrl; - UINT Index; - UINT cbResult; - WCHAR buff[256], *pwszResult = NULL; - - TRACE("pwszProp %s, hwndDlg %p\n", debugstr_w(pwszProp), hwndDlg); - - if (hwndDlg == NULL || pwszProp == NULL) - return FALSE; - - swprintf(buff, L"\\StringFileInfo\\%04x%04x\\%s", wLang, wCode, pwszProp); - - if (VerQueryValueW(pInfo, buff, (LPVOID *)&pwszResult, &cbResult)) +SH_FileVersionQuerySetListText(HWND hwndDlg, CFileVersionInfo *pVerInfo, LPCWSTR pwszName) +{ + TRACE("pwszName %s, hwndDlg %p\n", debugstr_w(pwszName), hwndDlg); + + if (hwndDlg == NULL || pwszName == NULL) + return FALSE; + + LPCWSTR pwszValue = pVerInfo->GetString(pwszName); + if (pwszValue) { /* listbox name property */ - hDlgCtrl = GetDlgItem(hwndDlg, 14009); - TRACE("%s :: %s\n", debugstr_w(pwszProp), debugstr_w(pwszResult)); - Index = SendMessageW(hDlgCtrl, LB_ADDSTRING, (WPARAM) -1, (LPARAM)pwszProp); - SendMessageW(hDlgCtrl, LB_SETITEMDATA, (WPARAM)Index, (LPARAM)(WCHAR *)pwszResult); + HWND hDlgCtrl = GetDlgItem(hwndDlg, 14009); + TRACE("%s :: %s\n", debugstr_w(pwszName), debugstr_w(pwszValue)); + UINT Index = SendMessageW(hDlgCtrl, LB_ADDSTRING, (WPARAM) -1, (LPARAM)pwszName); + SendMessageW(hDlgCtrl, LB_SETITEMDATA, (WPARAM)Index, (LPARAM)(WCHAR *)pwszValue); return TRUE; } @@ -486,78 +575,48 @@ */ static BOOL -SH_FileVersionInitialize(HWND hwndDlg, LPCWSTR pwszFilename) -{ - LPVOID pBuf; - DWORD cbBuf; - VS_FIXEDFILEINFO *pInfo = NULL; - UINT cBytes; - WCHAR buff[256]; - HWND hDlgCtrl; - WORD wLang = 0, wCode = 0; - LPLANGANDCODEPAGE lpLangCode; - - if (pwszFilename == 0) - return FALSE; - - if (!(cbBuf = GetFileVersionInfoSizeW(pwszFilename, NULL))) - { - WARN("GetFileVersionInfoSize failed\n"); - return FALSE; - } - - if (!(pBuf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cbBuf))) - { - WARN("HeapAlloc failed bytes %x\n", cbBuf); - return FALSE; - } - - if (!GetFileVersionInfoW(pwszFilename, 0, cbBuf, pBuf)) - { - HeapFree(GetProcessHeap(), 0, pBuf); - return FALSE; - } - - if (VerQueryValueW(pBuf, L"\\", (PVOID*)&pInfo, &cBytes)) - { - swprintf(buff, L"%u.%u.%u.%u", HIWORD(pInfo->dwFileVersionMS), +SH_FileVersionInitialize(HWND hwndDlg, LPCWSTR pwszPath) +{ + if (pwszPath == NULL) + return FALSE; + + /* Get file version info */ + CFileVersionInfo *pVerInfo; + pVerInfo = new CFileVersionInfo; + if (!pVerInfo || !pVerInfo->Load(pwszPath)) + return FALSE; + + /* Get fixed info */ + VS_FIXEDFILEINFO *pInfo = pVerInfo->GetFixedInfo(); + if (pInfo) + { + WCHAR wszVersion[256]; + swprintf(wszVersion, L"%u.%u.%u.%u", HIWORD(pInfo->dwFileVersionMS), LOWORD(pInfo->dwFileVersionMS), HIWORD(pInfo->dwFileVersionLS), LOWORD(pInfo->dwFileVersionLS)); - TRACE("MS %x LS %x res %s \n", pInfo->dwFileVersionMS, pInfo->dwFileVersionLS, debugstr_w(buff)); - SetDlgItemTextW(hwndDlg, 14001, buff); - } - - if (VerQueryValueW(pBuf, L"VarFileInfo\\Translation", (LPVOID *)&lpLangCode, &cBytes)) - { - /* FIXME find language from current locale / if not available, - * default to english - * for now default to first available language - */ - wLang = lpLangCode->lang; - wCode = lpLangCode->code; - } - - swprintf(buff, L"\\StringFileInfo\\%04x%04x\\FileDescription", wLang, wCode); - SH_FileVersionQuerySetText(hwndDlg, 14003, pBuf, buff); - - swprintf(buff, L"\\StringFileInfo\\%04x%04x\\LegalCopyright", wLang, wCode); - SH_FileVersionQuerySetText(hwndDlg, 14005, pBuf, buff); - - /* listbox properties */ - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"CompanyName", wLang, wCode); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"FileVersion", wLang, wCode); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"InternalName", wLang, wCode); - + TRACE("MS %x LS %x ver %s \n", pInfo->dwFileVersionMS, pInfo->dwFileVersionLS, debugstr_w(wszVersion)); + SetDlgItemTextW(hwndDlg, 14001, wszVersion); + } + + /* Update labels */ + SH_FileVersionQuerySetText(hwndDlg, 14003, pVerInfo, L"FileDescription"); + SH_FileVersionQuerySetText(hwndDlg, 14005, pVerInfo, L"LegalCopyright"); + + /* Add items to listbox */ + SH_FileVersionQuerySetListText(hwndDlg, pVerInfo, L"CompanyName"); /* FIXME insert language identifier */ - - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"OriginalFilename", wLang, wCode); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"ProductName", wLang, wCode); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"ProductVersion", wLang, wCode); - SetWindowLongPtr(hwndDlg, DWL_USER, (LONG_PTR)pBuf); - - /* select first item */ - hDlgCtrl = GetDlgItem(hwndDlg, 14009); + SH_FileVersionQuerySetListText(hwndDlg, pVerInfo, L"ProductName"); + SH_FileVersionQuerySetListText(hwndDlg, pVerInfo, L"InternalName"); + SH_FileVersionQuerySetListText(hwndDlg, pVerInfo, L"OriginalFilename"); + SH_FileVersionQuerySetListText(hwndDlg, pVerInfo, L"FileVersion"); + SH_FileVersionQuerySetListText(hwndDlg, pVerInfo, L"ProductVersion"); + + /* Attach file version to dialog window */ + SetWindowLongPtr(hwndDlg, DWL_USER, (LONG_PTR)pVerInfo); + + /* Select first item */ + HWND hDlgCtrl = GetDlgItem(hwndDlg, 14009); SendMessageW(hDlgCtrl, LB_SETCURSEL, 0, 0); LPCWSTR pwszText = (WCHAR *)SendMessageW(hDlgCtrl, LB_GETITEMDATA, (WPARAM)0, (LPARAM)NULL); SetDlgItemTextW(hwndDlg, 14010, pwszText); @@ -617,8 +676,9 @@ break; case WM_DESTROY: { - LPVOID pBuf = (LPVOID)GetWindowLongPtr(hwndDlg, DWL_USER); - HeapFree(GetProcessHeap(), 0, pBuf); + CFileVersionInfo *pVerInfo = (CFileVersionInfo*)GetWindowLongPtr(hwndDlg, DWL_USER); + if (pVerInfo) + delete pVerInfo; break; } default: @@ -660,17 +720,17 @@ break; } - /* set general text properties filename filelocation and icon */ + /* Set general text properties filename filelocation and icon */ SH_FileGeneralSetText(hwndDlg, pwszPath); - /* enumerate file extension from registry and application which opens it */ + /* Set file type and icon */ SH_FileGeneralSetFileType(hwndDlg, pwszPath); - /* set opens with */ + /* Set open with application */ if (!PathIsExeW(pwszPath)) SH_FileGeneralOpensWith(hwndDlg, PathFindExtensionW(pwszPath)); - /* set file time create/modfied/accessed */ + /* Set file created/modfied/accessed time */ SH_FileGeneralSetFileSizeTime(hwndDlg, pwszPath); return TRUE; @@ -683,67 +743,56 @@ } static BOOL CALLBACK -AddShellPropSheetExCallback(HPROPSHEETPAGE hPage, LPARAM lParam) -{ - PROPSHEETHEADERW *pInfo = (PROPSHEETHEADERW *)lParam; - - if (pInfo->nPages < MAX_PROPERTY_SHEET_PAGE) - { - pInfo->phpage[pInfo->nPages++] = hPage; +AddPropSheetPageCallback(HPROPSHEETPAGE hPage, LPARAM lParam) +{ + PROPSHEETHEADERW *pHeader = (PROPSHEETHEADERW *)lParam; + + if (pHeader->nPages < MAX_PROPERTY_SHEET_PAGE) + { + pHeader->phpage[pHeader->nPages++] = hPage; return TRUE; } return FALSE; } -static int -EnumPropSheetExt(LPCWSTR pwszPath, PROPSHEETHEADERW *pInfo, int NumPages, HPSXA *phpsxa, IDataObject *pDataObj) -{ - WCHAR wszName[MAX_PATH]; - WCHAR *pwszExt; - UINT cchPath; - DWORD dwName; - int Pages; - CLSID clsid; - - pwszExt = PathFindExtensionW(pwszPath); - - if (!pwszExt[0]) - { - cchPath = wcslen(pwszPath); - - if (CLSIDFromString(pwszPath, &clsid) == NOERROR) - StringCbPrintfW(wszName, sizeof(wszName), L"CLSID\\%s", pwszPath); - else - StringCbCopyW(wszName, sizeof(wszName), pwszPath); +static UINT +LoadPropSheetHandlers(LPCWSTR pwszPath, PROPSHEETHEADERW *pHeader, UINT cMaxPages, HPSXA *phpsxa, IDataObject *pDataObj) +{ + WCHAR wszBuf[MAX_PATH]; + UINT cPages = 0, i = 0; + + LPWSTR pwszFilename = PathFindFileNameW(pwszPath); + + if (pwszFilename[0] == L'{') + { + /* Load class property sheet handlers */ + StringCbPrintfW(wszBuf, sizeof(wszBuf), L"CLSID\\%s", pwszFilename); + phpsxa[i] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, wszBuf, cMaxPages - cPages, pDataObj); + cPages += SHAddFromPropSheetExtArray(phpsxa[i++], AddPropSheetPageCallback, (LPARAM)pHeader); } else - StringCbCopyW(wszName, sizeof(wszName), pwszExt); - - TRACE("EnumPropSheetExt wszName %s\n", debugstr_w(wszName)); - - phpsxa[0] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, wszName, NumPages, pDataObj); - Pages = SHAddFromPropSheetExtArray(phpsxa[0], AddShellPropSheetExCallback, (LPARAM)pInfo); - - phpsxa[1] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, L"*", NumPages - Pages, pDataObj); - Pages += SHAddFromPropSheetExtArray(phpsxa[1], AddShellPropSheetExCallback, (LPARAM)pInfo); - - phpsxa[2] = NULL; - - if (pwszExt) - { - /* try to load property sheet handlers from prog id key */ - dwName = sizeof(wszName); - - if (RegGetValueW(HKEY_CLASSES_ROOT, pwszExt, L"", RRF_RT_REG_SZ, NULL, wszName, &dwName) == ERROR_SUCCESS) - { - TRACE("EnumPropSheetExt wszName %s, pwszExt %s\n", debugstr_w(wszName), debugstr_w(pwszExt)); - phpsxa[2] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, wszName, NumPages - Pages, pDataObj); - Pages += SHAddFromPropSheetExtArray(phpsxa[2], AddShellPropSheetExCallback, (LPARAM)pInfo); - } - } - - return Pages; + { + /* Load property sheet handlers from ext key */ + LPWSTR pwszExt = PathFindExtensionW(pwszFilename); + phpsxa[i] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, pwszExt, cMaxPages - cPages, pDataObj); + cPages += SHAddFromPropSheetExtArray(phpsxa[i++], AddPropSheetPageCallback, (LPARAM)pHeader); + + /* Load property sheet handlers from prog id key */ + DWORD cbBuf = sizeof(wszBuf); + if (RegGetValueW(HKEY_CLASSES_ROOT, pwszExt, L"", RRF_RT_REG_SZ, NULL, wszBuf, &cbBuf) == ERROR_SUCCESS) + { + TRACE("EnumPropSheetExt wszBuf %s, pwszExt %s\n", debugstr_w(wszBuf), debugstr_w(pwszExt)); + phpsxa[i] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, wszBuf, cMaxPages - cPages, pDataObj); + cPages += SHAddFromPropSheetExtArray(phpsxa[i++], AddPropSheetPageCallback, (LPARAM)pHeader); + } + } + + /* Add property sheet handlers from "*" key */ + phpsxa[i] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, L"*", cMaxPages - cPages, pDataObj); + cPages += SHAddFromPropSheetExtArray(phpsxa[i++], AddPropSheetPageCallback, (LPARAM)pHeader); + + return cPages; } /************************************************************************* @@ -763,7 +812,7 @@ { HRESULT hr; HPROPSHEETPAGE hppages[MAX_PROPERTY_SHEET_PAGE]; - HPSXA hpsxa[3] = {}; + HPSXA hpsxa[3] = {NULL, NULL, NULL}; TRACE("SH_ShowPropertiesDialog entered filename %s\n", debugstr_w(pwszPath)); @@ -788,56 +837,46 @@ return SH_ShowFolderProperties(wszPath, pidlFolder, apidl); /* Handle files */ - PROPSHEETHEADERW Info; - memset(&Info, 0x0, sizeof(PROPSHEETHEADERW)); - Info.dwSize = sizeof(PROPSHEETHEADERW); - Info.dwFlags = PSH_NOCONTEXTHELP | PSH_PROPTITLE; - Info.phpage = hppages; - Info.pszCaption = PathFindFileNameW(wszPath); - - hppages[Info.nPages] = + PROPSHEETHEADERW Header; + memset(&Header, 0x0, sizeof(PROPSHEETHEADERW)); + Header.dwSize = sizeof(PROPSHEETHEADERW); + Header.dwFlags = PSH_NOCONTEXTHELP | PSH_PROPTITLE; + Header.phpage = hppages; + Header.pszCaption = PathFindFileNameW(wszPath); + + hppages[Header.nPages] = SH_CreatePropertySheetPage("SHELL_FILE_GENERAL_DLG", SH_FileGeneralDlgProc, (LPARAM)wszPath, NULL); - if (hppages[Info.nPages]) - Info.nPages++; - - CComPtr<IDataObject> pDataObj; - hr = SHCreateDataObject(pidlFolder, 1, apidl, NULL, IID_IDataObject, (LPVOID *)&pDataObj); - - if (hr == S_OK) - { - if (!EnumPropSheetExt(wszPath, &Info, MAX_PROPERTY_SHEET_PAGE - 1, hpsxa, pDataObj)) - { - hpsxa[0] = NULL; - hpsxa[1] = NULL; - hpsxa[2] = NULL; - } - } - - if (GetFileVersionInfoSizeW(wszPath, NULL)) - { - hppages[Info.nPages] = + if (hppages[Header.nPages]) + Header.nPages++; + + if (GetFileVersionInfoSizeW(wszPath, NULL) && Header.nPages < _countof(hppages)) + { + hppages[Header.nPages] = SH_CreatePropertySheetPage("SHELL_FILE_VERSION_DLG", SH_FileVersionDlgProc, (LPARAM)wszPath, NULL); - if (hppages[Info.nPages]) - Info.nPages++; - } - - INT_PTR res = PropertySheetW(&Info); - - if (hr == S_OK) - { - SHDestroyPropSheetExtArray(hpsxa[0]); - SHDestroyPropSheetExtArray(hpsxa[1]); - SHDestroyPropSheetExtArray(hpsxa[2]); - } - - return (res != -1); + if (hppages[Header.nPages]) + Header.nPages++; + } + + CComPtr<IDataObject> pDataObj; + hr = SHCreateDataObject(pidlFolder, 1, apidl, NULL, IID_IDataObject, (LPVOID *)&pDataObj); + + if (SUCCEEDED(hr)) + LoadPropSheetHandlers(wszPath, &Header, MAX_PROPERTY_SHEET_PAGE - 1, hpsxa, pDataObj); + + INT_PTR Result = PropertySheetW(&Header); + + for (UINT i = 0; i < 3; ++i) + if (hpsxa[i]) + SHDestroyPropSheetExtArray(hpsxa[i]); + + return (Result != -1); } /*EOF */ Modified: trunk/reactos/dll/win32/shell32/shlexec.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shlexec.…
============================================================================== --- trunk/reactos/dll/win32/shell32/shlexec.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shlexec.cpp [iso-8859-1] Wed Jan 11 14:13:14 2012 @@ -26,8 +26,6 @@ static const WCHAR wszOpen[] = L"open"; static const WCHAR wszExe[] = L".exe"; -static const WCHAR wszShell[] = L"\\shell\\"; -static const WCHAR wszFolder[] = L"Folder"; #define SEE_MASK_CLASSALL (SEE_MASK_CLASSNAME | SEE_MASK_CLASSKEY) @@ -602,7 +600,7 @@ RegCloseKey(hkeyClass); /* Looking for ...buffer\shell\<verb>\command */ - wcscat(filetype, wszShell); + wcscat(filetype, L"\\shell\\"); wcscat(filetype, verb); wcscat(filetype, wCommand); @@ -705,7 +703,7 @@ attribs = GetFileAttributesW(lpFile); if (attribs != INVALID_FILE_ATTRIBUTES && (attribs & FILE_ATTRIBUTE_DIRECTORY)) { - wcscpy(filetype, wszFolder); + wcscpy(filetype, L"Folder"); filetypelen = 6; /* strlen("Folder") */ } else @@ -1466,7 +1464,7 @@ attribs = GetFileAttributesW(buffer); if (attribs != INVALID_FILE_ATTRIBUTES && (attribs & FILE_ATTRIBUTE_DIRECTORY) && - HCR_GetExecuteCommandW(0, wszFolder, + HCR_GetExecuteCommandW(0, L"Folder", sei->lpVerb, buffer, sizeof(buffer))) { SHELL_ArgifyW(wszApplicationName, dwApplicationNameLen,
12 years, 11 months
1
0
0
0
[rharabien] 54906: [SHELL32] - Don't check exe files for Open With application - If application is invalid display proper text - Properly handle application parameters and quotes when parsing appli...
by rharabien@svn.reactos.org
Author: rharabien Date: Tue Jan 10 19:57:53 2012 New Revision: 54906 URL:
http://svn.reactos.org/svn/reactos?rev=54906&view=rev
Log: [SHELL32] - Don't check exe files for Open With application - If application is invalid display proper text - Properly handle application parameters and quotes when parsing application command. Patch by EDIJS, improved by me. See issue #6770 for more details. Modified: trunk/reactos/dll/win32/shell32/fprop.cpp trunk/reactos/dll/win32/shell32/lang/bg-BG.rc trunk/reactos/dll/win32/shell32/lang/ca-ES.rc trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc trunk/reactos/dll/win32/shell32/lang/da-DK.rc trunk/reactos/dll/win32/shell32/lang/de-DE.rc trunk/reactos/dll/win32/shell32/lang/el-GR.rc trunk/reactos/dll/win32/shell32/lang/en-GB.rc trunk/reactos/dll/win32/shell32/lang/en-US.rc trunk/reactos/dll/win32/shell32/lang/es-ES.rc trunk/reactos/dll/win32/shell32/lang/fi-FI.rc trunk/reactos/dll/win32/shell32/lang/fr-FR.rc trunk/reactos/dll/win32/shell32/lang/hu-HU.rc trunk/reactos/dll/win32/shell32/lang/it-IT.rc trunk/reactos/dll/win32/shell32/lang/ja-JP.rc trunk/reactos/dll/win32/shell32/lang/ko-KR.rc trunk/reactos/dll/win32/shell32/lang/nl-NL.rc trunk/reactos/dll/win32/shell32/lang/no-NO.rc trunk/reactos/dll/win32/shell32/lang/pl-PL.rc trunk/reactos/dll/win32/shell32/lang/pt-BR.rc trunk/reactos/dll/win32/shell32/lang/pt-PT.rc trunk/reactos/dll/win32/shell32/lang/ro-RO.rc trunk/reactos/dll/win32/shell32/lang/ru-RU.rc trunk/reactos/dll/win32/shell32/lang/sk-SK.rc trunk/reactos/dll/win32/shell32/lang/sl-SI.rc trunk/reactos/dll/win32/shell32/lang/sv-SE.rc trunk/reactos/dll/win32/shell32/lang/tr-TR.rc trunk/reactos/dll/win32/shell32/lang/uk-UA.rc trunk/reactos/dll/win32/shell32/lang/zh-CN.rc trunk/reactos/dll/win32/shell32/lang/zh-TW.rc trunk/reactos/dll/win32/shell32/newmenu.cpp trunk/reactos/dll/win32/shell32/openwithmenu.cpp trunk/reactos/dll/win32/shell32/shellpath.cpp trunk/reactos/dll/win32/shell32/shresdef.h Modified: trunk/reactos/dll/win32/shell32/fprop.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/fprop.cp…
============================================================================== --- trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -31,52 +31,39 @@ } LANGANDCODEPAGE, *LPLANGANDCODEPAGE; EXTERN_C HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj); - -static LONG -SH_GetAssociatedApplication(LPCWSTR pwszFileExt, WCHAR *pwszAssocApp) -{ - WCHAR wszBuf[MAX_PATH] = {0}; - LONG result; +BOOL PathIsExeW(LPCWSTR lpszPath); + +static VOID +SH_FileGeneralOpensWith(HWND hwndDlg, LPCWSTR pwszExt) +{ + WCHAR wszBuf[MAX_PATH] = L""; + WCHAR wszBuf2[MAX_PATH] = L""; DWORD dwSize = sizeof(wszBuf); - result = RegGetValueW(HKEY_CLASSES_ROOT, pwszFileExt, L"", RRF_RT_REG_SZ, NULL, wszBuf, &dwSize); - - if (result == ERROR_SUCCESS) - { - StringCbCat(wszBuf, sizeof(wszBuf), L"\\shell\\open\\command"); - dwSize = MAX_PATH * sizeof(WCHAR); - result = RegGetValueW(HKEY_CLASSES_ROOT, wszBuf, L"", RRF_RT_REG_SZ, NULL, pwszAssocApp, &dwSize); - /* FIXME: Make it return full path instead of - notepad.exe "%1" - %systemroot%\notepad.exe "%1" - etc - Maybe there is code to do that somewhere? - dll\win32\shell32\shlexec.c for example? */ - } - - if (result != ERROR_SUCCESS) - pwszAssocApp[0] = '\0'; - - return result; -} - -static LONG -SH_FileGeneralOpensWith(HWND hwndDlg, LPCWSTR fileext) -{ - LONG result; - WCHAR wAppName[MAX_PATH] = {0}; - WCHAR wAssocApp[MAX_PATH] = {0}; - - result = SH_GetAssociatedApplication(fileext, wAssocApp); - - if (result == ERROR_SUCCESS) - { - _wsplitpath(wAssocApp, NULL, NULL, wAppName, NULL); - - SetDlgItemTextW(hwndDlg, 14007, wAppName); - } - - return result; + if (RegGetValueW(HKEY_CLASSES_ROOT, pwszExt, L"", RRF_RT_REG_SZ, NULL, wszBuf, &dwSize) == ERROR_SUCCESS) + { + StringCbCatW(wszBuf, sizeof(wszBuf), L"\\shell\\open\\command"); + dwSize = sizeof(wszBuf2); + if (RegGetValueW(HKEY_CLASSES_ROOT, wszBuf, L"", RRF_RT_REG_SZ, NULL, wszBuf2, &dwSize) == ERROR_SUCCESS) + { + /* Get path from command line */ + ExpandEnvironmentStringsW(wszBuf2, wszBuf, _countof(wszBuf)); + PathRemoveArgs(wszBuf); + PathUnquoteSpacesW(wszBuf); + PathRemoveExtension(wszBuf); + LPWSTR pwszFilename = PathFindFileNameW(wszBuf); + pwszFilename[0] = towupper(pwszFilename[0]); + SetDlgItemTextW(hwndDlg, 14007, pwszFilename); + //PathSearchAndQualify(wAssocAppFullPath, wAssocAppFullPath, MAX_PATH); + return; + } else + WARN("RegGetValueW %ls failed\n", wszBuf); + } else + WARN("RegGetValueW %ls failed\n", pwszExt); + + /* Unknown application */ + LoadStringW(shell32_hInstance, IDS_UNKNOWN_APP, wszBuf, _countof(wszBuf)); + SetDlgItemTextW(hwndDlg, 14007, wszBuf); } /************************************************************************* @@ -365,20 +352,21 @@ */ static BOOL -SH_FileGeneralSetFileSizeTime(HWND hwndDlg, LPCWSTR lpfilename, PULARGE_INTEGER lpfilesize) -{ - BOOL result; +SH_FileGeneralSetFileSizeTime(HWND hwndDlg, LPCWSTR pwszPath) +{ HANDLE hFile; - FILETIME create_time; - FILETIME accessed_time; - FILETIME write_time; - WCHAR resultstr[MAX_PATH]; - LARGE_INTEGER file_size; - - if (lpfilename == NULL) - return FALSE; - - hFile = CreateFileW(lpfilename, + FILETIME CreateTime; + FILETIME AccessedTime; + FILETIME WriteTime; + WCHAR wszBuf[MAX_PATH]; + LARGE_INTEGER FileSize; + + if (pwszPath == NULL) + return FALSE; + + TRACE("SH_FileGeneralSetFileSizeTime %ls\n", pwszPath); + + hFile = CreateFileW(pwszPath, GENERIC_READ, FILE_SHARE_READ, NULL, @@ -388,34 +376,18 @@ if (hFile == INVALID_HANDLE_VALUE) { - WARN("failed to open file %s\n", debugstr_w(lpfilename)); - return FALSE; - } - - result = GetFileTime(hFile, &create_time, &accessed_time, &write_time); - - if (!result) + WARN("failed to open file %s\n", debugstr_w(pwszPath)); + return FALSE; + } + + if (!GetFileTime(hFile, &CreateTime, &AccessedTime, &WriteTime)) { WARN("GetFileTime failed\n"); - return FALSE; - } - - if (SHFileGeneralGetFileTimeString(&create_time, resultstr)) - { - SetDlgItemTextW(hwndDlg, 14015, resultstr); - } - - if (SHFileGeneralGetFileTimeString(&accessed_time, resultstr)) - { - SetDlgItemTextW(hwndDlg, 14019, resultstr); - } - - if (SHFileGeneralGetFileTimeString(&write_time, resultstr)) - { - SetDlgItemTextW(hwndDlg, 14017, resultstr); - } - - if (!GetFileSizeEx(hFile, &file_size)) + CloseHandle(hFile); + return FALSE; + } + + if (!GetFileSizeEx(hFile, &FileSize)) { WARN("GetFileSize failed\n"); CloseHandle(hFile); @@ -424,16 +396,21 @@ CloseHandle(hFile); - if (!SH_FormatFileSizeWithBytes((PULARGE_INTEGER)&file_size, - resultstr, - sizeof(resultstr) / sizeof(WCHAR))) - return FALSE; - - TRACE("result size %u resultstr %s\n", file_size.QuadPart, debugstr_w(resultstr)); - SetDlgItemTextW(hwndDlg, 14011, resultstr); - - if (lpfilesize) - lpfilesize->QuadPart = (ULONGLONG)file_size.QuadPart; + if (SHFileGeneralGetFileTimeString(&CreateTime, wszBuf)) + SetDlgItemTextW(hwndDlg, 14015, wszBuf); + + if (SHFileGeneralGetFileTimeString(&AccessedTime, wszBuf)) + SetDlgItemTextW(hwndDlg, 14019, wszBuf); + + if (SHFileGeneralGetFileTimeString(&WriteTime, wszBuf)) + SetDlgItemTextW(hwndDlg, 14017, wszBuf); + + if (SH_FormatFileSizeWithBytes((PULARGE_INTEGER)&FileSize, + wszBuf, + sizeof(wszBuf) / sizeof(WCHAR))) + { + SetDlgItemTextW(hwndDlg, 14011, wszBuf); + } return TRUE; } @@ -679,11 +656,9 @@ LPCWSTR pwszPath = (WCHAR *)ppsp->lParam; if (pwszPath == NULL) { - ERR("no filename\n"); + ERR("no path\n"); break; } - - LPCWSTR pwszExt = PathFindExtensionW(pwszPath); /* set general text properties filename filelocation and icon */ SH_FileGeneralSetText(hwndDlg, pwszPath); @@ -692,10 +667,11 @@ SH_FileGeneralSetFileType(hwndDlg, pwszPath); /* set opens with */ - SH_FileGeneralOpensWith(hwndDlg, pwszExt); + if (!PathIsExeW(pwszPath)) + SH_FileGeneralOpensWith(hwndDlg, PathFindExtensionW(pwszPath)); /* set file time create/modfied/accessed */ - SH_FileGeneralSetFileSizeTime(hwndDlg, pwszPath, NULL); + SH_FileGeneralSetFileSizeTime(hwndDlg, pwszPath); return TRUE; } @@ -800,32 +776,24 @@ WCHAR wszPath[MAX_PATH]; StringCbCopyW(wszPath, sizeof(wszPath), pwszPath); - // - // get length - // - INT cchPath = wcslen(wszPath); - if (cchPath > 3 && wszPath[cchPath-1] == L'\\') - { - // - // remove trailing \\ at the end of path - // - wszPath[cchPath-1] = L'\0'; - } - + /* remove trailing \\ at the end of path */ + PathRemoveBackslashW(wszPath); + + /* Handle drives */ if (PathIsRootW(wszPath)) return SH_ShowDriveProperties(wszPath, pidlFolder, apidl); + /* Handle folders */ if (PathIsDirectoryW(wszPath)) return SH_ShowFolderProperties(wszPath, pidlFolder, apidl); - LPCWSTR pwszFilename = PathFindFileNameW(wszPath); - + /* Handle files */ PROPSHEETHEADERW Info; memset(&Info, 0x0, sizeof(PROPSHEETHEADERW)); Info.dwSize = sizeof(PROPSHEETHEADERW); Info.dwFlags = PSH_NOCONTEXTHELP | PSH_PROPTITLE; Info.phpage = hppages; - Info.pszCaption = pwszFilename; + Info.pszCaption = PathFindFileNameW(wszPath); hppages[Info.nPages] = SH_CreatePropertySheetPage("SHELL_FILE_GENERAL_DLG", Modified: trunk/reactos/dll/win32/shell32/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/bg-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -771,8 +771,9 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END - - - - + IDS_UNKNOWN_APP "Unknown application" +END + + + + Modified: trunk/reactos/dll/win32/shell32/lang/ca-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ca-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,4 +770,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/cs-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -758,4 +758,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/da-DK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/da-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -759,4 +759,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/de-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -775,4 +775,5 @@ IDS_FILE_TYPES "Dateitypen" IDS_COLUMN_EXTENSION "Erweiterungen" IDS_BYTES_FORMAT "Bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/el-GR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/el-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -771,4 +771,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/en-GB.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,4 +770,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/en-US.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -780,4 +780,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/es-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/es-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -783,4 +783,5 @@ IDS_FILE_TYPES "Tipos de archivos" IDS_COLUMN_EXTENSION "Extensiones" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/fi-FI.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fi-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,4 +770,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/fr-FR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fr-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -774,4 +774,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/hu-HU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/hu-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -773,4 +773,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/it-IT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/it-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -781,4 +781,5 @@ IDS_FILE_TYPES "Tipi di file" IDS_COLUMN_EXTENSION "Estensioni" IDS_BYTES_FORMAT "byte" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/ja-JP.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ja-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,4 +770,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/ko-KR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ko-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,4 +770,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/nl-NL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/nl-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,4 +770,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/no-NO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/no-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -773,4 +773,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/pl-PL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pl-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -778,4 +778,5 @@ IDS_FILE_TYPES "Typy plików" IDS_COLUMN_EXTENSION "Rozszerzenia" IDS_BYTES_FORMAT "bajtów" -END + IDS_UNKNOWN_APP "Nieznana aplikacja" +END Modified: trunk/reactos/dll/win32/shell32/lang/pt-BR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -772,4 +772,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/pt-PT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -773,4 +773,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/ro-RO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ro-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ro-RO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ro-RO.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -789,5 +789,6 @@ IDS_FILE_TYPES "Tipuri" IDS_COLUMN_EXTENSION "Extensii" IDS_BYTES_FORMAT "octeÈi" -END - + IDS_UNKNOWN_APP "Unknown application" +END + Modified: trunk/reactos/dll/win32/shell32/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ru-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -768,4 +768,5 @@ IDS_FILE_TYPES "Ð¢Ð¸Ð¿Ñ Ñайлов" IDS_COLUMN_EXTENSION "РаÑÑиÑениÑ" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/sk-SK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sk-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -778,4 +778,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/sl-SI.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sl-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,4 +770,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/sv-SE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sv-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,4 +770,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/tr-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,4 +770,5 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/uk-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -783,4 +783,5 @@ IDS_FILE_TYPES "Типи ФайлÑв" IDS_COLUMN_EXTENSION "РозÑиÑеннÑ" IDS_BYTES_FORMAT "bytes" -END + IDS_UNKNOWN_APP "Unknown application" +END Modified: trunk/reactos/dll/win32/shell32/lang/zh-CN.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -758,5 +758,6 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END - + IDS_UNKNOWN_APP "Unknown application" +END + Modified: trunk/reactos/dll/win32/shell32/lang/zh-TW.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -770,5 +770,6 @@ IDS_FILE_TYPES "FileTypes" IDS_COLUMN_EXTENSION "Extensions" IDS_BYTES_FORMAT "bytes" -END - + IDS_UNKNOWN_APP "Unknown application" +END + Modified: trunk/reactos/dll/win32/shell32/newmenu.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/newmenu.…
============================================================================== --- trunk/reactos/dll/win32/shell32/newmenu.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/newmenu.cpp [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -135,7 +135,7 @@ { /* Note: We are using ANSI function because strings can be treated as data */ cbData = 0; - DWORD dwFlags = Types[i].bStr ? RRF_RT_REG_SZ|RRF_RT_REG_EXPAND_SZ : RRF_RT_ANY; + DWORD dwFlags = Types[i].bStr ? RRF_RT_REG_SZ : RRF_RT_ANY; if (RegGetValueA(hKey, NULL, Types[i].pszName, dwFlags, NULL, NULL, &cbData) == ERROR_SUCCESS) { if (Types[i].bNeedData && cbData > 0) Modified: trunk/reactos/dll/win32/shell32/openwithmenu.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/openwith…
============================================================================== --- trunk/reactos/dll/win32/shell32/openwithmenu.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/openwithmenu.cpp [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -28,6 +28,8 @@ // [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system] // "NoInternetOpenWith"=dword:00000001 // + +BOOL PathIsExeW(LPCWSTR lpszPath); class COpenWithList { @@ -1350,9 +1352,7 @@ TRACE("szPath %s\n", debugstr_w(m_wszPath)); pwszExt = PathFindExtensionW(m_wszPath); - if (!_wcsicmp(pwszExt, L".exe") || !_wcsicmp(pwszExt, L".com") || - !_wcsicmp(pwszExt, L".scr") || !_wcsicmp(pwszExt, L".bat") || - !_wcsicmp(pwszExt, L".cmd") || !_wcsicmp(pwszExt, L".lnk")) + if (PathIsExeW(pwszExt) || !_wcsicmp(pwszExt, L".lnk")) { TRACE("file is a executable or shortcut\n"); return E_FAIL; Modified: trunk/reactos/dll/win32/shell32/shellpath.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shellpat…
============================================================================== --- trunk/reactos/dll/win32/shell32/shellpath.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shellpath.cpp [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -177,7 +177,7 @@ /************************************************************************* * PathIsExeW [internal] */ -static BOOL PathIsExeW (LPCWSTR lpszPath) +BOOL PathIsExeW (LPCWSTR lpszPath) { LPCWSTR lpszExtension = PathGetExtensionW(lpszPath); int i; Modified: trunk/reactos/dll/win32/shell32/shresdef.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shresdef…
============================================================================== --- trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] Tue Jan 10 19:57:53 2012 @@ -144,6 +144,8 @@ #define IDS_RUNDLG_BROWSE_ERROR 181 #define IDS_RUNDLG_BROWSE_CAPTION 182 #define IDS_RUNDLG_BROWSE_FILTER 183 + +#define IDS_UNKNOWN_APP 190 #define IDS_OPEN_VERB 300 #define IDS_EXPLORE_VERB 301
12 years, 11 months
1
0
0
0
[rharabien] 54905: [SHELL32] - Simplify and fix getting file type description and icon in File Properties dialog - Apply EDIJS's patch for scrolling text in location field on File Properties dialog...
by rharabien@svn.reactos.org
Author: rharabien Date: Tue Jan 10 17:56:43 2012 New Revision: 54905 URL:
http://svn.reactos.org/svn/reactos?rev=54905&view=rev
Log: [SHELL32] - Simplify and fix getting file type description and icon in File Properties dialog - Apply EDIJS's patch for scrolling text in location field on File Properties dialog (#6807) Modified: trunk/reactos/dll/win32/shell32/fprop.cpp trunk/reactos/dll/win32/shell32/lang/bg-BG.rc trunk/reactos/dll/win32/shell32/lang/ca-ES.rc trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc trunk/reactos/dll/win32/shell32/lang/da-DK.rc trunk/reactos/dll/win32/shell32/lang/de-DE.rc trunk/reactos/dll/win32/shell32/lang/el-GR.rc trunk/reactos/dll/win32/shell32/lang/en-GB.rc trunk/reactos/dll/win32/shell32/lang/en-US.rc trunk/reactos/dll/win32/shell32/lang/es-ES.rc trunk/reactos/dll/win32/shell32/lang/fi-FI.rc trunk/reactos/dll/win32/shell32/lang/fr-FR.rc trunk/reactos/dll/win32/shell32/lang/hu-HU.rc trunk/reactos/dll/win32/shell32/lang/it-IT.rc trunk/reactos/dll/win32/shell32/lang/ja-JP.rc trunk/reactos/dll/win32/shell32/lang/ko-KR.rc trunk/reactos/dll/win32/shell32/lang/nl-NL.rc trunk/reactos/dll/win32/shell32/lang/no-NO.rc trunk/reactos/dll/win32/shell32/lang/pl-PL.rc trunk/reactos/dll/win32/shell32/lang/pt-BR.rc trunk/reactos/dll/win32/shell32/lang/pt-PT.rc trunk/reactos/dll/win32/shell32/lang/ro-RO.rc trunk/reactos/dll/win32/shell32/lang/ru-RU.rc trunk/reactos/dll/win32/shell32/lang/sk-SK.rc trunk/reactos/dll/win32/shell32/lang/sl-SI.rc trunk/reactos/dll/win32/shell32/lang/sv-SE.rc trunk/reactos/dll/win32/shell32/lang/tr-TR.rc trunk/reactos/dll/win32/shell32/lang/uk-UA.rc trunk/reactos/dll/win32/shell32/lang/zh-CN.rc trunk/reactos/dll/win32/shell32/lang/zh-TW.rc Modified: trunk/reactos/dll/win32/shell32/fprop.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/fprop.cp…
============================================================================== --- trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -33,7 +33,7 @@ EXTERN_C HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj); static LONG -SH_GetAssociatedApplication(WCHAR *pwszFileExt, WCHAR *pwszAssocApp) +SH_GetAssociatedApplication(LPCWSTR pwszFileExt, WCHAR *pwszAssocApp) { WCHAR wszBuf[MAX_PATH] = {0}; LONG result; @@ -61,7 +61,7 @@ } static LONG -SH_FileGeneralOpensWith(HWND hwndDlg, WCHAR *fileext) +SH_FileGeneralOpensWith(HWND hwndDlg, LPCWSTR fileext) { LONG result; WCHAR wAppName[MAX_PATH] = {0}; @@ -238,19 +238,14 @@ */ static BOOL -SH_FileGeneralSetFileType(HWND hwndDlg, WCHAR *filext) -{ - WCHAR name[MAX_PATH]; - WCHAR value[MAX_PATH]; - DWORD lname = MAX_PATH; - DWORD lvalue = MAX_PATH; - HKEY hKey; - LONG result; +SH_FileGeneralSetFileType(HWND hwndDlg, LPCWSTR pwszPath) +{ HWND hDlgCtrl; - - TRACE("fileext %s\n", debugstr_w(filext)); - - if (filext == NULL) + WCHAR wszBuf[256]; + + TRACE("path %s\n", debugstr_w(pwszPath)); + + if (pwszPath == NULL || !pwszPath[0]) return FALSE; hDlgCtrl = GetDlgItem(hwndDlg, 14005); @@ -258,96 +253,42 @@ if (hDlgCtrl == NULL) return FALSE; - if (RegOpenKeyW(HKEY_CLASSES_ROOT, filext, &hKey) != ERROR_SUCCESS) - { - /* the file extension is unknown, so default to string "FileExtension File" */ - SendMessageW(hDlgCtrl, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)value); - swprintf(name, L"%s %s", &filext[1], value); - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)name); - return TRUE; - } - - result = RegEnumValueW(hKey, 0, name, &lname, NULL, NULL, (LPBYTE)value, &lvalue); - RegCloseKey(hKey); - - if (result != ERROR_SUCCESS) - return FALSE; - - if (RegOpenKeyW(HKEY_CLASSES_ROOT, value, &hKey) == ERROR_SUCCESS) - { - if (RegLoadMUIStringW(hKey, L"FriendlyTypeName", value, MAX_PATH, NULL, 0, NULL) != ERROR_SUCCESS) + LPCWSTR pwszExt = PathFindExtensionW(pwszPath); + + SHFILEINFO fi; + if (!SHGetFileInfoW(pwszPath, 0, &fi, sizeof(fi), SHGFI_TYPENAME|SHGFI_ICON)) + { + ERR("SHGetFileInfoW failed for %ls (%lu)\n", pwszPath, GetLastError()); + fi.szTypeName[0] = L'\0'; + fi.hIcon = NULL; + } + + if (pwszExt[0]) + { + if (!fi.szTypeName[0]) { - lvalue = lname = MAX_PATH; - result = RegEnumValueW(hKey, 0, name, &lname, NULL, NULL, (LPBYTE)value, &lvalue); + /* the file extension is unknown, so default to string "FileExtension File" */ + size_t cchRemaining = 0; + LPWSTR pwszEnd = NULL; + + StringCchPrintfExW(wszBuf, _countof(wszBuf), &pwszEnd, &cchRemaining, 0, L"%s ", pwszExt + 1); + SendMessageW(hDlgCtrl, WM_GETTEXT, (WPARAM)cchRemaining, (LPARAM)pwszEnd); + + SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)wszBuf); } - - lname = MAX_PATH; - - if (RegGetValueW(hKey, L"DefaultIcon", NULL, RRF_RT_REG_SZ, NULL, name, &lname) == ERROR_SUCCESS) + else { - UINT IconIndex; - WCHAR szBuffer[MAX_PATH]; - WCHAR *Offset; - HICON hIcon = 0; - HRSRC hResource; - LPVOID pResource = NULL; - HGLOBAL hGlobal; - HINSTANCE hLibrary; - Offset = wcsrchr(name, L','); - - if (Offset) - { - IconIndex = _wtoi(Offset + 2); - *Offset = L'\0'; - name[MAX_PATH - 1] = L'\0'; - - if (ExpandEnvironmentStringsW(name, szBuffer, MAX_PATH)) - { - szBuffer[MAX_PATH - 1] = L'\0'; - hLibrary = LoadLibraryExW(szBuffer, NULL, LOAD_LIBRARY_AS_DATAFILE); - if (hLibrary) - { - hResource = FindResourceW(hLibrary, MAKEINTRESOURCEW(IconIndex), (LPCWSTR)RT_ICON); - if (hResource) - { - hGlobal = LoadResource(shell32_hInstance, hResource); - if (hGlobal) - { - pResource = LockResource(hGlobal); - if (pResource != NULL) - { - hIcon = CreateIconFromResource((LPBYTE)pResource, SizeofResource(shell32_hInstance, hResource), TRUE, 0x00030000); - TRACE("hIcon %p,- szBuffer %s IconIndex %u error %u icon %p hResource %p pResource %p\n", - hIcon, - debugstr_w(szBuffer), - IconIndex, - MAKEINTRESOURCEW(IconIndex), - hResource, - pResource); - SendDlgItemMessageW(hwndDlg, 14000, STM_SETICON, (WPARAM)hIcon, 0); - } - } - } - FreeLibrary(hLibrary); - } - } - } + /* file extension type */ + StringCbPrintfW(wszBuf, sizeof(wszBuf), L"%s (%s)", fi.szTypeName, pwszExt); + SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)wszBuf); } - RegCloseKey(hKey); - } - - /* file extension type */ - value[MAX_PATH - 1] = L'\0'; - lvalue = wcslen(value); - lname = wcslen(filext); - if (MAX_PATH - lvalue - lname - 3 > 0) - { - wcscat(value, L" ("); - wcscat(value, filext); - wcscat(value, L")"); - } - - SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)value); + } + + /* file icon */ + if (fi.hIcon) + SendDlgItemMessageW(hwndDlg, 14000, STM_SETICON, (WPARAM)fi.hIcon, 0); + else + ERR("No icon %ls\n", pwszPath); return TRUE; } @@ -389,41 +330,28 @@ */ static BOOL -SH_FileGeneralSetText(HWND hwndDlg, WCHAR *lpstr) -{ - int flength; - int plength; - WCHAR *lpdir; - WCHAR buff[MAX_PATH]; - - if (lpstr == NULL) - return FALSE; - - lpdir = wcsrchr(lpstr, L'\\'); /* find the last occurence of '\\' */ - - plength = wcslen(lpstr); - flength = wcslen(lpdir); - - if (lpdir) +SH_FileGeneralSetText(HWND hwndDlg, LPCWSTR pwszPath) +{ + if (pwszPath == NULL) + return FALSE; + + /* find the filename position */ + WCHAR *pwszFilename = PathFindFileNameW(pwszPath); + + if (pwszFilename > pwszPath) { /* location text field */ - wcsncpy(buff, lpstr, plength - flength); - buff[plength - flength] = UNICODE_NULL; - - if (wcslen(buff) == 2) - { - wcscat(buff, L"\\"); - } - - SetDlgItemTextW(hwndDlg, 14009, buff); - } - - if (flength > 1) - { - /* text filename field */ - wcsncpy(buff, &lpdir[1], flength); - SetDlgItemTextW(hwndDlg, 14001, buff); - } + WCHAR wszLocation[MAX_PATH]; + StringCchCopyNW(wszLocation, _countof(wszLocation), pwszPath, pwszFilename - pwszPath - 1); + + if (PathIsRootW(wszLocation)) + wcscat(wszLocation, L"\\"); + + SetDlgItemTextW(hwndDlg, 14009, wszLocation); + } + + /* text filename field */ + SetDlgItemTextW(hwndDlg, 14001, pwszFilename); return TRUE; } @@ -437,7 +365,7 @@ */ static BOOL -SH_FileGeneralSetFileSizeTime(HWND hwndDlg, WCHAR *lpfilename, PULARGE_INTEGER lpfilesize) +SH_FileGeneralSetFileSizeTime(HWND hwndDlg, LPCWSTR lpfilename, PULARGE_INTEGER lpfilesize) { BOOL result; HANDLE hFile; @@ -748,25 +676,26 @@ TRACE("WM_INITDIALOG hwnd %p lParam %p ppsplParam %S\n", hwndDlg, lParam, ppsp->lParam); - WCHAR *pwszFilename = (WCHAR *)ppsp->lParam; - - if (pwszFilename == NULL) + LPCWSTR pwszPath = (WCHAR *)ppsp->lParam; + if (pwszPath == NULL) { ERR("no filename\n"); break; } + + LPCWSTR pwszExt = PathFindExtensionW(pwszPath); /* set general text properties filename filelocation and icon */ - SH_FileGeneralSetText(hwndDlg, pwszFilename); + SH_FileGeneralSetText(hwndDlg, pwszPath); /* enumerate file extension from registry and application which opens it */ - SH_FileGeneralSetFileType(hwndDlg, wcsrchr(pwszFilename, L'.')); + SH_FileGeneralSetFileType(hwndDlg, pwszPath); /* set opens with */ - SH_FileGeneralOpensWith(hwndDlg, wcsrchr(pwszFilename, L'.')); + SH_FileGeneralOpensWith(hwndDlg, pwszExt); /* set file time create/modfied/accessed */ - SH_FileGeneralSetFileSizeTime(hwndDlg, pwszFilename, NULL); + SH_FileGeneralSetFileSizeTime(hwndDlg, pwszPath, NULL); return TRUE; } Modified: trunk/reactos/dll/win32/shell32/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/bg-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Ðид на Ñайла:", 14004, 8, 35, 50, 10 LTEXT "Ðапка", 14005, 68, 35, 160, 10 LTEXT "ÐÑÑÑо:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "РазмеÑ:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "СÑдÑÑжа:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "ÐÑваÑÑне Ñ:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "ÐеÑÑоположение:", 14008, 8, 72, 61, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "РазмеÑ:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "СÑздаден:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/ca-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ca-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/cs-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -203,7 +203,7 @@ LTEXT "Typ souboru:", 14004, 8, 35, 50, 10 LTEXT "Složka", 14005, 68, 35, 160, 10 LTEXT "UmÃstÄnÃ:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Velikost:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Obsahuje:", 14010, 8, 93, 45, 10 @@ -226,7 +226,7 @@ LTEXT "OtevÃrat v:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "UmÃstÄnÃ:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Velikost:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "VytvoÅeno:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/da-DK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/da-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -203,7 +203,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -227,7 +227,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/de-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -219,7 +219,7 @@ LTEXT "Ort:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "GröÃe:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Inhalt:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Erstellt:", 14014, 8, 118, 45, 10 @@ -241,7 +241,7 @@ LTEXT "Ãffnen mit:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Pfad:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "GröÃe:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Erstellt:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/el-GR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/el-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Îνοίγει με:", 14006, 10, 40, 50, 10 EDITTEXT 14007, 70, 40, 150, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "ÎÎÏη:", 14008, 10, 55, 45, 10 - EDITTEXT 14009, 70, 55, 200, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 70, 55, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "ÎÎγεθοÏ:",14010, 10, 65, 45, 10 EDITTEXT 14011, 70, 65, 150, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "ÎÎ·Î¼Î¹Î¿Ï Ïγήθηκε:", 14014, 10, 80, 65, 10 Modified: trunk/reactos/dll/win32/shell32/lang/en-GB.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/en-US.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/es-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/es-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -218,7 +218,7 @@ LTEXT "Tipo:", 14004, 8, 35, 50, 10 LTEXT "Carpeta de archivos", 14005, 68, 35, 160, 10 LTEXT "Ubicación:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Tamaño:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contiene:", 14010, 8, 93, 45, 10 @@ -241,7 +241,7 @@ LTEXT "Se abre con:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Ubicación:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Tamaño:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Creado:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/fi-FI.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fi-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/fr-FR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fr-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -219,7 +219,7 @@ LTEXT "Type de fichier :", 14004, 8, 35, 50, 10 LTEXT "Dossier", 14005, 68, 35, 160, 10 LTEXT "Localisation :", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Taille :", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contient :", 14010, 8, 93, 45, 10 @@ -242,7 +242,7 @@ LTEXT "Ouvrir avec :", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Localisation :", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Taille :", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Créé :", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/hu-HU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/hu-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -218,7 +218,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -241,7 +241,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/it-IT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/it-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -216,7 +216,7 @@ LTEXT "Tipo del file:", 14004, 8, 35, 50, 10 LTEXT "Cartella", 14005, 68, 35, 160, 10 LTEXT "Posizione:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Dimensione:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contenente:", 14010, 8, 93, 45, 10 @@ -239,7 +239,7 @@ LTEXT "Apri con:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Posizione:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Dimensione:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Creato:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/ja-JP.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ja-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "ãã¡ã¤ã«ã®ç¨®é¡:", 14004, 8, 35, 50, 10 LTEXT "ãã©ã«ã", 14005, 68, 35, 160, 10 LTEXT "å ´æ:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "ãµã¤ãº:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "å容ãµã¤ãº:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "å®è¡ããã°ã©ã :", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "å ´æ:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "ãµã¤ãº:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "ä½ææ¥æ:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/ko-KR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ko-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/nl-NL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/nl-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/no-NO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/no-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Filtype:", 14004, 8, 35, 50, 10 LTEXT "Mappe", 14005, 68, 35, 160, 10 LTEXT "Lokalisjon:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Størrelse:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Inneholder:", 14010, 8, 93, 45, 10 @@ -239,7 +239,7 @@ LTEXT "à pne med:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Lokalisjon:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Størrelse:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Opprettet:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/pl-PL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pl-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -223,7 +223,7 @@ LTEXT "Rozszerzenie:", 14004, 8, 35, 50, 10 LTEXT "Katalog", 14005, 68, 35, 160, 10 LTEXT "Lokalizacja:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Rozmiar:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Zawiera:", 14010, 8, 93, 45, 10 @@ -246,7 +246,7 @@ LTEXT "Otwierany za pomocÄ :", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Lokalizacja:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Rozmiar:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Utworzony:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/pt-BR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -217,7 +217,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -240,7 +240,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/pt-PT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -218,7 +218,7 @@ LTEXT "Tipo de ficheiro:", 14004, 8, 35, 50, 10 LTEXT "Pasta", 14005, 68, 35, 160, 10 LTEXT "Localização:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Tamanho:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contém:", 14010, 8, 93, 45, 10 @@ -241,7 +241,7 @@ LTEXT "Abre com::", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Localização:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Tamanho:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Criado:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/ro-RO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ro-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ro-RO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ro-RO.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -217,7 +217,7 @@ LTEXT "Tip fiÈier:", 14004, 8, 35, 50, 10 LTEXT "Dosar", 14005, 68, 35, 160, 10 LTEXT "LocaÈie:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "MÄrime:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "ConÈine:", 14010, 8, 93, 45, 10 @@ -241,7 +241,7 @@ LTEXT "Se deschide cu:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "LocaÈie:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "MÄrime:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Creat:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ru-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Тип Ñайла:", 14004, 8, 35, 50, 10 LTEXT "Ðапка", 14005, 68, 35, 160, 10 LTEXT "РаÑположение:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "РазмеÑ:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "СодеÑжиÑ:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "ÐÑиложение:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "РазмеÑение:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "РазмеÑ:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Создан:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/sk-SK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sk-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -221,7 +221,7 @@ LTEXT "Typ:", 14004, 8, 35, 50, 10 LTEXT "PrieÄinok", 14005, 68, 35, 160, 10 LTEXT "Umiestnenie:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "VeľkosÅ¥:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Obsahuje:", 14010, 8, 93, 45, 10 @@ -244,7 +244,7 @@ LTEXT "OtvoriÅ¥ programom:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Umiestnenie:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "VeľkosÅ¥:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Vytvorený:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/sl-SI.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sl-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/sv-SE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sv-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/tr-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/uk-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -217,7 +217,7 @@ LTEXT "Тип ÑайлÑ:", 14004, 8, 35, 50, 10 LTEXT "Тека", 14005, 68, 35, 160, 10 LTEXT "РозÑаÑÑваннÑ:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "РозмÑÑ:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "ÐÑÑÑиÑÑ:", 14010, 8, 93, 45, 10 @@ -240,7 +240,7 @@ LTEXT "ÐодаÑок:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "РозÑаÑÑваннÑ:", 14008, 8, 72, 50, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "РозмÑÑ:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "СÑвоÑено:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/zh-CN.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -204,7 +204,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -227,7 +227,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10 Modified: trunk/reactos/dll/win32/shell32/lang/zh-TW.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] Tue Jan 10 17:56:43 2012 @@ -215,7 +215,7 @@ LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Location:", 14006, 8, 53, 50, 10 - EDITTEXT 14007, 68, 53, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14008, 8, 72, 45, 10 EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Contains:", 14010, 8, 93, 45, 10 @@ -238,7 +238,7 @@ LTEXT "Opens with:", 14006, 8, 53, 50, 10 EDITTEXT 14007, 68, 53, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Location:", 14008, 8, 72, 45, 10 - EDITTEXT 14009, 68, 72, 315, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER + EDITTEXT 14009, 68, 72, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL LTEXT "Size:", 14010, 8, 93, 45, 10 EDITTEXT 14011, 68, 93, 160, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Created:", 14014, 8, 118, 45, 10
12 years, 11 months
1
0
0
0
[rharabien] 54904: [SHELL32] - Make File Properties code safer and better - Change version information when it user selects item in listbox (in previous version user had to double click) - Show fil...
by rharabien@svn.reactos.org
Author: rharabien Date: Tue Jan 10 16:53:46 2012 New Revision: 54904 URL:
http://svn.reactos.org/svn/reactos?rev=54904&view=rev
Log: [SHELL32] - Make File Properties code safer and better - Change version information when it user selects item in listbox (in previous version user had to double click) - Show filename only in Open With dialog. Part of patch by EDIJS (#6772) Modified: trunk/reactos/dll/win32/shell32/fprop.cpp trunk/reactos/dll/win32/shell32/openwithmenu.cpp Modified: trunk/reactos/dll/win32/shell32/fprop.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/fprop.cp…
============================================================================== --- trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] Tue Jan 10 16:53:46 2012 @@ -32,7 +32,8 @@ EXTERN_C HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj); -static LONG SH_GetAssociatedApplication(WCHAR *pwszFileExt, WCHAR *pwszAssocApp) +static LONG +SH_GetAssociatedApplication(WCHAR *pwszFileExt, WCHAR *pwszAssocApp) { WCHAR wszBuf[MAX_PATH] = {0}; LONG result; @@ -59,7 +60,8 @@ return result; } -static LONG SH_FileGeneralOpensWith(HWND hwndDlg, WCHAR *fileext) +static LONG +SH_FileGeneralOpensWith(HWND hwndDlg, WCHAR *fileext) { LONG result; WCHAR wAppName[MAX_PATH] = {0}; @@ -89,7 +91,8 @@ * */ -LPWSTR SH_FormatFileSizeWithBytes(PULARGE_INTEGER lpQwSize, LPWSTR pszBuf, UINT cchBuf) +LPWSTR +SH_FormatFileSizeWithBytes(PULARGE_INTEGER lpQwSize, LPWSTR pszBuf, UINT cchBuf) { NUMBERFMTW nf; WCHAR szNumber[24]; @@ -234,7 +237,7 @@ * find executable name from registry, retrieve description from executable */ -BOOL +static BOOL SH_FileGeneralSetFileType(HWND hwndDlg, WCHAR *filext) { WCHAR name[MAX_PATH]; @@ -356,7 +359,7 @@ * formats a given LPFILETIME struct into readable user format */ -BOOL +static BOOL SHFileGeneralGetFileTimeString(LPFILETIME lpFileTime, WCHAR *lpResult) { FILETIME ft; @@ -385,7 +388,7 @@ * */ -BOOL +static BOOL SH_FileGeneralSetText(HWND hwndDlg, WCHAR *lpstr) { int flength; @@ -433,7 +436,7 @@ * */ -BOOL +static BOOL SH_FileGeneralSetFileSizeTime(HWND hwndDlg, WCHAR *lpfilename, PULARGE_INTEGER lpfilesize) { BOOL result; @@ -514,19 +517,20 @@ * */ -BOOL -SH_FileVersionQuerySetText(HWND hwndDlg, DWORD dlgId, LPVOID pInfo, WCHAR *text, WCHAR **resptr) -{ - UINT reslen; - - if (hwndDlg == NULL || resptr == NULL || text == NULL) - return FALSE; - - if (VerQueryValueW(pInfo, text, (LPVOID *)resptr, &reslen)) +static BOOL +SH_FileVersionQuerySetText(HWND hwndDlg, DWORD idCtrl, LPVOID pInfo, LPCWSTR pwszProp) +{ + UINT cbResult; + WCHAR *pwszResult = NULL; + + if (hwndDlg == NULL || pwszProp == NULL) + return FALSE; + + if (VerQueryValueW(pInfo, pwszProp, (LPVOID *)&pwszResult, &cbResult)) { /* file description property */ - TRACE("%s :: %s\n", debugstr_w(text), debugstr_w(*resptr)); - SetDlgItemTextW(hwndDlg, dlgId, *resptr); + TRACE("%s :: %s\n", debugstr_w(pwszProp), debugstr_w(pwszResult)); + SetDlgItemTextW(hwndDlg, idCtrl, pwszResult); return TRUE; } @@ -541,7 +545,7 @@ * */ -BOOL +static BOOL SH_FileVersionQuerySetListText(HWND hwndDlg, LPVOID pInfo, LPCWSTR pwszProp, WORD wLang, WORD wCode) { HWND hDlgCtrl; @@ -576,86 +580,82 @@ * sets all file version properties in dialog */ -BOOL +static BOOL SH_FileVersionInitialize(HWND hwndDlg, LPCWSTR pwszFilename) { LPVOID pBuf; - DWORD versize; - DWORD handle; - LPVOID info = NULL; - UINT infolen; + DWORD cbBuf; + VS_FIXEDFILEINFO *pInfo = NULL; + UINT cBytes; WCHAR buff[256]; HWND hDlgCtrl; - WORD lang = 0; - WORD code = 0; - LPLANGANDCODEPAGE lplangcode; - WCHAR *str; + WORD wLang = 0, wCode = 0; + LPLANGANDCODEPAGE lpLangCode; if (pwszFilename == 0) return FALSE; - if (!(versize = GetFileVersionInfoSizeW(pwszFilename, &handle))) + if (!(cbBuf = GetFileVersionInfoSizeW(pwszFilename, NULL))) { WARN("GetFileVersionInfoSize failed\n"); return FALSE; } - if (!(pBuf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, versize))) - { - WARN("HeapAlloc failed bytes %x\n", versize); - return FALSE; - } - - if (!GetFileVersionInfoW(pwszFilename, handle, versize, pBuf)) + if (!(pBuf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cbBuf))) + { + WARN("HeapAlloc failed bytes %x\n", cbBuf); + return FALSE; + } + + if (!GetFileVersionInfoW(pwszFilename, 0, cbBuf, pBuf)) { HeapFree(GetProcessHeap(), 0, pBuf); return FALSE; } - if (VerQueryValueW(pBuf, L"\\", &info, &infolen)) - { - VS_FIXEDFILEINFO *inf = (VS_FIXEDFILEINFO *)info; - swprintf(buff, L"%u.%u.%u.%u", HIWORD(inf->dwFileVersionMS), - LOWORD(inf->dwFileVersionMS), - HIWORD(inf->dwFileVersionLS), - LOWORD(inf->dwFileVersionLS)); - TRACE("MS %x LS %x res %s \n", inf->dwFileVersionMS, inf->dwFileVersionLS, debugstr_w(buff)); + if (VerQueryValueW(pBuf, L"\\", (PVOID*)&pInfo, &cBytes)) + { + swprintf(buff, L"%u.%u.%u.%u", HIWORD(pInfo->dwFileVersionMS), + LOWORD(pInfo->dwFileVersionMS), + HIWORD(pInfo->dwFileVersionLS), + LOWORD(pInfo->dwFileVersionLS)); + TRACE("MS %x LS %x res %s \n", pInfo->dwFileVersionMS, pInfo->dwFileVersionLS, debugstr_w(buff)); SetDlgItemTextW(hwndDlg, 14001, buff); } - if (VerQueryValueW(pBuf, L"VarFileInfo\\Translation", (LPVOID *)&lplangcode, &infolen)) + if (VerQueryValueW(pBuf, L"VarFileInfo\\Translation", (LPVOID *)&lpLangCode, &cBytes)) { /* FIXME find language from current locale / if not available, * default to english * for now default to first available language */ - lang = lplangcode->lang; - code = lplangcode->code; - } - - swprintf(buff, L"\\StringFileInfo\\%04x%04x\\FileDescription", lang, code); - SH_FileVersionQuerySetText(hwndDlg, 14003, pBuf, buff, &str); - - swprintf(buff, L"\\StringFileInfo\\%04x%04x\\LegalCopyright", lang, code); - SH_FileVersionQuerySetText(hwndDlg, 14005, pBuf, buff, &str); + wLang = lpLangCode->lang; + wCode = lpLangCode->code; + } + + swprintf(buff, L"\\StringFileInfo\\%04x%04x\\FileDescription", wLang, wCode); + SH_FileVersionQuerySetText(hwndDlg, 14003, pBuf, buff); + + swprintf(buff, L"\\StringFileInfo\\%04x%04x\\LegalCopyright", wLang, wCode); + SH_FileVersionQuerySetText(hwndDlg, 14005, pBuf, buff); /* listbox properties */ - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"CompanyName", lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"FileVersion", lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"InternalName", lang, code); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"CompanyName", wLang, wCode); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"FileVersion", wLang, wCode); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"InternalName", wLang, wCode); /* FIXME insert language identifier */ - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"OriginalFilename", lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"ProductName", lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"ProductVersion", lang, code); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"OriginalFilename", wLang, wCode); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"ProductName", wLang, wCode); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"ProductVersion", wLang, wCode); SetWindowLongPtr(hwndDlg, DWL_USER, (LONG_PTR)pBuf); /* select first item */ hDlgCtrl = GetDlgItem(hwndDlg, 14009); SendMessageW(hDlgCtrl, LB_SETCURSEL, 0, 0); - str = (WCHAR *) SendMessageW(hDlgCtrl, LB_GETITEMDATA, (WPARAM)0, (LPARAM)NULL); - SetDlgItemTextW(hwndDlg, 14010, str); + LPCWSTR pwszText = (WCHAR *)SendMessageW(hDlgCtrl, LB_GETITEMDATA, (WPARAM)0, (LPARAM)NULL); + SetDlgItemTextW(hwndDlg, 14010, pwszText); return TRUE; } @@ -667,64 +667,55 @@ * wnd proc of 'Version' property sheet page */ -INT_PTR -CALLBACK +INT_PTR CALLBACK SH_FileVersionDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - LPPROPSHEETPAGE ppsp; - WCHAR *lpstr; - LPVOID buf; - switch (uMsg) { case WM_INITDIALOG: - ppsp = (LPPROPSHEETPAGE)lParam; + { + LPPROPSHEETPAGE ppsp = (LPPROPSHEETPAGE)lParam; if (ppsp == NULL) break; TRACE("WM_INITDIALOG hwnd %p lParam %p ppsplParam %x\n", hwndDlg, lParam, ppsp->lParam); - lpstr = (WCHAR *)ppsp->lParam; - - if (lpstr == NULL) + LPCWSTR pwszFilename = (LPCWSTR)ppsp->lParam; + + if (pwszFilename == NULL) break; - return SH_FileVersionInitialize(hwndDlg, lpstr); - + return SH_FileVersionInitialize(hwndDlg, pwszFilename); + } case WM_COMMAND: - if (LOWORD(wParam) == 14009 && HIWORD(wParam) == LBN_DBLCLK) + if (LOWORD(wParam) == 14009 && HIWORD(wParam) == LBN_SELCHANGE) { - HWND hDlgCtrl; - LRESULT lresult; - WCHAR *str; - - hDlgCtrl = GetDlgItem(hwndDlg, 14009); - lresult = SendMessageW(hDlgCtrl, LB_GETCURSEL, (WPARAM)NULL, (LPARAM)NULL); - - if (lresult == LB_ERR) + HWND hDlgCtrl = (HWND)lParam; + + LRESULT Index = SendMessageW(hDlgCtrl, LB_GETCURSEL, (WPARAM)NULL, (LPARAM)NULL); + if (Index == LB_ERR) break; - str = (WCHAR *)SendMessageW(hDlgCtrl, LB_GETITEMDATA, (WPARAM)lresult, (LPARAM)NULL); - - if (str == NULL) + LPCWSTR pwszData = (LPCWSTR)SendMessageW(hDlgCtrl, LB_GETITEMDATA, (WPARAM)Index, (LPARAM)NULL); + if (pwszData == NULL) break; - TRACE("hDlgCtrl %x string %s \n", hDlgCtrl, debugstr_w(str)); - SetDlgItemTextW(hwndDlg, 14010, str); + TRACE("hDlgCtrl %x string %s\n", hDlgCtrl, debugstr_w(pwszData)); + SetDlgItemTextW(hwndDlg, 14010, pwszData); return TRUE; } break; - case WM_DESTROY: - buf = (LPVOID) GetWindowLongPtr(hwndDlg, DWL_USER); - HeapFree(GetProcessHeap(), 0, buf); + { + LPVOID pBuf = (LPVOID)GetWindowLongPtr(hwndDlg, DWL_USER); + HeapFree(GetProcessHeap(), 0, pBuf); break; - + } default: break; } @@ -740,48 +731,45 @@ * */ -INT_PTR -CALLBACK +INT_PTR CALLBACK SH_FileGeneralDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - LPPROPSHEETPAGEW ppsp; - WCHAR *lpstr; - switch (uMsg) { case WM_INITDIALOG: - ppsp = (LPPROPSHEETPAGEW)lParam; + { + LPPROPSHEETPAGEW ppsp = (LPPROPSHEETPAGEW)lParam; if (ppsp == NULL) break; TRACE("WM_INITDIALOG hwnd %p lParam %p ppsplParam %S\n", hwndDlg, lParam, ppsp->lParam); - lpstr = (WCHAR *)ppsp->lParam; - - if (lpstr == NULL) + WCHAR *pwszFilename = (WCHAR *)ppsp->lParam; + + if (pwszFilename == NULL) { ERR("no filename\n"); break; } /* set general text properties filename filelocation and icon */ - SH_FileGeneralSetText(hwndDlg, lpstr); + SH_FileGeneralSetText(hwndDlg, pwszFilename); /* enumerate file extension from registry and application which opens it */ - SH_FileGeneralSetFileType(hwndDlg, wcsrchr(lpstr, L'.')); + SH_FileGeneralSetFileType(hwndDlg, wcsrchr(pwszFilename, L'.')); /* set opens with */ - SH_FileGeneralOpensWith(hwndDlg, wcsrchr(lpstr, L'.')); + SH_FileGeneralOpensWith(hwndDlg, wcsrchr(pwszFilename, L'.')); /* set file time create/modfied/accessed */ - SH_FileGeneralSetFileSizeTime(hwndDlg, lpstr, NULL); + SH_FileGeneralSetFileSizeTime(hwndDlg, pwszFilename, NULL); return TRUE; - + } default: break; } @@ -789,8 +777,7 @@ return FALSE; } -BOOL -CALLBACK +static BOOL CALLBACK AddShellPropSheetExCallback(HPROPSHEETPAGE hPage, LPARAM lParam) { PROPSHEETHEADERW *pInfo = (PROPSHEETHEADERW *)lParam; @@ -804,48 +791,33 @@ return FALSE; } -int -EnumPropSheetExt(LPWSTR wFileName, PROPSHEETHEADERW *pInfo, int NumPages, HPSXA *phpsxa, IDataObject *pDataObj) -{ - WCHAR szName[MAX_PATH] = { 0 }; - WCHAR *pOffset; - UINT Length; +static int +EnumPropSheetExt(LPCWSTR pwszPath, PROPSHEETHEADERW *pInfo, int NumPages, HPSXA *phpsxa, IDataObject *pDataObj) +{ + WCHAR wszName[MAX_PATH]; + WCHAR *pwszExt; + UINT cchPath; DWORD dwName; int Pages; CLSID clsid; - pOffset = wcsrchr(wFileName, L'.'); - - if (!pOffset) - { - Length = wcslen(szName); - - if (Length + 6 > sizeof(szName) / sizeof(szName[0])) - return 0; - - if (CLSIDFromString(wFileName, &clsid) == NOERROR) - { - wcscpy(szName, L"CLSID\\"); - wcscpy(&szName[6], wFileName); - } + pwszExt = PathFindExtensionW(pwszPath); + + if (!pwszExt[0]) + { + cchPath = wcslen(pwszPath); + + if (CLSIDFromString(pwszPath, &clsid) == NOERROR) + StringCbPrintfW(wszName, sizeof(wszName), L"CLSID\\%s", pwszPath); else - { - wcscpy(szName, wFileName); - } + StringCbCopyW(wszName, sizeof(wszName), pwszPath); } else - { - Length = wcslen(pOffset); - - if (Length >= sizeof(szName) / sizeof(szName[0])) - return 0; - - wcscpy(szName, pOffset); - } - - TRACE("EnumPropSheetExt szName %s\n", debugstr_w(szName)); - - phpsxa[0] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages, pDataObj); + StringCbCopyW(wszName, sizeof(wszName), pwszExt); + + TRACE("EnumPropSheetExt wszName %s\n", debugstr_w(wszName)); + + phpsxa[0] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, wszName, NumPages, pDataObj); Pages = SHAddFromPropSheetExtArray(phpsxa[0], AddShellPropSheetExCallback, (LPARAM)pInfo); phpsxa[1] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, L"*", NumPages - Pages, pDataObj); @@ -853,16 +825,15 @@ phpsxa[2] = NULL; - if (pOffset) + if (pwszExt) { /* try to load property sheet handlers from prog id key */ - dwName = sizeof(szName); - - if (RegGetValueW(HKEY_CLASSES_ROOT, pOffset, NULL, RRF_RT_REG_SZ, NULL, szName, &dwName) == ERROR_SUCCESS) + dwName = sizeof(wszName); + + if (RegGetValueW(HKEY_CLASSES_ROOT, pwszExt, L"", RRF_RT_REG_SZ, NULL, wszName, &dwName) == ERROR_SUCCESS) { - TRACE("EnumPropSheetExt szName %s, pOffset %s\n", debugstr_w(szName), debugstr_w(pOffset)); - szName[(sizeof(szName) / sizeof(WCHAR)) - 1] = L'\0'; - phpsxa[2] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages - Pages, pDataObj); + TRACE("EnumPropSheetExt wszName %s, pwszExt %s\n", debugstr_w(wszName), debugstr_w(pwszExt)); + phpsxa[2] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, wszName, NumPages - Pages, pDataObj); Pages += SHAddFromPropSheetExtArray(phpsxa[2], AddShellPropSheetExCallback, (LPARAM)pInfo); } } @@ -876,7 +847,7 @@ * * called from ShellExecuteExW32 * - * pwszPath contains (quoted) path of folder/file + * pwszPath contains path of folder/file * * TODO: provide button change application type if file has registered type * make filename field editable and apply changes to filename on close @@ -885,93 +856,63 @@ BOOL SH_ShowPropertiesDialog(LPCWSTR pwszPath, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *apidl) { - PROPSHEETHEADERW Info; + HRESULT hr; HPROPSHEETPAGE hppages[MAX_PROPERTY_SHEET_PAGE]; - WCHAR wFileName[MAX_PATH]; - DWORD dwHandle = 0; - WCHAR *pFileName; - HPSXA hpsxa[3]; - INT_PTR res; - CComPtr<IDataObject> pDataObj; - HRESULT hResult; - DWORD wLength; + HPSXA hpsxa[3] = {}; TRACE("SH_ShowPropertiesDialog entered filename %s\n", debugstr_w(pwszPath)); - if (pwszPath == NULL) - return FALSE; - - if (!wcslen(pwszPath)) + if (pwszPath == NULL || !wcslen(pwszPath)) return FALSE; memset(hppages, 0x0, sizeof(HPROPSHEETPAGE) * MAX_PROPERTY_SHEET_PAGE); - if (pwszPath[0] == L'"') - { - /* remove quotes from pwszPath */ - LPCWSTR src = pwszPath + 1; - LPWSTR dst = wFileName; - - while (*src && *src != L'"') - *dst++ = *src++; - - *dst = L'\0'; - } - else - { - wcscpy(wFileName, pwszPath); - } + /* Make a copy of path */ + WCHAR wszPath[MAX_PATH]; + StringCbCopyW(wszPath, sizeof(wszPath), pwszPath); // // get length // - wLength = wcslen(wFileName); - if (wFileName[wLength-1] == L'\\' && wLength > 3) + INT cchPath = wcslen(wszPath); + if (cchPath > 3 && wszPath[cchPath-1] == L'\\') { // // remove trailing \\ at the end of path // - wFileName[wLength-1] = L'\0'; - } - - if (PathIsRootW(wFileName)) - { - return SH_ShowDriveProperties(wFileName, pidlFolder, apidl); - } - - if (PathIsDirectoryW(wFileName)) - { - return SH_ShowFolderProperties(wFileName, pidlFolder, apidl); - } - - - pFileName = wcsrchr(wFileName, L'\\'); - - if (!pFileName) - pFileName = wFileName; - else - pFileName++; - + wszPath[cchPath-1] = L'\0'; + } + + if (PathIsRootW(wszPath)) + return SH_ShowDriveProperties(wszPath, pidlFolder, apidl); + + if (PathIsDirectoryW(wszPath)) + return SH_ShowFolderProperties(wszPath, pidlFolder, apidl); + + LPCWSTR pwszFilename = PathFindFileNameW(wszPath); + + PROPSHEETHEADERW Info; memset(&Info, 0x0, sizeof(PROPSHEETHEADERW)); Info.dwSize = sizeof(PROPSHEETHEADERW); Info.dwFlags = PSH_NOCONTEXTHELP | PSH_PROPTITLE; Info.phpage = hppages; - Info.pszCaption = pFileName; + Info.pszCaption = pwszFilename; hppages[Info.nPages] = SH_CreatePropertySheetPage("SHELL_FILE_GENERAL_DLG", SH_FileGeneralDlgProc, - (LPARAM)wFileName, + (LPARAM)wszPath, NULL); if (hppages[Info.nPages]) Info.nPages++; - hResult = SHCreateDataObject(pidlFolder, 1, apidl, NULL, IID_IDataObject, (LPVOID *)&pDataObj); - - if (hResult == S_OK) - { - if (!EnumPropSheetExt(wFileName, &Info, MAX_PROPERTY_SHEET_PAGE - 1, hpsxa, pDataObj)) + CComPtr<IDataObject> pDataObj; + hr = SHCreateDataObject(pidlFolder, 1, apidl, NULL, IID_IDataObject, (LPVOID *)&pDataObj); + + if (hr == S_OK) + { + if (!EnumPropSheetExt(wszPath, &Info, MAX_PROPERTY_SHEET_PAGE - 1, hpsxa, pDataObj)) { hpsxa[0] = NULL; hpsxa[1] = NULL; @@ -979,20 +920,20 @@ } } - if (GetFileVersionInfoSizeW(pwszPath, &dwHandle)) + if (GetFileVersionInfoSizeW(wszPath, NULL)) { hppages[Info.nPages] = SH_CreatePropertySheetPage("SHELL_FILE_VERSION_DLG", SH_FileVersionDlgProc, - (LPARAM)wFileName, + (LPARAM)wszPath, NULL); if (hppages[Info.nPages]) Info.nPages++; } - res = PropertySheetW(&Info); - - if (hResult == S_OK) + INT_PTR res = PropertySheetW(&Info); + + if (hr == S_OK) { SHDestroyPropSheetExtArray(hpsxa[0]); SHDestroyPropSheetExtArray(hpsxa[1]); Modified: trunk/reactos/dll/win32/shell32/openwithmenu.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/openwith…
============================================================================== --- trunk/reactos/dll/win32/shell32/openwithmenu.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/openwithmenu.cpp [iso-8859-1] Tue Jan 10 16:53:46 2012 @@ -909,7 +909,7 @@ /* Add filename to label */ cchBuf = GetDlgItemTextW(hwnd, 14001, wszBuf, _countof(wszBuf)); - StringCchCopyW(wszBuf + cchBuf, _countof(wszBuf) - cchBuf, m_pInfo->pcszFile); + StringCchCopyW(wszBuf + cchBuf, _countof(wszBuf) - cchBuf, PathFindFileNameW(m_pInfo->pcszFile)); SetDlgItemTextW(hwnd, 14001, wszBuf); /* Load applications from registry */
12 years, 11 months
1
0
0
0
[rharabien] 54903: [SHELL32] - Formatting + changed few declarations.
by rharabien@svn.reactos.org
Author: rharabien Date: Tue Jan 10 16:01:13 2012 New Revision: 54903 URL:
http://svn.reactos.org/svn/reactos?rev=54903&view=rev
Log: [SHELL32] - Formatting + changed few declarations. Modified: trunk/reactos/dll/win32/shell32/fprop.cpp trunk/reactos/dll/win32/shell32/shell32_main.h Modified: trunk/reactos/dll/win32/shell32/fprop.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/fprop.cp…
============================================================================== --- trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/fprop.cpp [iso-8859-1] Tue Jan 10 16:01:13 2012 @@ -49,7 +49,7 @@ notepad.exe "%1" %systemroot%\notepad.exe "%1" etc - Maybe there is code to do that somewhere? + Maybe there is code to do that somewhere? dll\win32\shell32\shlexec.c for example? */ } @@ -64,13 +64,13 @@ LONG result; WCHAR wAppName[MAX_PATH] = {0}; WCHAR wAssocApp[MAX_PATH] = {0}; - + result = SH_GetAssociatedApplication(fileext, wAssocApp); - + if (result == ERROR_SUCCESS) { _wsplitpath(wAssocApp, NULL, NULL, wAppName, NULL); - + SetDlgItemTextW(hwndDlg, 14007, wAppName); } @@ -112,8 +112,8 @@ swprintf(szNumber, L"%I64u", lpQwSize->QuadPart); // Get system strings for decimal and thousand separators. - GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, szDecimalSep, sizeof(szDecimalSep)/sizeof(*szDecimalSep)); - GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, szThousandSep, sizeof(szThousandSep)/sizeof(*szThousandSep)); + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, szDecimalSep, sizeof(szDecimalSep) / sizeof(*szDecimalSep)); + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, szThousandSep, sizeof(szThousandSep) / sizeof(*szThousandSep)); // Initialize format for printing the number in bytes ZeroMemory(&nf, sizeof(nf)); @@ -128,7 +128,7 @@ Len = GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SGROUPING, szGrouping, - sizeof(szGrouping)/sizeof(*szGrouping)); + sizeof(szGrouping) / sizeof(*szGrouping)); // Convert grouping specs from string to integer for (i = 0; i < Len; i++) @@ -189,16 +189,14 @@ */ HPROPSHEETPAGE -SH_CreatePropertySheetPage(LPCSTR resname, DLGPROC dlgproc, LPARAM lParam, LPWSTR szTitle) +SH_CreatePropertySheetPage(LPCSTR pszResName, DLGPROC pfnDlgProc, LPARAM lParam, LPWSTR pwszTitle) { HRSRC hRes; - LPVOID lpsztemplate; - PROPSHEETPAGEW ppage; - - if (resname == NULL) + + if (pszResName == NULL) return (HPROPSHEETPAGE)0; - hRes = FindResourceA(shell32_hInstance, resname, (LPSTR)RT_DIALOG); + hRes = FindResourceA(shell32_hInstance, pszResName, (LPSTR)RT_DIALOG); if (hRes == NULL) { @@ -206,25 +204,24 @@ return (HPROPSHEETPAGE)0; } - lpsztemplate = LoadResource(shell32_hInstance, hRes); - - if (lpsztemplate == NULL) + LPVOID pTemplate = LoadResource(shell32_hInstance, hRes); + + if (pTemplate == NULL) return (HPROPSHEETPAGE)0; - memset(&ppage, 0x0, sizeof(PROPSHEETPAGEW)); - ppage.dwSize = sizeof(PROPSHEETPAGEW); - ppage.dwFlags = PSP_DLGINDIRECT; - ppage.pResource = (DLGTEMPLATE *)lpsztemplate; - ppage.pfnDlgProc = dlgproc; - ppage.lParam = lParam; - ppage.pszTitle = szTitle; - - if (szTitle) - { - ppage.dwFlags |= PSP_USETITLE; - } - - return CreatePropertySheetPageW(&ppage); + PROPSHEETPAGEW Page; + memset(&Page, 0x0, sizeof(PROPSHEETPAGEW)); + Page.dwSize = sizeof(PROPSHEETPAGEW); + Page.dwFlags = PSP_DLGINDIRECT; + Page.pResource = (DLGTEMPLATE *)pTemplate; + Page.pfnDlgProc = pfnDlgProc; + Page.lParam = lParam; + Page.pszTitle = pwszTitle; + + if (pwszTitle) + Page.dwFlags |= PSP_USETITLE; + + return CreatePropertySheetPageW(&Page); } /************************************************************************* @@ -364,10 +361,6 @@ { FILETIME ft; SYSTEMTIME dt; - WORD wYear; - static const WCHAR wFormat[] = { - '%', '0', '2', 'd', '/', '%', '0', '2', 'd', '/', '%', '0', '4', 'd', - ' ', ' ', '%', '0', '2', 'd', ':', '%', '0', '2', 'u', 0 }; if (lpFileTime == NULL || lpResult == NULL) return FALSE; @@ -377,10 +370,8 @@ FileTimeToSystemTime(&ft, &dt); - wYear = dt.wYear; - /* ddmmyy */ - swprintf(lpResult, wFormat, dt.wDay, dt.wMonth, wYear, dt.wHour, dt.wMinute); + swprintf(lpResult, L"%02hu/%02hu/%04hu %02hu:%02hu", dt.wDay, dt.wMonth, dt.wYear, dt.wHour, dt.wMinute); TRACE("result %s\n", debugstr_w(lpResult)); return TRUE; @@ -405,7 +396,7 @@ if (lpstr == NULL) return FALSE; - lpdir = wcsrchr(lpstr, '\\'); /* find the last occurence of '\\' */ + lpdir = wcsrchr(lpstr, L'\\'); /* find the last occurence of '\\' */ plength = wcslen(lpstr); flength = wcslen(lpdir); @@ -551,30 +542,27 @@ */ BOOL -SH_FileVersionQuerySetListText(HWND hwndDlg, LPVOID pInfo, const WCHAR *text, WCHAR **resptr, WORD lang, WORD code) -{ - UINT reslen; +SH_FileVersionQuerySetListText(HWND hwndDlg, LPVOID pInfo, LPCWSTR pwszProp, WORD wLang, WORD wCode) +{ HWND hDlgCtrl; - UINT index; - static const WCHAR wFormat[] = { - '\\', 'S', 't', 'r', 'i', 'n', 'g', 'F', 'i', 'l', 'e', 'I', 'n', 'f', 'o', - '\\', '%', '0', '4', 'x', '%', '0', '4', 'x', '\\', '%', 's', 0 }; - WCHAR buff[256]; - - TRACE("text %s, resptr %p hwndDlg %p\n", debugstr_w(text), resptr, hwndDlg); - - if (hwndDlg == NULL || resptr == NULL || text == NULL) - return FALSE; - - swprintf(buff, wFormat, lang, code, text); - - if (VerQueryValueW(pInfo, buff, (LPVOID *)resptr, &reslen)) + UINT Index; + UINT cbResult; + WCHAR buff[256], *pwszResult = NULL; + + TRACE("pwszProp %s, hwndDlg %p\n", debugstr_w(pwszProp), hwndDlg); + + if (hwndDlg == NULL || pwszProp == NULL) + return FALSE; + + swprintf(buff, L"\\StringFileInfo\\%04x%04x\\%s", wLang, wCode, pwszProp); + + if (VerQueryValueW(pInfo, buff, (LPVOID *)&pwszResult, &cbResult)) { /* listbox name property */ hDlgCtrl = GetDlgItem(hwndDlg, 14009); - TRACE("%s :: %s\n", debugstr_w(text), debugstr_w(*resptr)); - index = SendMessageW(hDlgCtrl, LB_ADDSTRING, (WPARAM)-1, (LPARAM)text); - SendMessageW(hDlgCtrl, LB_SETITEMDATA, (WPARAM)index, (LPARAM)(WCHAR *)*resptr); + TRACE("%s :: %s\n", debugstr_w(pwszProp), debugstr_w(pwszResult)); + Index = SendMessageW(hDlgCtrl, LB_ADDSTRING, (WPARAM) -1, (LPARAM)pwszProp); + SendMessageW(hDlgCtrl, LB_SETITEMDATA, (WPARAM)Index, (LPARAM)(WCHAR *)pwszResult); return TRUE; } @@ -589,7 +577,7 @@ */ BOOL -SH_FileVersionInitialize(HWND hwndDlg, WCHAR *lpfilename) +SH_FileVersionInitialize(HWND hwndDlg, LPCWSTR pwszFilename) { LPVOID pBuf; DWORD versize; @@ -602,37 +590,11 @@ WORD code = 0; LPLANGANDCODEPAGE lplangcode; WCHAR *str; - static const WCHAR wVersionFormat[] = { - '%', 'd', '.', '%', 'd', '.', '%', 'd', '.', '%', 'd', 0 }; - static const WCHAR wFileDescriptionFormat[] = { - '\\', 'S', 't', 'r', 'i', 'n', 'g', 'F', 'i', 'l', 'e', 'I', 'n', 'f', 'o', - '\\', '%', '0', '4', 'x', '%', '0', '4', 'x', - '\\', 'F', 'i', 'l', 'e', 'D', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', 0 }; - static const WCHAR wLegalCopyrightFormat[] = { - '\\', 'S', 't', 'r', 'i', 'n', 'g', 'F', 'i', 'l', 'e', 'I', 'n', 'f', 'o', - '\\', '%', '0', '4', 'x', '%', '0', '4', 'x', - '\\', 'L', 'e', 'g', 'a', 'l', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', 0 }; - static const WCHAR wTranslation[] = { - 'V', 'a', 'r', 'F', 'i', 'l', 'e', 'I', 'n', 'f', 'o', - '\\', 'T', 'r', 'a', 'n', 's', 'l', 'a', 't', 'i', 'o', 'n', 0 }; - static const WCHAR wCompanyName[] = { - 'C', 'o', 'm', 'p', 'a', 'n', 'y', 'N', 'a', 'm', 'e', 0 }; - static const WCHAR wFileVersion[] = { - 'F', 'i', 'l', 'e', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0 }; - static const WCHAR wInternalName[] = { - 'I', 'n', 't', 'e', 'r', 'n', 'a', 'l', 'N', 'a', 'm', 'e', 0 }; - static const WCHAR wOriginalFilename[] = { - 'O', 'r', 'i', 'g', 'i', 'n', 'a', 'l', 'F', 'i', 'l', 'e', 'n', 'a', 'm', 'e', 0 }; - static const WCHAR wProductName[] = { - 'P', 'r', 'o', 'd', 'u', 'c', 't', 'N', 'a', 'm', 'e', 0 }; - static const WCHAR wProductVersion[] = { - 'P', 'r', 'o', 'd', 'u', 'c', 't', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0 }; - static const WCHAR wSlash[] = { '\\', 0 }; - - if (lpfilename == 0) - return FALSE; - - if (!(versize = GetFileVersionInfoSizeW(lpfilename, &handle))) + + if (pwszFilename == 0) + return FALSE; + + if (!(versize = GetFileVersionInfoSizeW(pwszFilename, &handle))) { WARN("GetFileVersionInfoSize failed\n"); return FALSE; @@ -644,24 +606,24 @@ return FALSE; } - if (!GetFileVersionInfoW(lpfilename, handle, versize, pBuf)) + if (!GetFileVersionInfoW(pwszFilename, handle, versize, pBuf)) { HeapFree(GetProcessHeap(), 0, pBuf); return FALSE; } - if (VerQueryValueW(pBuf, const_cast<LPWSTR>(wSlash), &info, &infolen)) + if (VerQueryValueW(pBuf, L"\\", &info, &infolen)) { VS_FIXEDFILEINFO *inf = (VS_FIXEDFILEINFO *)info; - swprintf(buff, wVersionFormat, HIWORD(inf->dwFileVersionMS), - LOWORD(inf->dwFileVersionMS), - HIWORD(inf->dwFileVersionLS), - LOWORD(inf->dwFileVersionLS)); + swprintf(buff, L"%u.%u.%u.%u", HIWORD(inf->dwFileVersionMS), + LOWORD(inf->dwFileVersionMS), + HIWORD(inf->dwFileVersionLS), + LOWORD(inf->dwFileVersionLS)); TRACE("MS %x LS %x res %s \n", inf->dwFileVersionMS, inf->dwFileVersionLS, debugstr_w(buff)); SetDlgItemTextW(hwndDlg, 14001, buff); } - if (VerQueryValueW(pBuf, const_cast<LPWSTR>(wTranslation), (LPVOID *)&lplangcode, &infolen)) + if (VerQueryValueW(pBuf, L"VarFileInfo\\Translation", (LPVOID *)&lplangcode, &infolen)) { /* FIXME find language from current locale / if not available, * default to english @@ -671,22 +633,22 @@ code = lplangcode->code; } - swprintf(buff, wFileDescriptionFormat, lang, code); + swprintf(buff, L"\\StringFileInfo\\%04x%04x\\FileDescription", lang, code); SH_FileVersionQuerySetText(hwndDlg, 14003, pBuf, buff, &str); - swprintf(buff, wLegalCopyrightFormat, lang, code); + swprintf(buff, L"\\StringFileInfo\\%04x%04x\\LegalCopyright", lang, code); SH_FileVersionQuerySetText(hwndDlg, 14005, pBuf, buff, &str); /* listbox properties */ - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wCompanyName, &str, lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wFileVersion, &str, lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wInternalName, &str, lang, code); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"CompanyName", lang, code); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"FileVersion", lang, code); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"InternalName", lang, code); /* FIXME insert language identifier */ - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wOriginalFilename, &str, lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wProductName, &str, lang, code); - SH_FileVersionQuerySetListText(hwndDlg, pBuf, wProductVersion, &str, lang, code); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"OriginalFilename", lang, code); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"ProductName", lang, code); + SH_FileVersionQuerySetListText(hwndDlg, pBuf, L"ProductVersion", lang, code); SetWindowLongPtr(hwndDlg, DWL_USER, (LONG_PTR)pBuf); /* select first item */ @@ -746,7 +708,7 @@ if (lresult == LB_ERR) break; - str = (WCHAR *) SendMessageW(hDlgCtrl, LB_GETITEMDATA, (WPARAM)lresult, (LPARAM)NULL); + str = (WCHAR *)SendMessageW(hDlgCtrl, LB_GETITEMDATA, (WPARAM)lresult, (LPARAM)NULL); if (str == NULL) break; @@ -756,7 +718,7 @@ return TRUE; } - break; + break; case WM_DESTROY: buf = (LPVOID) GetWindowLongPtr(hwndDlg, DWL_USER); @@ -810,10 +772,10 @@ SH_FileGeneralSetText(hwndDlg, lpstr); /* enumerate file extension from registry and application which opens it */ - SH_FileGeneralSetFileType(hwndDlg, wcsrchr(lpstr, '.')); + SH_FileGeneralSetFileType(hwndDlg, wcsrchr(lpstr, L'.')); /* set opens with */ - SH_FileGeneralOpensWith(hwndDlg, wcsrchr(lpstr, '.')); + SH_FileGeneralOpensWith(hwndDlg, wcsrchr(lpstr, L'.')); /* set file time create/modfied/accessed */ SH_FileGeneralSetFileSizeTime(hwndDlg, lpstr, NULL); @@ -829,14 +791,13 @@ BOOL CALLBACK -AddShellPropSheetExCallback(HPROPSHEETPAGE hPage, - LPARAM lParam) -{ - PROPSHEETHEADERW *pinfo = (PROPSHEETHEADERW *)lParam; - - if (pinfo->nPages < MAX_PROPERTY_SHEET_PAGE) - { - pinfo->phpage[pinfo->nPages++] = hPage; +AddShellPropSheetExCallback(HPROPSHEETPAGE hPage, LPARAM lParam) +{ + PROPSHEETHEADERW *pInfo = (PROPSHEETHEADERW *)lParam; + + if (pInfo->nPages < MAX_PROPERTY_SHEET_PAGE) + { + pInfo->phpage[pInfo->nPages++] = hPage; return TRUE; } @@ -844,7 +805,7 @@ } int -EnumPropSheetExt(LPWSTR wFileName, PROPSHEETHEADERW *pinfo, int NumPages, HPSXA *hpsxa, IDataObject *pDataObj) +EnumPropSheetExt(LPWSTR wFileName, PROPSHEETHEADERW *pInfo, int NumPages, HPSXA *phpsxa, IDataObject *pDataObj) { WCHAR szName[MAX_PATH] = { 0 }; WCHAR *pOffset; @@ -884,13 +845,13 @@ TRACE("EnumPropSheetExt szName %s\n", debugstr_w(szName)); - hpsxa[0] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages, pDataObj); - Pages = SHAddFromPropSheetExtArray(hpsxa[0], AddShellPropSheetExCallback, (LPARAM)pinfo); - - hpsxa[1] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, L"*", NumPages-Pages, pDataObj); - Pages += SHAddFromPropSheetExtArray(hpsxa[1], AddShellPropSheetExCallback, (LPARAM)pinfo); - - hpsxa[2] = NULL; + phpsxa[0] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages, pDataObj); + Pages = SHAddFromPropSheetExtArray(phpsxa[0], AddShellPropSheetExCallback, (LPARAM)pInfo); + + phpsxa[1] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, L"*", NumPages - Pages, pDataObj); + Pages += SHAddFromPropSheetExtArray(phpsxa[1], AddShellPropSheetExCallback, (LPARAM)pInfo); + + phpsxa[2] = NULL; if (pOffset) { @@ -901,8 +862,8 @@ { TRACE("EnumPropSheetExt szName %s, pOffset %s\n", debugstr_w(szName), debugstr_w(pOffset)); szName[(sizeof(szName) / sizeof(WCHAR)) - 1] = L'\0'; - hpsxa[2] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages - Pages, pDataObj); - Pages += SHAddFromPropSheetExtArray(hpsxa[2], AddShellPropSheetExCallback, (LPARAM)pinfo); + phpsxa[2] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages - Pages, pDataObj); + Pages += SHAddFromPropSheetExtArray(phpsxa[2], AddShellPropSheetExCallback, (LPARAM)pInfo); } } @@ -915,16 +876,16 @@ * * called from ShellExecuteExW32 * - * lpf contains (quoted) path of folder/file + * pwszPath contains (quoted) path of folder/file * * TODO: provide button change application type if file has registered type * make filename field editable and apply changes to filename on close */ BOOL -SH_ShowPropertiesDialog(WCHAR *lpf, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *apidl) -{ - PROPSHEETHEADERW pinfo; +SH_ShowPropertiesDialog(LPCWSTR pwszPath, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *apidl) +{ + PROPSHEETHEADERW Info; HPROPSHEETPAGE hppages[MAX_PROPERTY_SHEET_PAGE]; WCHAR wFileName[MAX_PATH]; DWORD dwHandle = 0; @@ -935,30 +896,30 @@ HRESULT hResult; DWORD wLength; - TRACE("SH_ShowPropertiesDialog entered filename %s\n", debugstr_w(lpf)); - - if (lpf == NULL) - return FALSE; - - if (!wcslen(lpf)) + TRACE("SH_ShowPropertiesDialog entered filename %s\n", debugstr_w(pwszPath)); + + if (pwszPath == NULL) + return FALSE; + + if (!wcslen(pwszPath)) return FALSE; memset(hppages, 0x0, sizeof(HPROPSHEETPAGE) * MAX_PROPERTY_SHEET_PAGE); - if (lpf[0] == '"') - { - /* remove quotes from lpf */ - LPCWSTR src = lpf + 1; + if (pwszPath[0] == L'"') + { + /* remove quotes from pwszPath */ + LPCWSTR src = pwszPath + 1; LPWSTR dst = wFileName; - while (*src && *src != '"') + while (*src && *src != L'"') *dst++ = *src++; - *dst = '\0'; + *dst = L'\0'; } else { - wcscpy(wFileName, lpf); + wcscpy(wFileName, pwszPath); } // @@ -984,33 +945,33 @@ } - pFileName = wcsrchr(wFileName, '\\'); + pFileName = wcsrchr(wFileName, L'\\'); if (!pFileName) pFileName = wFileName; else pFileName++; - memset(&pinfo, 0x0, sizeof(PROPSHEETHEADERW)); - pinfo.dwSize = sizeof(PROPSHEETHEADERW); - pinfo.dwFlags = PSH_NOCONTEXTHELP | PSH_PROPTITLE; - pinfo.phpage = hppages; - pinfo.pszCaption = pFileName; - - hppages[pinfo.nPages] = + memset(&Info, 0x0, sizeof(PROPSHEETHEADERW)); + Info.dwSize = sizeof(PROPSHEETHEADERW); + Info.dwFlags = PSH_NOCONTEXTHELP | PSH_PROPTITLE; + Info.phpage = hppages; + Info.pszCaption = pFileName; + + hppages[Info.nPages] = SH_CreatePropertySheetPage("SHELL_FILE_GENERAL_DLG", SH_FileGeneralDlgProc, (LPARAM)wFileName, NULL); - if (hppages[pinfo.nPages]) - pinfo.nPages++; + if (hppages[Info.nPages]) + Info.nPages++; hResult = SHCreateDataObject(pidlFolder, 1, apidl, NULL, IID_IDataObject, (LPVOID *)&pDataObj); if (hResult == S_OK) { - if (!EnumPropSheetExt(wFileName, &pinfo, MAX_PROPERTY_SHEET_PAGE - 1, hpsxa, pDataObj)) + if (!EnumPropSheetExt(wFileName, &Info, MAX_PROPERTY_SHEET_PAGE - 1, hpsxa, pDataObj)) { hpsxa[0] = NULL; hpsxa[1] = NULL; @@ -1018,18 +979,18 @@ } } - if (GetFileVersionInfoSizeW(lpf, &dwHandle)) - { - hppages[pinfo.nPages] = + if (GetFileVersionInfoSizeW(pwszPath, &dwHandle)) + { + hppages[Info.nPages] = SH_CreatePropertySheetPage("SHELL_FILE_VERSION_DLG", SH_FileVersionDlgProc, (LPARAM)wFileName, NULL); - if (hppages[pinfo.nPages]) - pinfo.nPages++; - } - - res = PropertySheetW(&pinfo); + if (hppages[Info.nPages]) + Info.nPages++; + } + + res = PropertySheetW(&Info); if (hResult == S_OK) { Modified: trunk/reactos/dll/win32/shell32/shell32_main.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shell32_…
============================================================================== --- trunk/reactos/dll/win32/shell32/shell32_main.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shell32_main.h [iso-8859-1] Tue Jan 10 16:01:13 2012 @@ -212,11 +212,11 @@ INT_PTR CALLBACK SH_FileGeneralDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK SH_FileVersionDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -HPROPSHEETPAGE SH_CreatePropertySheetPage(LPCSTR resname, DLGPROC dlgproc, LPARAM lParam, LPWSTR szTitle); -BOOL SH_ShowDriveProperties(WCHAR * drive, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST * apidl); +HPROPSHEETPAGE SH_CreatePropertySheetPage(LPCSTR pszResName, DLGPROC pfnDlgProc, LPARAM lParam, LPWSTR pwszTitle); +BOOL SH_ShowDriveProperties(WCHAR *drive, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *apidl); BOOL SH_ShowRecycleBinProperties(WCHAR sDrive); -BOOL SH_ShowPropertiesDialog(LPWSTR lpf, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST * apidl); -BOOL SH_ShowFolderProperties(LPWSTR pwszFolder, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST * apidl); +BOOL SH_ShowPropertiesDialog(LPCWSTR pwszPath, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *apidl); +BOOL SH_ShowFolderProperties(LPWSTR pwszFolder, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *apidl); LPWSTR SH_FormatFileSizeWithBytes(PULARGE_INTEGER lpQwSize, LPWSTR pszBuf, UINT cchBuf); EXTERN_C HRESULT WINAPI DoRegisterServer(void);
12 years, 11 months
1
0
0
0
[rharabien] 54902: - Fix year in all files copyright info - Replace tabs by spaces
by rharabien@svn.reactos.org
Author: rharabien Date: Tue Jan 10 15:34:28 2012 New Revision: 54902 URL:
http://svn.reactos.org/svn/reactos?rev=54902&view=rev
Log: - Fix year in all files copyright info - Replace tabs by spaces Modified: trunk/reactos/include/reactos/version.rc Modified: trunk/reactos/include/reactos/version.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/version.rc…
============================================================================== --- trunk/reactos/include/reactos/version.rc [iso-8859-1] (original) +++ trunk/reactos/include/reactos/version.rc [iso-8859-1] Tue Jan 10 15:34:28 2012 @@ -20,7 +20,7 @@ #define REACTOS_DEFAULT_STR_COMPANY_NAME "ReactOS Development Team\0" #define REACTOS_DEFAULT_STR_DESCRIPTION "ReactOS Core Component\0" #define REACTOS_DEFAULT_STR_INTERNAL_NAME "\0" -#define REACTOS_DEFAULT_STR_LEGAL_COPYRIGHT "Copyright 1998-"COPYRIGHT_YEAR" ReactOS Team\0" +#define REACTOS_DEFAULT_STR_LEGAL_COPYRIGHT "Copyright 1998-" COPYRIGHT_YEAR " ReactOS Team\0" #define REACTOS_DEFAULT_STR_PRODUCT_NAME "ReactOS Operating System\0" /* Set defaults for everything, unless overridden */ @@ -106,36 +106,36 @@ /* The version resource itself */ VS_VERSION_INFO VERSIONINFO - FILEVERSION REACTOS_FILEVERSION - PRODUCTVERSION REACTOS_PRODUCTVERSION - FILEFLAGSMASK REACTOS_FILEFLAGSMASK - FILEFLAGS REACTOS_FILEFLAGS - FILEOS REACTOS_FILEOS - FILETYPE REACTOS_FILETYPE - FILESUBTYPE REACTOS_FILESUBTYPE - BEGIN +FILEVERSION REACTOS_FILEVERSION +PRODUCTVERSION REACTOS_PRODUCTVERSION +FILEFLAGSMASK REACTOS_FILEFLAGSMASK +FILEFLAGS REACTOS_FILEFLAGS +FILEOS REACTOS_FILEOS +FILETYPE REACTOS_FILETYPE +FILESUBTYPE REACTOS_FILESUBTYPE +BEGIN BLOCK "StringFileInfo" - BEGIN + BEGIN BLOCK "040904b0" - BEGIN - VALUE "CompanyName", REACTOS_STR_COMPANY_NAME - VALUE "FileDescription", REACTOS_STR_FILE_DESCRIPTION - VALUE "FileVersion", REACTOS_STR_FILE_VERSION - VALUE "InternalName", REACTOS_STR_INTERNAL_NAME + BEGIN + VALUE "CompanyName", REACTOS_STR_COMPANY_NAME + VALUE "FileDescription", REACTOS_STR_FILE_DESCRIPTION + VALUE "FileVersion", REACTOS_STR_FILE_VERSION + VALUE "InternalName", REACTOS_STR_INTERNAL_NAME #ifdef REACTOS_STR_ORIGINAL_COPYRIGHT - VALUE "OriginalCopyright", REACTOS_STR_ORIGINAL_COPYRIGHT + VALUE "OriginalCopyright", REACTOS_STR_ORIGINAL_COPYRIGHT #endif /* REACTOS_STR_ORIGINAL_COPYRIGHT */ - VALUE "LegalCopyright", REACTOS_STR_LEGAL_COPYRIGHT - VALUE "OriginalFilename", REACTOS_STR_ORIGINAL_FILENAME - VALUE "ProductName", REACTOS_STR_PRODUCT_NAME - VALUE "ProductVersion", REACTOS_STR_PRODUCT_VERSION + VALUE "LegalCopyright", REACTOS_STR_LEGAL_COPYRIGHT + VALUE "OriginalFilename", REACTOS_STR_ORIGINAL_FILENAME + VALUE "ProductName", REACTOS_STR_PRODUCT_NAME + VALUE "ProductVersion", REACTOS_STR_PRODUCT_VERSION #ifdef REACTOS_OLESELFREGISTER - VALUE "OLESelfRegister", "" + VALUE "OLESelfRegister", "" #endif /* REACTOS_OLESELFREGISTER */ - END - END + END + END BLOCK "VarFileInfo" - BEGIN + BEGIN VALUE "Translation", 0x409, 1200 - END - END + END +END
12 years, 11 months
1
0
0
0
[tkreuzer] 54901: [WIN32K] - Fix parameter to DrvEnablePDEV - improve DPRINTs
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Jan 10 14:59:23 2012 New Revision: 54901 URL:
http://svn.reactos.org/svn/reactos?rev=54901&view=rev
Log: [WIN32K] - Fix parameter to DrvEnablePDEV - improve DPRINTs Modified: trunk/reactos/subsystems/win32/win32k/eng/pdevobj.c Modified: trunk/reactos/subsystems/win32/win32k/eng/pdevobj.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/en…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/eng/pdevobj.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/eng/pdevobj.c [iso-8859-1] Tue Jan 10 14:59:23 2012 @@ -125,7 +125,7 @@ HS_DDI_MAX, ppdev->ahsurf, sizeof(GDIINFO), - &ppdev->gdiinfo, + (PULONG)&ppdev->gdiinfo, sizeof(DEVINFO), &ppdev->devinfo, (HDEV)ppdev, @@ -202,19 +202,16 @@ /* Compare asked DEVMODE fields * Only compare those that are valid in both DEVMODE structs */ dwFields = pdmCurrent->dmFields & pdm->dmFields ; + /* For now, we only need those */ if ((dwFields & DM_BITSPERPEL) && - (pdmCurrent->dmBitsPerPel != pdm->dmBitsPerPel)) - continue; + (pdmCurrent->dmBitsPerPel != pdm->dmBitsPerPel)) continue; if ((dwFields & DM_PELSWIDTH) && - (pdmCurrent->dmPelsWidth != pdm->dmPelsWidth)) - continue; + (pdmCurrent->dmPelsWidth != pdm->dmPelsWidth)) continue; if ((dwFields & DM_PELSHEIGHT) && - (pdmCurrent->dmPelsHeight != pdm->dmPelsHeight)) - continue; + (pdmCurrent->dmPelsHeight != pdm->dmPelsHeight)) continue; if ((dwFields & DM_DISPLAYFREQUENCY) && - (pdmCurrent->dmDisplayFrequency != pdm->dmDisplayFrequency)) - continue; + (pdmCurrent->dmDisplayFrequency != pdm->dmDisplayFrequency)) continue; /* Match! Return the DEVMODE */ return pdmCurrent; @@ -232,6 +229,7 @@ { PGRAPHICS_DEVICE pGraphicsDevice; PPDEVOBJ ppdev; + DPRINT("EngpCreatePDEV(%wZ, %p)\n", pustrDeviceName, pdm); /* Try to find the GRAPHICS_DEVICE */ if (pustrDeviceName) @@ -269,8 +267,9 @@ ppdev->pldev = EngLoadImageEx(pdm->dmDeviceName, LDEV_DEVICE_DISPLAY); if (!ppdev->pldev) { - DPRINT1("Could not load display driver '%ls'\n", - pGraphicsDevice->pDiplayDrivers); + DPRINT1("Could not load display driver '%ls', '%s'\n", + pGraphicsDevice->pDiplayDrivers, + pdm->dmDeviceName); ExFreePoolWithTag(ppdev, GDITAG_PDEV); return NULL; }
12 years, 11 months
1
0
0
0
[tkreuzer] 54900: [PSDK] - add annotations to winddi.h - use function types for Drv* declarations
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Jan 10 14:47:43 2012 New Revision: 54900 URL:
http://svn.reactos.org/svn/reactos?rev=54900&view=rev
Log: [PSDK] - add annotations to winddi.h - use function types for Drv* declarations Modified: trunk/reactos/include/psdk/winddi.h Modified: trunk/reactos/include/psdk/winddi.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winddi.h?rev=…
============================================================================== --- trunk/reactos/include/psdk/winddi.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/winddi.h [iso-8859-1] Tue Jan 10 14:47:43 2012 @@ -7,6 +7,7 @@ * * Contributors: * Created by Casper S. Hornstrup <chorns(a)users.sourceforge.net> + * Annotations by Timo Kreuzer <timo.kreuzer(a)reactos.org> * * THIS SOFTWARE IS NOT COPYRIGHTED * @@ -29,6 +30,7 @@ #include <ddrawint.h> #include <d3dnthal.h> +#include <specstrings.h> #ifdef __cplusplus extern "C" { @@ -322,7 +324,7 @@ typedef BOOL (APIENTRY CALLBACK *FREEOBJPROC)( - IN struct _DRIVEROBJ *pDriverObj); + _In_ struct _DRIVEROBJ *pDriverObj); typedef struct _DRIVEROBJ { PVOID pvObj; @@ -1039,7 +1041,6 @@ } STROBJ; - /* SURFOBJ.iType constants */ #define STYPE_BITMAP 0L #define STYPE_DEVICE 1L @@ -1127,42 +1128,42 @@ #define WOC_SPRITE_NO_OVERLAP 0x00000100 typedef VOID (APIENTRY CALLBACK *WNDOBJCHANGEPROC)( - IN WNDOBJ *pwo, - IN FLONG fl); + _In_ WNDOBJ *pwo, + _In_ FLONG fl); WIN32KAPI HANDLE APIENTRY BRUSHOBJ_hGetColorTransform( - IN BRUSHOBJ *pbo); + _In_ BRUSHOBJ *pbo); WIN32KAPI PVOID APIENTRY BRUSHOBJ_pvAllocRbrush( - IN BRUSHOBJ *pbo, - IN ULONG cj); + _In_ BRUSHOBJ *pbo, + _In_ ULONG cj); WIN32KAPI PVOID APIENTRY BRUSHOBJ_pvGetRbrush( - IN BRUSHOBJ *pbo); + _In_ BRUSHOBJ *pbo); WIN32KAPI ULONG APIENTRY BRUSHOBJ_ulGetBrushColor( - IN BRUSHOBJ *pbo); + _In_ BRUSHOBJ *pbo); WIN32KAPI BOOL APIENTRY CLIPOBJ_bEnum( - IN CLIPOBJ *pco, - IN ULONG cj, - OUT ULONG *pv); + _In_ CLIPOBJ *pco, + _In_ ULONG cj, + _Out_bytecap_(cj) ULONG *pul); /* CLIPOBJ_cEnumStart.iType constants */ #define CT_RECTANGLES 0L @@ -1180,61 +1181,68 @@ ULONG APIENTRY CLIPOBJ_cEnumStart( - IN CLIPOBJ *pco, - IN BOOL bAll, - IN ULONG iType, - IN ULONG iDirection, - IN ULONG cLimit); + _Inout_ CLIPOBJ *pco, + _In_ BOOL bAll, + _In_ ULONG iType, + _In_ ULONG iDirection, + _In_ ULONG cLimit); WIN32KAPI PATHOBJ* APIENTRY CLIPOBJ_ppoGetPath( - IN CLIPOBJ *pco); + _In_ CLIPOBJ *pco); WIN32KAPI VOID APIENTRY EngAcquireSemaphore( - IN HSEMAPHORE hsem); + _Inout_ HSEMAPHORE hsem); #define FL_ZERO_MEMORY 0x00000001 #define FL_NONPAGED_MEMORY 0x00000002 +_Must_inspect_result_ +_When_(fl & FL_ZERO_MEMORY, _Ret_opt_bytecount_(cjMemSize)) +_When_(!(fl & FL_ZERO_MEMORY), _Ret_opt_bytecap_(cjMemSize)) WIN32KAPI PVOID APIENTRY EngAllocMem( - IN ULONG Flags, - IN ULONG MemSize, - IN ULONG Tag); - + _In_ ULONG fl, + _In_ ULONG cjMemSize, + _In_ ULONG ulTag); + +_Must_inspect_result_ +_Ret_opt_bytecount_(cj) WIN32KAPI PVOID APIENTRY EngAllocPrivateUserMem( - IN PDD_SURFACE_LOCAL psl, - IN SIZE_T cj, - IN ULONG tag); - + _In_ PDD_SURFACE_LOCAL psl, + _In_ SIZE_T cjMemSize, + _In_ ULONG ulTag); + +_Must_inspect_result_ +_Ret_opt_bytecount_(cjMemSize) WIN32KAPI PVOID APIENTRY EngAllocUserMem( - IN SIZE_T cj, - IN ULONG tag); + _In_ SIZE_T cjMemSize, + _In_ ULONG ulTag); WIN32KAPI BOOL APIENTRY EngAlphaBlend( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN BLENDOBJ *pBlendObj); + _Inout_ SURFOBJ *psoDest, + _In_ SURFOBJ *psoSrc, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_ RECTL *prclDest, + _In_ RECTL *prclSrc, + _In_ BLENDOBJ *pBlendObj); /* EngAssociateSurface.flHooks constants */ #define HOOK_BITBLT 0x00000001 @@ -1260,45 +1268,45 @@ BOOL APIENTRY EngAssociateSurface( - IN HSURF hsurf, - IN HDEV hdev, - IN FLONG flHooks); + _In_ HSURF hsurf, + _In_ HDEV hdev, + _In_ FLONG flHooks); WIN32KAPI BOOL APIENTRY EngBitBlt( - IN SURFOBJ *psoTrg, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclTrg, - IN POINTL *pptlSrc, - IN POINTL *pptlMask, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrush, - IN ROP4 rop4); + _Inout_ SURFOBJ *psoTrg, + _In_opt_ SURFOBJ *psoSrc, + _In_opt_ SURFOBJ *psoMask, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_ RECTL *prclTrg, + _When_(psoSrc, _In_) POINTL *pptlSrc, + _When_(psoMask, _In_) POINTL *pptlMask, + _In_opt_ BRUSHOBJ *pbo, + _In_opt_ POINTL *pptlBrush, + _In_ ROP4 rop4); WIN32KAPI BOOL APIENTRY EngCheckAbort( - IN SURFOBJ *pso); + _In_ SURFOBJ *pso); WIN32KAPI VOID APIENTRY EngClearEvent( - IN PEVENT pEvent); + _In_ PEVENT pEvent); WIN32KAPI FD_GLYPHSET* APIENTRY EngComputeGlyphSet( - IN INT nCodePage, - IN INT nFirstChar, - IN INT cChars); + _In_ INT nCodePage, + _In_ INT nFirstChar, + _In_ INT cChars); /* EngControlSprites.fl constants */ #define ECS_TEARDOWN 0x00000001 @@ -1308,67 +1316,66 @@ BOOL APIENTRY EngControlSprites( - IN WNDOBJ *pwo, - IN FLONG fl); + _Inout_ WNDOBJ *pwo, + _In_ FLONG fl); WIN32KAPI BOOL APIENTRY EngCopyBits( - OUT SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDest, - IN POINTL *pptlSrc); + _In_ SURFOBJ *psoDest, + _In_ SURFOBJ *psoSrc, + _In_ CLIPOBJ *pco, + _In_ XLATEOBJ *pxlo, + _In_ RECTL *prclDest, + _In_ POINTL *pptlSrc); WIN32KAPI HBITMAP APIENTRY EngCreateBitmap( - IN SIZEL sizl, - IN LONG lWidth, - IN ULONG iFormat, - IN FLONG fl, - IN PVOID pvBits); + _In_ SIZEL sizl, + _In_ LONG lWidth, + _In_ ULONG iFormat, + _In_ FLONG fl, + _In_ PVOID pvBits); WIN32KAPI CLIPOBJ* APIENTRY -EngCreateClip( - VOID); +EngCreateClip(VOID); WIN32KAPI HBITMAP APIENTRY EngCreateDeviceBitmap( - IN DHSURF dhsurf, - IN SIZEL sizl, - IN ULONG iFormatCompat); - + _In_ DHSURF dhsurf, + _In_ SIZEL sizl, + _In_ ULONG iFormatCompat); + +_Must_inspect_result_ WIN32KAPI HSURF APIENTRY EngCreateDeviceSurface( - DHSURF dhsurf, - SIZEL sizl, - ULONG iFormatCompat); - -#if 0 + _In_ DHSURF dhsurf, + _In_ SIZEL sizl, + _In_ ULONG iFormatCompat); + +_Must_inspect_result_ WIN32KAPI HDRVOBJ APIENTRY EngCreateDriverObj( - PVOID pvObj, - FREEOBJPROC pFreeObjProc, - HDEV hdev); -#endif + _In_ PVOID pvObj, + _In_opt_ FREEOBJPROC pFreeObjProc, + _In_ HDEV hdev); WIN32KAPI BOOL APIENTRY EngCreateEvent( - OUT PEVENT *ppEvent); + _Deref_out_opt_ PEVENT *ppEvent); /* EngCreatePalette.iMode constants */ #define PAL_INDEXED 0x00000001 @@ -1377,28 +1384,27 @@ #define PAL_BGR 0x00000008 #define PAL_CMYK 0x00000010 +_Must_inspect_result_ WIN32KAPI HPALETTE APIENTRY EngCreatePalette( - IN ULONG iMode, - IN ULONG cColors, - IN ULONG *pulColors, - IN FLONG flRed, - IN FLONG flGreen, - IN FLONG flBlue); + _In_ ULONG iMode, + _In_ ULONG cColors, + _In_ ULONG *pulColors, + _In_ FLONG flRed, + _In_ FLONG flGreen, + _In_ FLONG flBlue); WIN32KAPI PATHOBJ* APIENTRY -EngCreatePath( - VOID); +EngCreatePath(VOID); WIN32KAPI HSEMAPHORE APIENTRY -EngCreateSemaphore( - VOID); +EngCreateSemaphore(VOID); /* EngCreateWnd.fl constants */ #define WO_RGN_CLIENT_DELTA 0x00000001 @@ -1411,166 +1417,170 @@ #define WO_SPRITE_NOTIFY 0x00000080 #define WO_RGN_DESKTOP_COORD 0x00000100 +_Must_inspect_result_ WIN32KAPI WNDOBJ* APIENTRY EngCreateWnd( - SURFOBJ *pso, - HWND hwnd, - WNDOBJCHANGEPROC pfn, - FLONG fl, - int iPixelFormat); - -WIN32KAPI -VOID -APIENTRY -EngDebugBreak( - VOID); + _In_ SURFOBJ *pso, + _In_ HWND hwnd, + _In_ WNDOBJCHANGEPROC pfn, + _In_ FLONG fl, + _In_ INT iPixelFormat); + +WIN32KAPI +VOID +APIENTRY +EngDebugBreak(VOID); WIN32KAPI VOID APIENTRY EngDebugPrint( - IN PCHAR StandardPrefix, - IN PCHAR DebugMessage, - IN va_list ap); + _In_z_ PCHAR StandardPrefix, + _In_z_ PCHAR DebugMessage, + _In_ va_list ap); WIN32KAPI VOID APIENTRY EngDeleteClip( - IN CLIPOBJ *pco); + _In_ CLIPOBJ *pco); WIN32KAPI BOOL APIENTRY EngDeleteDriverObj( - IN HDRVOBJ hdo, - IN BOOL bCallBack, - IN BOOL bLocked); + _In_ HDRVOBJ hdo, + _In_ BOOL bCallBack, + _In_ BOOL bLocked); WIN32KAPI BOOL APIENTRY EngDeleteEvent( - IN PEVENT pEvent); + _In_ PEVENT pEvent); WIN32KAPI BOOL APIENTRY EngDeleteFile( - IN LPWSTR pwszFileName); + _In_ LPWSTR pwszFileName); WIN32KAPI BOOL APIENTRY EngDeletePalette( - IN HPALETTE hpal); + _In_ HPALETTE hpal); WIN32KAPI VOID APIENTRY EngDeletePath( - IN PATHOBJ *ppo); + _Inout_ PATHOBJ *ppo); WIN32KAPI VOID APIENTRY EngDeleteSafeSemaphore( - IN OUT ENGSAFESEMAPHORE *pssem); + _Inout_ ENGSAFESEMAPHORE *pssem); WIN32KAPI VOID APIENTRY EngDeleteSemaphore( - IN OUT HSEMAPHORE hsem); + _Inout_ HSEMAPHORE hsem); WIN32KAPI BOOL APIENTRY EngDeleteSurface( - IN HSURF hsurf); + _In_ HSURF hsurf); WIN32KAPI VOID APIENTRY EngDeleteWnd( - IN WNDOBJ *pwo); + _Inout_ WNDOBJ *pwo); WIN32KAPI DWORD APIENTRY EngDeviceIoControl( - IN HANDLE hDevice, - IN DWORD dwIoControlCode, - IN LPVOID lpInBuffer, - IN DWORD nInBufferSize, - IN OUT LPVOID lpOutBuffer, - IN DWORD nOutBufferSize, - OUT LPDWORD lpBytesReturned); + _In_ HANDLE hDevice, + _In_ DWORD dwIoControlCode, + _In_opt_bytecount_(cjInBufferSize) LPVOID lpInBuffer, + _In_ DWORD cjInBufferSize, + _Out_opt_bytecap_(cjOutBufferSize) LPVOID lpOutBuffer, + _In_ DWORD cjOutBufferSize, + _Out_ LPDWORD lpBytesReturned); WIN32KAPI ULONG APIENTRY EngDitherColor( - IN HDEV hdev, - IN ULONG iMode, - IN ULONG rgb, - OUT ULONG *pul); + _In_ HDEV hdev, + _In_ ULONG iMode, + _In_ ULONG rgb, + _When_(iMode == DM_DEFAULT, _Out_writes_bytes_(16*8)) + _When_(iMode == DM_MONOCHROME, _Out_writes_bytes_(8)) + ULONG *pul); WIN32KAPI BOOL APIENTRY EngEnumForms( - IN HANDLE hPrinter, - IN DWORD Level, - OUT LPBYTE pForm, - IN DWORD cbBuf, - OUT LPDWORD pcbNeeded, - OUT LPDWORD pcReturned); + _In_ HANDLE hPrinter, + _In_ DWORD Level, + _Out_writes_bytes_opt_(cbBuf) LPBYTE pForm, + _In_ DWORD cbBuf, + _Out_ LPDWORD pcbNeeded, + _Out_ LPDWORD pcReturned); WIN32KAPI BOOL APIENTRY EngEraseSurface( - IN SURFOBJ *pso, - IN RECTL *prcl, - IN ULONG iColor); + _In_ SURFOBJ *pso, + _In_ RECTL *prcl, + _In_ ULONG iColor); WIN32KAPI BOOL APIENTRY EngFillPath( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN MIX mix, - IN FLONG flOptions); + _Inout_ SURFOBJ *pso, + _In_ PATHOBJ *ppo, + _In_ CLIPOBJ *pco, + _In_ BRUSHOBJ *pbo, + _In_ POINTL *pptlBrushOrg, + _In_ MIX mix, + _In_ FLONG flOptions); WIN32KAPI PVOID APIENTRY EngFindImageProcAddress( - IN HANDLE hModule, - IN LPSTR lpProcName); + _In_ HANDLE hModule, + _In_ LPSTR lpProcName); WIN32KAPI PVOID APIENTRY EngFindResource( - IN HANDLE h, - IN int iName, - IN int iType, - OUT PULONG pulSize); - + _In_ HANDLE h, + _In_ INT iName, + _In_ INT iType, + _Out_ PULONG pulSize); + +_Must_inspect_result_ +_Ret_opt_bytecap_(cjSize) WIN32KAPI PVOID APIENTRY EngFntCacheAlloc( - IN ULONG FastCheckSum, - IN ULONG ulSize); + _In_ ULONG ulFastCheckSum, + _In_ ULONG cjSize); /* EngFntCacheFault.iFaultMode constants */ #define ENG_FNT_CACHE_READ_FAULT 0x00000001 @@ -1580,166 +1590,163 @@ VOID APIENTRY EngFntCacheFault( - IN ULONG ulFastCheckSum, - IN ULONG iFaultMode); + _In_ ULONG ulFastCheckSum, + _In_ ULONG iFaultMode); WIN32KAPI PVOID APIENTRY EngFntCacheLookUp( - IN ULONG FastCheckSum, - OUT ULONG *pulSize); + _In_ ULONG FastCheckSum, + _Out_ ULONG *pulSize); WIN32KAPI VOID APIENTRY EngFreeMem( - IN PVOID Mem); + _In_ _Post_ptr_invalid_ PVOID pv); WIN32KAPI VOID APIENTRY EngFreeModule( - IN HANDLE h); + _In_ HANDLE h); WIN32KAPI VOID APIENTRY EngFreePrivateUserMem( - IN PDD_SURFACE_LOCAL psl, - IN PVOID pv); + _In_ PDD_SURFACE_LOCAL psl, + _In_ _Post_ptr_invalid_ PVOID pv); WIN32KAPI VOID APIENTRY EngFreeUserMem( - IN PVOID pv); + _In_ _Post_ptr_invalid_ PVOID pv); WIN32KAPI VOID APIENTRY EngGetCurrentCodePage( - OUT PUSHORT OemCodePage, - OUT PUSHORT AnsiCodePage); + _Out_ PUSHORT OemCodePage, + _Out_ PUSHORT AnsiCodePage); WIN32KAPI HANDLE APIENTRY -EngGetCurrentProcessId( - VOID); +EngGetCurrentProcessId(VOID); WIN32KAPI HANDLE APIENTRY -EngGetCurrentThreadId( - VOID); - +EngGetCurrentThreadId(VOID); + +_Must_inspect_result_ _Ret_z_ WIN32KAPI LPWSTR APIENTRY EngGetDriverName( - IN HDEV hdev); + _In_ HDEV hdev); WIN32KAPI BOOL APIENTRY EngGetFileChangeTime( - IN HANDLE h, - OUT LARGE_INTEGER *pChangeTime); + _In_ HANDLE h, + _Out_ LARGE_INTEGER *pChangeTime); WIN32KAPI BOOL APIENTRY EngGetFilePath( - IN HANDLE h, - OUT WCHAR (*pDest)[MAX_PATH+1]); + _In_ HANDLE h, + _Out_ WCHAR (*pDest)[MAX_PATH+1]); WIN32KAPI BOOL APIENTRY EngGetForm( - IN HANDLE hPrinter, - IN LPWSTR pFormName, - IN DWORD Level, - OUT LPBYTE pForm, - IN DWORD cbBuf, - OUT LPDWORD pcbNeeded); + _In_ HANDLE hPrinter, + _In_ LPWSTR pFormName, + _In_ DWORD Level, + _In_reads_bytes_opt_(cbBuf) LPBYTE pForm, + _In_ DWORD cbBuf, + _Out_ LPDWORD pcbNeeded); WIN32KAPI ULONG APIENTRY -EngGetLastError( - VOID); +EngGetLastError(VOID); WIN32KAPI BOOL APIENTRY EngGetPrinter( - IN HANDLE hPrinter, - IN DWORD dwLevel, - OUT LPBYTE pPrinter, - IN DWORD cbBuf, - OUT LPDWORD pcbNeeded); + _In_ HANDLE hPrinter, + _In_ DWORD dwLevel, + _Out_writes_bytes_opt_(cbBuf) LPBYTE pPrinter, + _In_ DWORD cbBuf, + _Out_ LPDWORD pcbNeeded); WIN32KAPI DWORD APIENTRY EngGetPrinterData( - IN HANDLE hPrinter, - IN LPWSTR pValueName, - OUT LPDWORD pType, - OUT LPBYTE pData, - IN DWORD nSize, - OUT LPDWORD pcbNeeded); + _In_ HANDLE hPrinter, + _In_ LPWSTR pValueName, + _Out_opt_ LPDWORD pType, + _Out_writes_bytes_opt_(cjSize) LPBYTE pData, + _In_ DWORD cjSize, + _Out_ LPDWORD pcjNeeded); WIN32KAPI LPWSTR APIENTRY EngGetPrinterDataFileName( - IN HDEV hdev); + _In_ HDEV hdev); WIN32KAPI BOOL APIENTRY EngGetPrinterDriver( - IN HANDLE hPrinter, - IN LPWSTR pEnvironment, - IN DWORD dwLevel, - OUT BYTE *lpbDrvInfo, - IN DWORD cbBuf, - OUT DWORD *pcbNeeded); + _In_ HANDLE hPrinter, + _In_opt_ LPWSTR pEnvironment, + _In_ DWORD dwLevel, + _Out_writes_bytes_opt_(cjBufSize) BYTE *lpbDrvInfo, + _In_ DWORD cjBufSize, + _Out_ DWORD *pcjNeeded); WIN32KAPI HANDLE APIENTRY -EngGetProcessHandle( - VOID); +EngGetProcessHandle(VOID); WIN32KAPI BOOL APIENTRY EngGetType1FontList( - IN HDEV hdev, - OUT TYPE1_FONT *pType1Buffer, - IN ULONG cjType1Buffer, - OUT PULONG pulLocalFonts, - OUT PULONG pulRemoteFonts, - OUT LARGE_INTEGER *pLastModified); + _In_ HDEV hdev, + _Out_writes_bytes_opt_(cjType1Buffer) TYPE1_FONT *pType1Buffer, + _In_ ULONG cjType1Buffer, + _Out_ PULONG pulLocalFonts, + _Out_ PULONG pulRemoteFonts, + _Out_ LARGE_INTEGER *pLastModified); WIN32KAPI BOOL APIENTRY EngGradientFill( - IN SURFOBJ *psoDest, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN TRIVERTEX *pVertex, - IN ULONG nVertex, - IN PVOID pMesh, - IN ULONG nMesh, - IN RECTL *prclExtents, - IN POINTL *pptlDitherOrg, - IN ULONG ulMode); + _Inout_ SURFOBJ *psoDest, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_ TRIVERTEX *pVertex, + _In_ ULONG nVertex, + _In_ PVOID pMesh, + _In_ ULONG nMesh, + _In_ RECTL *prclExtents, + _In_ POINTL *pptlDitherOrg, + _In_ ULONG ulMode); /* EngHangNotification return values */ #define EHN_RESTORED 0x00000000 @@ -1749,130 +1756,131 @@ ULONG APIENTRY EngHangNotification( - IN HDEV hDev, - IN PVOID Reserved); + _In_ HDEV hDev, + _Reserved_ PVOID Reserved); WIN32KAPI BOOL APIENTRY EngInitializeSafeSemaphore( - OUT ENGSAFESEMAPHORE *pssem); + _Out_ ENGSAFESEMAPHORE *pssem); WIN32KAPI BOOL APIENTRY EngIsSemaphoreOwned( - IN HSEMAPHORE hsem); + _In_ HSEMAPHORE hsem); WIN32KAPI BOOL APIENTRY EngIsSemaphoreOwnedByCurrentThread( - IN HSEMAPHORE hsem); + _In_ HSEMAPHORE hsem); WIN32KAPI BOOL APIENTRY EngLineTo( - SURFOBJ *pso, - CLIPOBJ *pco, - BRUSHOBJ *pbo, - LONG x1, - LONG y1, - LONG x2, - LONG y2, - RECTL *prclBounds, - MIX mix); + _Inout_ SURFOBJ *pso, + _In_ CLIPOBJ *pco, + _In_ BRUSHOBJ *pbo, + _In_ LONG x1, + _In_ LONG y1, + _In_ LONG x2, + _In_ LONG y2, + _In_opt_ RECTL *prclBounds, + _In_ MIX mix); WIN32KAPI HANDLE APIENTRY EngLoadImage( - IN LPWSTR pwszDriver); + _In_ LPWSTR pwszDriver); WIN32KAPI HANDLE APIENTRY EngLoadModule( - IN LPWSTR pwsz); + _In_ LPWSTR pwsz); WIN32KAPI HANDLE APIENTRY EngLoadModuleForWrite( - IN LPWSTR pwsz, - IN ULONG cjSizeOfModule); + _In_ LPWSTR pwsz, + _In_ ULONG cjSizeOfModule); WIN32KAPI PDD_SURFACE_LOCAL APIENTRY EngLockDirectDrawSurface( - IN HANDLE hSurface); + _In_ HANDLE hSurface); WIN32KAPI DRIVEROBJ* APIENTRY EngLockDriverObj( - IN HDRVOBJ hdo); + _In_ HDRVOBJ hdo); WIN32KAPI SURFOBJ* APIENTRY EngLockSurface( - IN HSURF hsurf); - -WIN32KAPI -BOOL -APIENTRY -EngLpkInstalled( - VOID); + _In_ HSURF hsurf); + +WIN32KAPI +BOOL +APIENTRY +EngLpkInstalled(VOID); WIN32KAPI PEVENT APIENTRY EngMapEvent( - IN HDEV hDev, - IN HANDLE hUserObject, - IN PVOID Reserved1, - IN PVOID Reserved2, - IN PVOID Reserved3); - + _In_ HDEV hDev, + _In_ HANDLE hUserObject, + _Reserved_ PVOID Reserved1, + _Reserved_ PVOID Reserved2, + _Reserved_ PVOID Reserved3); + +_Success_(return != 0) +_When_(cjSize != 0, _At_(return, _Out_writes_bytes_(cjSize))) WIN32KAPI PVOID APIENTRY EngMapFile( - IN LPWSTR pwsz, - IN ULONG cjSize, - OUT ULONG_PTR *piFile); + _In_ LPWSTR pwsz, + _In_ ULONG cjSize, + _Out_ ULONG_PTR *piFile); WIN32KAPI BOOL APIENTRY EngMapFontFile( - ULONG_PTR iFile, - PULONG *ppjBuf, - ULONG *pcjBuf); + _In_ ULONG_PTR iFile, + _Outptr_result_bytebuffer_(*pcjBuf) PULONG *ppjBuf, + _Out_ ULONG *pcjBuf); WIN32KAPI BOOL APIENTRY EngMapFontFileFD( - IN ULONG_PTR iFile, - OUT PULONG *ppjBuf, - OUT ULONG *pcjBuf); + _In_ ULONG_PTR iFile, + _Outptr_result_bytebuffer_(*pcjBuf) PULONG *ppjBuf, + _Out_ ULONG *pcjBuf); WIN32KAPI PVOID APIENTRY EngMapModule( - IN HANDLE h, - OUT PULONG pSize); + _In_ HANDLE h, + _Out_ PULONG pSize); WIN32KAPI BOOL APIENTRY EngMarkBandingSurface( - IN HSURF hsurf); + _In_ HSURF hsurf); /* EngModifySurface.flSurface constants */ #define MS_NOTSYSTEMMEMORY 0x00000001 @@ -1882,93 +1890,101 @@ BOOL APIENTRY EngModifySurface( - IN HSURF hsurf, - IN HDEV hdev, - IN FLONG flHooks, - IN FLONG flSurface, - IN DHSURF dhsurf, - IN VOID *pvScan0, - IN LONG lDelta, - IN VOID *pvReserved); + _In_ HSURF hsurf, + _In_ HDEV hdev, + _In_ FLONG flHooks, + _In_ FLONG flSurface, + _In_ DHSURF dhsurf, + _In_ PVOID pvScan0, + _In_ LONG lDelta, + _Reserved_ PVOID pvReserved); WIN32KAPI VOID APIENTRY EngMovePointer( - IN SURFOBJ *pso, - IN LONG x, - IN LONG y, - IN RECTL *prcl); - -WIN32KAPI -int + _In_ SURFOBJ *pso, + _In_ LONG x, + _In_ LONG y, + _In_ RECTL *prcl); + +WIN32KAPI +INT APIENTRY EngMulDiv( - IN int a, - IN int b, - IN int c); + _In_ INT a, + _In_ INT b, + _In_ INT c); WIN32KAPI VOID APIENTRY EngMultiByteToUnicodeN( - OUT LPWSTR UnicodeString, - IN ULONG MaxBytesInUnicodeString, - OUT PULONG BytesInUnicodeString, - IN PCHAR MultiByteString, - IN ULONG BytesInMultiByteString); + _Out_writes_bytes_to_(MaxBytesInUnicodeString, *BytesInUnicodeString) LPWSTR UnicodeString, + _In_ ULONG MaxBytesInUnicodeString, + _Out_opt_ PULONG BytesInUnicodeString, + _In_reads_bytes_(BytesInMultiByteString) PCHAR MultiByteString, + _In_ ULONG BytesInMultiByteString); WIN32KAPI INT APIENTRY EngMultiByteToWideChar( - IN UINT CodePage, - OUT LPWSTR WideCharString, - IN INT BytesInWideCharString, - IN LPSTR MultiByteString, - IN INT BytesInMultiByteString); + _In_ UINT CodePage, + _Out_writes_bytes_opt_(cjWideCharString) LPWSTR WideCharString, + _In_ INT cjWideCharString, + _In_reads_bytes_opt_(cjMultiByteString) LPSTR MultiByteString, + _In_ INT cjMultiByteString); WIN32KAPI BOOL APIENTRY EngPaint( - IN SURFOBJ *pso, - IN CLIPOBJ *pco, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN MIX mix); + _In_ SURFOBJ *pso, + _In_ CLIPOBJ *pco, + _In_ BRUSHOBJ *pbo, + _In_ POINTL *pptlBrushOrg, + _In_ MIX mix); WIN32KAPI BOOL APIENTRY EngPlgBlt( - IN SURFOBJ *psoTrg, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMsk, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlBrushOrg, - IN POINTFIX *pptfx, - IN RECTL *prcl, - IN POINTL *pptl, - IN ULONG iMode); + _In_ SURFOBJ *psoTrg, + _In_ SURFOBJ *psoSrc, + _In_opt_ SURFOBJ *psoMsk, + _In_ CLIPOBJ *pco, + _In_ XLATEOBJ *pxlo, + _In_ COLORADJUSTMENT *pca, + _In_ POINTL *pptlBrushOrg, + _In_ POINTFIX *pptfx, + _In_ RECTL *prcl, + _When_(psoMsk, _In_) POINTL *pptl, + _In_ ULONG iMode); WIN32KAPI VOID APIENTRY EngProbeForRead( - IN PVOID Address, - IN ULONG Length, - IN ULONG Alignment); + _In_reads_bytes_(Length) PVOID Address, +#if (NTDDI_VERSION <= NTDDI_WINXP) + _In_ ULONG Length, +#else + _In_ SIZE_T Length, +#endif + _In_ ULONG Alignment); WIN32KAPI VOID APIENTRY EngProbeForReadAndWrite( - IN PVOID Address, - IN ULONG Length, - IN ULONG Alignment); + _Inout_updates_bytes_(Length) PVOID Address, +#if (NTDDI_VERSION <= NTDDI_WINXP) + _In_ ULONG Length, +#else + _In_ SIZE_T Length, +#endif + _In_ ULONG Alignment); typedef enum _ENG_DEVICE_ATTRIBUTE { QDA_RESERVED = 0, @@ -1979,45 +1995,45 @@ BOOL APIENTRY EngQueryDeviceAttribute( - IN HDEV hdev, - IN ENG_DEVICE_ATTRIBUTE devAttr, - IN VOID *pvIn, - IN ULONG ulInSize, - OUT VOID *pvOut, - OUT ULONG ulOutSize); + _In_ HDEV hdev, + _In_ ENG_DEVICE_ATTRIBUTE devAttr, + _In_reads_bytes_(cjInSize) PVOID pvIn, + _In_ ULONG cjInSize, + _Out_writes_bytes_(cjOutSize) PVOID pvOut, + _Out_ ULONG cjOutSize); WIN32KAPI LARGE_INTEGER APIENTRY EngQueryFileTimeStamp( - IN LPWSTR pwsz); + _In_ LPWSTR pwsz); WIN32KAPI VOID APIENTRY EngQueryLocalTime( - OUT PENG_TIME_FIELDS ptf); + _Out_ PENG_TIME_FIELDS ptf); WIN32KAPI ULONG APIENTRY EngQueryPalette( - IN HPALETTE hPal, - OUT ULONG *piMode, - IN ULONG cColors, - OUT ULONG *pulColors); + _In_ HPALETTE hPal, + _Out_ ULONG *piMode, + _In_ ULONG cColors, + _Out_writes_opt_(cColors) ULONG *pulColors); WIN32KAPI VOID APIENTRY EngQueryPerformanceCounter( - OUT LONGLONG *pPerformanceCount); + _Out_ LONGLONG *pPerformanceCount); WIN32KAPI VOID APIENTRY EngQueryPerformanceFrequency( - OUT LONGLONG *pFrequency); + _Out_ LONGLONG *pFrequency); typedef enum _ENG_SYSTEM_ATTRIBUTE { EngProcessorFeature = 1, @@ -2034,87 +2050,87 @@ BOOL APIENTRY EngQuerySystemAttribute( - IN ENG_SYSTEM_ATTRIBUTE CapNum, - OUT PDWORD pCapability); + _In_ ENG_SYSTEM_ATTRIBUTE CapNum, + _Out_ PDWORD pCapability); WIN32KAPI LONG APIENTRY EngReadStateEvent( - IN PEVENT pEvent); + _In_ PEVENT pEvent); WIN32KAPI VOID APIENTRY EngReleaseSemaphore( - IN HSEMAPHORE hsem); + _In_ HSEMAPHORE hsem); WIN32KAPI BOOL APIENTRY EngRestoreFloatingPointState( - IN VOID *pBuffer); + _In_ VOID *pBuffer); WIN32KAPI ULONG APIENTRY EngSaveFloatingPointState( - OUT VOID *pBuffer, - IN ULONG cjBufferSize); + _Out_ VOID *pBuffer, + _In_ ULONG cjBufferSize); WIN32KAPI HANDLE APIENTRY EngSecureMem( - IN PVOID Address, - IN ULONG Length); + _In_reads_bytes_(cjLength) PVOID Address, + _In_ ULONG cjLength); WIN32KAPI LONG APIENTRY EngSetEvent( - IN PEVENT pEvent); + _In_ PEVENT pEvent); WIN32KAPI VOID APIENTRY EngSetLastError( - IN ULONG iError); + _In_ ULONG iError); WIN32KAPI ULONG APIENTRY EngSetPointerShape( - IN SURFOBJ *pso, - IN SURFOBJ *psoMask, - IN SURFOBJ *psoColor, - IN XLATEOBJ *pxlo, - IN LONG xHot, - IN LONG yHot, - IN LONG x, - IN LONG y, - IN RECTL *prcl, - IN FLONG fl); + _In_ SURFOBJ *pso, + _In_ SURFOBJ *psoMask, + _In_ SURFOBJ *psoColor, + _In_ XLATEOBJ *pxlo, + _In_ LONG xHot, + _In_ LONG yHot, + _In_ LONG x, + _In_ LONG y, + _In_ RECTL *prcl, + _In_ FLONG fl); WIN32KAPI BOOL APIENTRY EngSetPointerTag( - IN HDEV hdev, - IN SURFOBJ *psoMask, - IN SURFOBJ *psoColor, - IN XLATEOBJ *pxlo, - IN FLONG fl); + _In_ HDEV hdev, + _In_ SURFOBJ *psoMask, + _In_ SURFOBJ *psoColor, + _In_ XLATEOBJ *pxlo, + _In_ FLONG fl); WIN32KAPI DWORD APIENTRY EngSetPrinterData( - IN HANDLE hPrinter, - IN LPWSTR pType, - IN DWORD dwType, - IN LPBYTE lpbPrinterData, - IN DWORD cjPrinterData); + _In_ HANDLE hPrinter, + _In_ LPWSTR pType, + _In_ DWORD dwType, + _In_reads_bytes_(cjPrinterData) LPBYTE lpbPrinterData, + _In_ DWORD cjPrinterData); typedef int (CDECL *SORTCOMP)(const void *pv1, const void *pv2); @@ -2122,349 +2138,349 @@ VOID APIENTRY EngSort( - IN OUT PBYTE pjBuf, - IN ULONG c, - IN ULONG cjElem, - IN SORTCOMP pfnComp); + _Inout_updates_bytes_(c * cjElem) PBYTE pjBuf, + _In_ ULONG c, + _In_ ULONG cjElem, + _In_ SORTCOMP pfnComp); WIN32KAPI BOOL APIENTRY EngStretchBlt( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlHTOrg, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN POINTL *pptlMask, - IN ULONG iMode); + _In_ SURFOBJ *psoDest, + _In_ SURFOBJ *psoSrc, + _In_opt_ SURFOBJ *psoMask, + _In_ CLIPOBJ *pco, + _In_ XLATEOBJ *pxlo, + _In_ COLORADJUSTMENT *pca, + _In_ POINTL *pptlHTOrg, + _In_ RECTL *prclDest, + _In_ RECTL *prclSrc, + _When_(psoMask, _In_) POINTL *pptlMask, + _In_ ULONG iMode); WIN32KAPI BOOL APIENTRY EngStretchBltROP( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlHTOrg, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN POINTL *pptlMask, - IN ULONG iMode, - IN BRUSHOBJ *pbo, - IN DWORD rop4); + _In_ SURFOBJ *psoDest, + _In_ SURFOBJ *psoSrc, + _In_opt_ SURFOBJ *psoMask, + _In_ CLIPOBJ *pco, + _In_ XLATEOBJ *pxlo, + _In_ COLORADJUSTMENT *pca, + _In_ POINTL *pptlHTOrg, + _In_ RECTL *prclDest, + _In_ RECTL *prclSrc, + _When_(psoMask, _In_) POINTL *pptlMask, + _In_ ULONG iMode, + _In_ BRUSHOBJ *pbo, + _In_ DWORD rop4); WIN32KAPI BOOL APIENTRY EngStrokeAndFillPath( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN XFORMOBJ *pxo, - IN BRUSHOBJ *pboStroke, - IN LINEATTRS *plineattrs, - IN BRUSHOBJ *pboFill, - IN POINTL *pptlBrushOrg, - IN MIX mixFill, - IN FLONG flOptions); + _Inout_ SURFOBJ *pso, + _In_ PATHOBJ *ppo, + _In_ CLIPOBJ *pco, + _In_ XFORMOBJ *pxo, + _In_ BRUSHOBJ *pboStroke, + _In_ LINEATTRS *plineattrs, + _In_ BRUSHOBJ *pboFill, + _In_ POINTL *pptlBrushOrg, + _In_ MIX mixFill, + _In_ FLONG flOptions); WIN32KAPI BOOL APIENTRY EngStrokePath( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN XFORMOBJ *pxo, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN LINEATTRS *plineattrs, - IN MIX mix); + _In_ SURFOBJ *pso, + _In_ PATHOBJ *ppo, + _In_ CLIPOBJ *pco, + _In_ XFORMOBJ *pxo, + _In_ BRUSHOBJ *pbo, + _In_ POINTL *pptlBrushOrg, + _In_ LINEATTRS *plineattrs, + _In_ MIX mix); WIN32KAPI BOOL APIENTRY EngTextOut( - IN SURFOBJ *pso, - IN STROBJ *pstro, - IN FONTOBJ *pfo, - IN CLIPOBJ *pco, - IN RECTL *prclExtra, - IN RECTL *prclOpaque, - IN BRUSHOBJ *pboFore, - IN BRUSHOBJ *pboOpaque, - IN POINTL *pptlOrg, - IN MIX mix); + _In_ SURFOBJ *pso, + _In_ STROBJ *pstro, + _In_ FONTOBJ *pfo, + _In_ CLIPOBJ *pco, + _Null_ RECTL *prclExtra, + _In_opt_ RECTL *prclOpaque, + _In_ BRUSHOBJ *pboFore, + _In_ BRUSHOBJ *pboOpaque, + _In_ POINTL *pptlOrg, + _In_ MIX mix); WIN32KAPI BOOL APIENTRY EngTransparentBlt( - IN SURFOBJ *psoDst, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDst, - IN RECTL *prclSrc, - IN ULONG iTransColor, - IN ULONG ulReserved); + _In_ SURFOBJ *psoDst, + _In_ SURFOBJ *psoSrc, + _In_ CLIPOBJ *pco, + _In_ XLATEOBJ *pxlo, + _In_ RECTL *prclDst, + _In_ RECTL *prclSrc, + _In_ ULONG iTransColor, + _In_ ULONG ulReserved); WIN32KAPI VOID APIENTRY EngUnicodeToMultiByteN( - OUT PCHAR MultiByteString, - IN ULONG MaxBytesInMultiByteString, - OUT PULONG BytesInMultiByteString, - IN PWSTR UnicodeString, - IN ULONG BytesInUnicodeString); + _Out_writes_bytes_to_(cjMultiByteBuf, *pcjMultiByteString) PCHAR pchMultiByteString, + _In_ ULONG cjMultiByteBuf, + _Out_opt_ PULONG pcjMultiByteString, + _In_reads_bytes_(cjUnicodeString) PWSTR pwszUnicodeString, + _In_ ULONG cjUnicodeString); WIN32KAPI VOID APIENTRY EngUnloadImage( - IN HANDLE hModule); + _In_ HANDLE hModule); WIN32KAPI BOOL APIENTRY EngUnlockDirectDrawSurface( - IN PDD_SURFACE_LOCAL pSurface); + _In_ PDD_SURFACE_LOCAL pSurface); WIN32KAPI BOOL APIENTRY EngUnlockDriverObj( - IN HDRVOBJ hdo); + _In_ HDRVOBJ hdo); WIN32KAPI VOID APIENTRY EngUnlockSurface( - IN SURFOBJ *pso); + _In_ SURFOBJ *pso); WIN32KAPI BOOL APIENTRY EngUnmapEvent( - IN PEVENT pEvent); + _In_ PEVENT pEvent); WIN32KAPI BOOL APIENTRY EngUnmapFile( - IN ULONG_PTR iFile); + _In_ ULONG_PTR iFile); WIN32KAPI VOID APIENTRY EngUnmapFontFile( - ULONG_PTR iFile); + _In_ ULONG_PTR iFile); WIN32KAPI VOID APIENTRY EngUnmapFontFileFD( - IN ULONG_PTR iFile); + _In_ ULONG_PTR iFile); WIN32KAPI VOID APIENTRY EngUnsecureMem( - IN HANDLE hSecure); + _In_ HANDLE hSecure); WIN32KAPI BOOL APIENTRY EngWaitForSingleObject( - IN PEVENT pEvent, - IN PLARGE_INTEGER pTimeOut); + _In_ PEVENT pEvent, + _In_ PLARGE_INTEGER pTimeOut); WIN32KAPI INT APIENTRY EngWideCharToMultiByte( - IN UINT CodePage, - IN LPWSTR WideCharString, - IN INT BytesInWideCharString, - OUT LPSTR MultiByteString, - IN INT BytesInMultiByteString); + _In_ UINT CodePage, + _In_reads_bytes_opt_(cjWideCharString) LPWSTR pwszWideCharString, + _In_ INT cjWideCharString, + _Out_z_bytecap_(cjMultiByteString) LPSTR pszMultiByteString, + _In_ INT cjMultiByteString); WIN32KAPI BOOL APIENTRY EngWritePrinter( - IN HANDLE hPrinter, - IN LPVOID pBuf, - IN DWORD cbBuf, - OUT LPDWORD pcWritten); + _In_ HANDLE hPrinter, + _In_reads_bytes_(cjBuf) LPVOID pvBuf, + _In_ DWORD cjBuf, + _Out_ LPDWORD pcWritten); #if defined(_X86_) && !defined(USERMODE_DRIVER) WIN32KAPI VOID APIENTRY FLOATOBJ_Add( - IN OUT PFLOATOBJ pf, - IN PFLOATOBJ pf1); + _Inout_ PFLOATOBJ pf, + _In_ PFLOATOBJ pf1); WIN32KAPI VOID APIENTRY FLOATOBJ_AddFloat( - IN OUT PFLOATOBJ pf, - IN FLOATL f); + _Inout_ PFLOATOBJ pf, + _In_ FLOATL f); WIN32KAPI VOID APIENTRY FLOATOBJ_AddLong( - IN OUT PFLOATOBJ pf, - IN LONG l); + _Inout_ PFLOATOBJ pf, + _In_ LONG l); WIN32KAPI VOID APIENTRY FLOATOBJ_Div( - IN OUT PFLOATOBJ pf, - IN PFLOATOBJ pf1); + _Inout_ PFLOATOBJ pf, + _In_ PFLOATOBJ pf1); WIN32KAPI VOID APIENTRY FLOATOBJ_DivFloat( - IN OUT PFLOATOBJ pf, - IN FLOATL f); + _Inout_ PFLOATOBJ pf, + _In_ FLOATL f); WIN32KAPI VOID APIENTRY FLOATOBJ_DivLong( - IN OUT PFLOATOBJ pf, - IN LONG l); + _Inout_ PFLOATOBJ pf, + _In_ LONG l); WIN32KAPI BOOL APIENTRY FLOATOBJ_Equal( - IN PFLOATOBJ pf, - IN PFLOATOBJ pf1); + _In_ PFLOATOBJ pf, + _In_ PFLOATOBJ pf1); WIN32KAPI BOOL APIENTRY FLOATOBJ_EqualLong( - IN PFLOATOBJ pf, - IN LONG l); + _In_ PFLOATOBJ pf, + _In_ LONG l); WIN32KAPI LONG APIENTRY FLOATOBJ_GetFloat( - IN PFLOATOBJ pf); + _In_ PFLOATOBJ pf); WIN32KAPI LONG APIENTRY FLOATOBJ_GetLong( - IN PFLOATOBJ pf); + _In_ PFLOATOBJ pf); WIN32KAPI BOOL APIENTRY FLOATOBJ_GreaterThan( - IN PFLOATOBJ pf, - IN PFLOATOBJ pf1); + _In_ PFLOATOBJ pf, + _In_ PFLOATOBJ pf1); WIN32KAPI BOOL APIENTRY FLOATOBJ_GreaterThanLong( - IN PFLOATOBJ pf, - IN LONG l); + _In_ PFLOATOBJ pf, + _In_ LONG l); WIN32KAPI BOOL APIENTRY FLOATOBJ_LessThan( - IN PFLOATOBJ pf, - IN PFLOATOBJ pf1); + _In_ PFLOATOBJ pf, + _In_ PFLOATOBJ pf1); WIN32KAPI BOOL APIENTRY FLOATOBJ_LessThanLong( - IN PFLOATOBJ pf, - IN LONG l); + _In_ PFLOATOBJ pf, + _In_ LONG l); WIN32KAPI VOID APIENTRY FLOATOBJ_Mul( - IN OUT PFLOATOBJ pf, - IN PFLOATOBJ pf1); + _Inout_ PFLOATOBJ pf, + _In_ PFLOATOBJ pf1); WIN32KAPI VOID APIENTRY FLOATOBJ_MulFloat( - IN OUT PFLOATOBJ pf, - IN FLOATL f); + _Inout_ PFLOATOBJ pf, + _In_ FLOATL f); WIN32KAPI VOID APIENTRY FLOATOBJ_MulLong( - IN OUT PFLOATOBJ pf, - IN LONG l); + _Inout_ PFLOATOBJ pf, + _In_ LONG l); WIN32KAPI VOID APIENTRY FLOATOBJ_Neg( - IN OUT PFLOATOBJ pf); + _Inout_ PFLOATOBJ pf); WIN32KAPI VOID APIENTRY FLOATOBJ_SetFloat( - OUT PFLOATOBJ pf, - IN FLOATL f); + _Out_ PFLOATOBJ pf, + _In_ FLOATL f); WIN32KAPI VOID APIENTRY FLOATOBJ_SetLong( - OUT PFLOATOBJ pf, - IN LONG l); + _Out_ PFLOATOBJ pf, + _In_ LONG l); WIN32KAPI VOID APIENTRY FLOATOBJ_Sub( - IN OUT PFLOATOBJ pf, - IN PFLOATOBJ pf1); + _Inout_ PFLOATOBJ pf, + _In_ PFLOATOBJ pf1); WIN32KAPI VOID APIENTRY FLOATOBJ_SubFloat( - IN OUT PFLOATOBJ pf, - IN FLOATL f); + _Inout_ PFLOATOBJ pf, + _In_ FLOATL f); WIN32KAPI VOID APIENTRY FLOATOBJ_SubLong( - IN OUT PFLOATOBJ pf, - IN LONG l); + _Inout_ PFLOATOBJ pf, + _In_ LONG l); #else @@ -2498,73 +2514,75 @@ ULONG APIENTRY FONTOBJ_cGetAllGlyphHandles( - IN FONTOBJ *pfo, - OUT HGLYPH *phg); + _In_ FONTOBJ *pfo, + _Out_opt_bytecap_(return) HGLYPH *phg); WIN32KAPI ULONG APIENTRY FONTOBJ_cGetGlyphs( - IN FONTOBJ *pfo, - IN ULONG iMode, - IN ULONG cGlyph, - IN HGLYPH *phg, - OUT PVOID *ppvGlyph); + _In_ FONTOBJ *pfo, + _In_ ULONG iMode, + _In_ ULONG cGlyph, + _In_count_(cGlyph) HGLYPH *phg, + _Out_ PVOID *ppvGlyph); WIN32KAPI FD_GLYPHSET* APIENTRY FONTOBJ_pfdg( - IN FONTOBJ *pfo); + _In_ FONTOBJ *pfo); WIN32KAPI IFIMETRICS* APIENTRY FONTOBJ_pifi( - IN FONTOBJ *pfo); - + _In_ FONTOBJ *pfo); + +_Ret_opt_bytecount_(*pcjTable) WIN32KAPI PBYTE APIENTRY FONTOBJ_pjOpenTypeTablePointer( - IN FONTOBJ *pfo, - IN ULONG ulTag, - OUT ULONG *pcjTable); + _In_ FONTOBJ *pfo, + _In_ ULONG ulTag, + _Out_ ULONG *pcjTable); WIN32KAPI PFD_GLYPHATTR APIENTRY FONTOBJ_pQueryGlyphAttrs( - IN FONTOBJ *pfo, - IN ULONG iMode); - + _In_ FONTOBJ *pfo, + _In_ ULONG iMode); + +_Ret_opt_bytecount_(*pcjFile) WIN32KAPI PVOID APIENTRY FONTOBJ_pvTrueTypeFontFile( - IN FONTOBJ *pfo, - OUT ULONG *pcjFile); + _In_ FONTOBJ *pfo, + _Out_ ULONG *pcjFile); WIN32KAPI LPWSTR APIENTRY FONTOBJ_pwszFontFilePaths( - IN FONTOBJ *pfo, - OUT ULONG *pcwc); + _In_ FONTOBJ *pfo, + _Out_ ULONG *pcwc); WIN32KAPI XFORMOBJ* APIENTRY FONTOBJ_pxoGetXform( - IN FONTOBJ *pfo); + _In_ FONTOBJ *pfo); WIN32KAPI VOID APIENTRY FONTOBJ_vGetInfo( - IN FONTOBJ *pfo, - IN ULONG cjSize, - OUT FONTINFO *pfi); + _In_ FONTOBJ *pfo, + _In_ ULONG cjSize, + _Out_bytecap_(cjSize) FONTINFO *pfi); @@ -2572,187 +2590,187 @@ LONG APIENTRY HT_ComputeRGBGammaTable( - IN USHORT GammaTableEntries, - IN USHORT GammaTableType, - IN USHORT RedGamma, - IN USHORT GreenGamma, - IN USHORT BlueGamma, - OUT LPBYTE pGammaTable); + _In_ USHORT GammaTableEntries, + _In_ USHORT GammaTableType, + _In_ USHORT RedGamma, + _In_ USHORT GreenGamma, + _In_ USHORT BlueGamma, + _Out_writes_bytes_(GammaTableEntries * 3) LPBYTE pGammaTable); WIN32KAPI LONG APIENTRY HT_Get8BPPFormatPalette( - OUT LPPALETTEENTRY pPaletteEntry, - IN USHORT RedGamma, - IN USHORT GreenGamma, - IN USHORT BlueGamma); + _Out_opt_ LPPALETTEENTRY pPaletteEntry, + _In_ USHORT RedGamma, + _In_ USHORT GreenGamma, + _In_ USHORT BlueGamma); WIN32KAPI LONG APIENTRY HT_Get8BPPMaskPalette( - IN OUT LPPALETTEENTRY pPaletteEntry, - IN BOOL Use8BPPMaskPal, - IN BYTE CMYMask, - IN USHORT RedGamma, - IN USHORT GreenGamma, - IN USHORT BlueGamma); + _Out_opt_ LPPALETTEENTRY pPaletteEntry, + _In_ BOOL Use8BPPMaskPal, + _In_ BYTE CMYMask, + _In_ USHORT RedGamma, + _In_ USHORT GreenGamma, + _In_ USHORT BlueGamma); WIN32KAPI LONG APIENTRY HTUI_DeviceColorAdjustment( - IN LPSTR pDeviceName, - OUT PDEVHTADJDATA pDevHTAdjData); + _In_ LPSTR pDeviceName, + _Out_ PDEVHTADJDATA pDevHTAdjData); WIN32KAPI ULONG APIENTRY PALOBJ_cGetColors( - IN PALOBJ *ppalo, - IN ULONG iStart, - IN ULONG cColors, - OUT ULONG *pulColors); + _In_ PALOBJ *ppalo, + _In_ ULONG iStart, + _In_ ULONG cColors, + _Out_writes_(cColors) ULONG *pulColors); WIN32KAPI BOOL APIENTRY PATHOBJ_bCloseFigure( - IN PATHOBJ *ppo); + _In_ PATHOBJ *ppo); WIN32KAPI BOOL APIENTRY PATHOBJ_bEnum( - IN PATHOBJ *ppo, - OUT PATHDATA *ppd); + _In_ PATHOBJ *ppo, + _Out_ PATHDATA *ppd); WIN32KAPI BOOL APIENTRY PATHOBJ_bEnumClipLines( - IN PATHOBJ *ppo, - IN ULONG cb, - OUT CLIPLINE *pcl); + _In_ PATHOBJ *ppo, + _In_ ULONG cj, + _Out_bytecap_(cj) CLIPLINE *pcl); WIN32KAPI BOOL APIENTRY PATHOBJ_bMoveTo( - IN PATHOBJ *ppo, - IN POINTFIX ptfx); + _In_ PATHOBJ *ppo, + _In_ POINTFIX ptfx); WIN32KAPI BOOL APIENTRY PATHOBJ_bPolyBezierTo( - IN PATHOBJ *ppo, - IN POINTFIX *pptfx, - IN ULONG cptfx); + _In_ PATHOBJ *ppo, + _In_ POINTFIX *pptfx, + _In_ ULONG cptfx); WIN32KAPI BOOL APIENTRY PATHOBJ_bPolyLineTo( - IN PATHOBJ *ppo, - IN POINTFIX *pptfx, - IN ULONG cptfx); + _In_ PATHOBJ *ppo, + _In_ POINTFIX *pptfx, + _In_ ULONG cptfx); WIN32KAPI VOID APIENTRY PATHOBJ_vEnumStart( - IN PATHOBJ *ppo); + _Inout_ PATHOBJ *ppo); WIN32KAPI VOID APIENTRY PATHOBJ_vEnumStartClipLines( - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN SURFOBJ *pso, - IN LINEATTRS *pla); + _Inout_ PATHOBJ *ppo, + _In_ CLIPOBJ *pco, + _In_ SURFOBJ *pso, + _In_ LINEATTRS *pla); WIN32KAPI VOID APIENTRY PATHOBJ_vGetBounds( - IN PATHOBJ *ppo, - OUT PRECTFX prectfx); + _In_ PATHOBJ *ppo, + _Out_ PRECTFX prectfx); WIN32KAPI BOOL APIENTRY STROBJ_bEnum( - IN STROBJ *pstro, - OUT ULONG *pc, - OUT PGLYPHPOS *ppgpos); + _Inout_ STROBJ *pstro, + _Out_ ULONG *pc, + _Out_ PGLYPHPOS *ppgpos); // FIXME_ size? WIN32KAPI BOOL APIENTRY STROBJ_bEnumPositionsOnly( - IN STROBJ *pstro, - OUT ULONG *pc, - OUT PGLYPHPOS *ppgpos); + _In_ STROBJ *pstro, + _Out_ ULONG *pc, + _Out_ PGLYPHPOS *ppgpos); // FIXME_ size? WIN32KAPI BOOL APIENTRY STROBJ_bGetAdvanceWidths( - IN STROBJ *pso, - IN ULONG iFirst, - IN ULONG c, - OUT POINTQF *pptqD); + _In_ STROBJ *pso, + _In_ ULONG iFirst, + _In_ ULONG c, + _Out_cap_(c) POINTQF *pptqD); WIN32KAPI DWORD APIENTRY STROBJ_dwGetCodePage( - IN STROBJ *pstro); + _In_ STROBJ *pstro); WIN32KAPI FIX APIENTRY STROBJ_fxBreakExtra( - IN STROBJ *pstro); + _In_ STROBJ *pstro); WIN32KAPI FIX APIENTRY STROBJ_fxCharacterExtra( - IN STROBJ *pstro); + _In_ STROBJ *pstro); WIN32KAPI VOID APIENTRY STROBJ_vEnumStart( - IN STROBJ *pstro); + _In_ STROBJ *pstro); WIN32KAPI BOOL APIENTRY WNDOBJ_bEnum( - IN WNDOBJ *pwo, - IN ULONG cj, - OUT ULONG *pul); + _Inout_ WNDOBJ *pwo, + _In_ ULONG cj, + _Out_bytecap_(cj) ULONG *pul); WIN32KAPI ULONG APIENTRY WNDOBJ_cEnumStart( - IN WNDOBJ *pwo, - IN ULONG iType, - IN ULONG iDirection, - IN ULONG cLimit); + _Inout_ WNDOBJ *pwo, + _In_ ULONG iType, + _In_ ULONG iDirection, + _In_ ULONG cLimit); WIN32KAPI VOID APIENTRY WNDOBJ_vSetConsumer( - IN WNDOBJ *pwo, - IN PVOID pvConsumer); + _Inout_ WNDOBJ *pwo, + _In_ PVOID pvConsumer); /* XFORMOBJ_bApplyXform.iMode constants */ #define XF_LTOL 0L @@ -2764,25 +2782,25 @@ BOOL APIENTRY XFORMOBJ_bApplyXform( - IN XFORMOBJ *pxo, - IN ULONG iMode, - IN ULONG cPoints, - IN PVOID pvIn, - OUT PVOID pvOut); + _In_ XFORMOBJ *pxo, + _In_ ULONG iMode, + _In_ ULONG cPoints, + _In_reads_bytes_(cPoints * sizeof(POINTL)) PVOID pvIn, + _Out_writes_bytes_(cPoints * sizeof(POINTL)) PVOID pvOut); WIN32KAPI ULONG APIENTRY XFORMOBJ_iGetFloatObjXform( - IN XFORMOBJ *pxo, - OUT FLOATOBJ_XFORM *pxfo); + _In_ XFORMOBJ *pxo, + _Out_ FLOATOBJ_XFORM *pxfo); WIN32KAPI ULONG APIENTRY XFORMOBJ_iGetXform( - IN XFORMOBJ *pxo, - OUT XFORML *pxform); + _In_ XFORMOBJ *pxo, + _Out_ XFORML *pxform); /* XLATEOBJ_cGetPalette.iPal constants */ #define XO_SRCPALETTE 1 @@ -2795,424 +2813,465 @@ ULONG APIENTRY XLATEOBJ_cGetPalette( - IN XLATEOBJ *pxlo, - IN ULONG iPal, - IN ULONG cPal, - OUT ULONG *pPal); + _In_ XLATEOBJ *pxlo, + _In_ ULONG iPal, + _In_ ULONG cPal, + _Out_cap_(cPal) ULONG *pPal); WIN32KAPI HANDLE APIENTRY XLATEOBJ_hGetColorTransform( - IN XLATEOBJ *pxlo); + _In_ XLATEOBJ *pxlo); WIN32KAPI ULONG APIENTRY XLATEOBJ_iXlate( - IN XLATEOBJ *pxlo, - IN ULONG iColor); + _In_ XLATEOBJ *pxlo, + _In_ ULONG iColor); WIN32KAPI ULONG* APIENTRY XLATEOBJ_piVector( - IN XLATEOBJ *pxlo); - + _In_ XLATEOBJ *pxlo); /* Graphics Driver Functions */ -BOOL -APIENTRY -DrvAlphaBlend( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN BLENDOBJ *pBlendObj); - -BOOL -APIENTRY -DrvAssertMode( - IN DHPDEV dhpdev, - IN BOOL bEnable); - -BOOL -APIENTRY -DrvBitBlt( - IN SURFOBJ *psoTrg, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclTrg, - IN POINTL *pptlSrc, - IN POINTL *pptlMask, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrush, - IN ROP4 rop4); - -VOID -APIENTRY -DrvCompletePDEV( - IN DHPDEV dhpdev, - IN HDEV hdev); - -BOOL -APIENTRY -DrvCopyBits( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDest, - IN POINTL *pptlSrc); - -HBITMAP -APIENTRY -DrvCreateDeviceBitmap( - IN DHPDEV dhpdev, - IN SIZEL sizl, - IN ULONG iFormat); - -VOID -APIENTRY -DrvDeleteDeviceBitmap( - IN DHSURF dhsurf); - -HBITMAP -APIENTRY -DrvDeriveSurface( - DD_DIRECTDRAW_GLOBAL *pDirectDraw, - DD_SURFACE_LOCAL *pSurface); - -LONG -APIENTRY -DrvDescribePixelFormat( - IN DHPDEV dhpdev, - IN LONG iPixelFormat, - IN ULONG cjpfd, - OUT PIXELFORMATDESCRIPTOR *ppfd); - -VOID -APIENTRY -DrvDestroyFont( - IN FONTOBJ *pfo); - -VOID -APIENTRY -DrvDisableDriver( - VOID); - -VOID -APIENTRY -DrvDisablePDEV( - IN DHPDEV dhpdev); - -VOID -APIENTRY -DrvDisableSurface( - IN DHPDEV dhpdev); +typedef BOOL +(APIENTRY FN_DrvAlphaBlend)( + _Inout_ SURFOBJ *psoDest, + _In_ SURFOBJ *psoSrc, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_ RECTL *prclDest, + _In_ RECTL *prclSrc, + _In_ BLENDOBJ *pBlendObj); +typedef FN_DrvAlphaBlend *PFN_DrvAlphaBlend; +extern FN_DrvAlphaBlend DrvAlphaBlend; + +typedef BOOL +(APIENTRY FN_DrvAssertMode)( + _In_ DHPDEV dhpdev, + _In_ BOOL bEnable); +typedef FN_DrvAssertMode *PFN_DrvAssertMode; +extern FN_DrvAssertMode DrvAssertMode; + +typedef BOOL +(APIENTRY FN_DrvBitBlt)( + _Inout_ SURFOBJ *psoTrg, + _In_opt_ SURFOBJ *psoSrc, + _In_opt_ SURFOBJ *psoMask, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_ RECTL *prclTrg, + _In_opt_ POINTL *pptlSrc, + _In_opt_ POINTL *pptlMask, + _In_opt_ BRUSHOBJ *pbo, + _In_opt_ POINTL *pptlBrush, + _In_ ROP4 rop4); +typedef FN_DrvBitBlt *PFN_DrvBitBlt; +extern FN_DrvBitBlt DrvBitBlt; + +typedef VOID +(APIENTRY FN_DrvCompletePDEV)( + _In_ DHPDEV dhpdev, + _In_ HDEV hdev); +typedef FN_DrvCompletePDEV *PFN_DrvCompletePDEV; +extern FN_DrvCompletePDEV DrvCompletePDEV; + +typedef BOOL +(APIENTRY FN_DrvCopyBits)( + _In_ SURFOBJ *psoDest, + _In_ SURFOBJ *psoSrc, + _In_ CLIPOBJ *pco, + _In_ XLATEOBJ *pxlo, + _In_ RECTL *prclDest, + _In_ POINTL *pptlSrc); +typedef FN_DrvCopyBits *PFN_DrvCopyBits; +extern FN_DrvCopyBits DrvCopyBits; + +typedef HBITMAP +(APIENTRY FN_DrvCreateDeviceBitmap)( + _In_ DHPDEV dhpdev, + _In_ SIZEL sizl, + _In_ ULONG iFormat); +typedef FN_DrvCreateDeviceBitmap *PFN_DrvCreateDeviceBitmap; +extern FN_DrvCreateDeviceBitmap DrvCreateDeviceBitmap; + +typedef VOID +(APIENTRY FN_DrvDeleteDeviceBitmap)( + _In_ DHSURF dhsurf); +typedef FN_DrvDeleteDeviceBitmap *PFN_DrvDeleteDeviceBitmap; +extern FN_DrvDeleteDeviceBitmap DrvDeleteDeviceBitmap; + +typedef HBITMAP +(APIENTRY FN_DrvDeriveSurface)( + _In_ DD_DIRECTDRAW_GLOBAL *pDirectDraw, + _In_ DD_SURFACE_LOCAL *pSurface); +typedef FN_DrvDeriveSurface *PFN_DrvDeriveSurface; +extern FN_DrvDeriveSurface DrvDeriveSurface; + +typedef LONG +(APIENTRY FN_DrvDescribePixelFormat)( + _In_ DHPDEV dhpdev, + _In_ LONG iPixelFormat, + _In_ ULONG cjpfd, + _Out_ PIXELFORMATDESCRIPTOR *ppfd); +typedef FN_DrvDescribePixelFormat *PFN_DrvDescribePixelFormat; +extern FN_DrvDescribePixelFormat DrvDescribePixelFormat; + +typedef VOID +(APIENTRY FN_DrvDestroyFont)( + _In_ FONTOBJ *pfo); +typedef FN_DrvDestroyFont *PFN_DrvDestroyFont; +extern FN_DrvDestroyFont DrvDestroyFont; + +typedef VOID +(APIENTRY FN_DrvDisableDriver)(VOID); +typedef FN_DrvDisableDriver *PFN_DrvDisableDriver; +extern FN_DrvDisableDriver DrvDisableDriver; + +typedef VOID +(APIENTRY FN_DrvDisablePDEV)( + _In_ DHPDEV dhpdev); +typedef FN_DrvDisablePDEV *PFN_DrvDisablePDEV; +extern FN_DrvDisablePDEV DrvDisablePDEV; + +typedef VOID +(APIENTRY FN_DrvDisableSurface)( + _In_ DHPDEV dhpdev); +typedef FN_DrvDisableSurface *PFN_DrvDisableSurface; +extern FN_DrvDisableSurface DrvDisableSurface; #define DM_DEFAULT 0x00000001 #define DM_MONOCHROME 0x00000002 -ULONG -APIENTRY -DrvDitherColor( - IN DHPDEV dhpdev, - IN ULONG iMode, - IN ULONG rgb, - OUT ULONG *pul); - -ULONG -APIENTRY -DrvDrawEscape( - IN SURFOBJ *pso, - IN ULONG iEsc, - IN CLIPOBJ *pco, - IN RECTL *prcl, - IN ULONG cjIn, - IN PVOID pvIn); - -BOOL -APIENTRY -DrvEnableDriver( - IN ULONG iEngineVersion, - IN ULONG cj, - OUT DRVENABLEDATA *pded); - -DHPDEV -APIENTRY -DrvEnablePDEV( - IN DEVMODEW *pdm, - IN LPWSTR pwszLogAddress, - IN ULONG cPat, - OUT HSURF *phsurfPatterns, - IN ULONG cjCaps, - OUT ULONG *pdevcaps, - IN ULONG cjDevInfo, - OUT DEVINFO *pdi, - IN HDEV hdev, - IN LPWSTR pwszDeviceName, - IN HANDLE hDriver); - -HSURF -APIENTRY -DrvEnableSurface( - IN DHPDEV dhpdev); +typedef ULONG +(APIENTRY FN_DrvDitherColor)( + _In_ DHPDEV dhpdev, + _In_ ULONG iMode, + _In_ ULONG rgb, + _Inout_updates_(8 * 8) ULONG *pul); // FIXME: compare EngDitherColor +typedef FN_DrvDitherColor *PFN_DrvDitherColor; +extern FN_DrvDitherColor DrvDitherColor; + +typedef ULONG +(APIENTRY FN_DrvDrawEscape)( + _In_ SURFOBJ *pso, + _In_ ULONG iEsc, + _In_ CLIPOBJ *pco, + _In_ RECTL *prcl, + _In_ ULONG cjIn, + _In_reads_bytes_(cjIn) PVOID pvIn); +typedef FN_DrvDrawEscape *PFN_DrvDrawEscape; +extern FN_DrvDrawEscape DrvDrawEscape; + +typedef BOOL +(APIENTRY FN_DrvEnableDriver)( + _In_ ULONG iEngineVersion, + _In_ ULONG cj, + _Inout_bytecount_(cj) DRVENABLEDATA *pded); // Zero initialized +typedef FN_DrvEnableDriver *PFN_DrvEnableDriver; +extern FN_DrvEnableDriver DrvEnableDriver; + +typedef DHPDEV +(APIENTRY FN_DrvEnablePDEV)( + _In_ DEVMODEW *pdm, + _In_ LPWSTR pwszLogAddress, + _In_ ULONG cPat, + _Out_opt_cap_(cPat) HSURF *phsurfPatterns, + _In_ ULONG cjCaps, + _Out_bytecap_(cjCaps) ULONG *pdevcaps, + _In_ ULONG cjDevInfo, + _Out_ DEVINFO *pdi, + _In_ HDEV hdev, + _In_ LPWSTR pwszDeviceName, + _In_ HANDLE hDriver); +typedef FN_DrvEnablePDEV *PFN_DrvEnablePDEV; +extern FN_DrvEnablePDEV DrvEnablePDEV; + +typedef HSURF +(APIENTRY FN_DrvEnableSurface)( + _In_ DHPDEV dhpdev); +typedef FN_DrvEnableSurface *PFN_DrvEnableSurface; +extern FN_DrvEnableSurface DrvEnableSurface; /* DrvEndDoc.fl constants */ #define ED_ABORTDOC 0x00000001 -BOOL -APIENTRY -DrvEndDoc( - IN SURFOBJ *pso, - IN FLONG fl); - -ULONG -APIENTRY -DrvEscape( - IN SURFOBJ *pso, - IN ULONG iEsc, - IN ULONG cjIn, - IN PVOID pvIn, - IN ULONG cjOut, - OUT PVOID pvOut); - -BOOL -APIENTRY -DrvFillPath( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN MIX mix, - IN FLONG flOptions); - -ULONG -APIENTRY -DrvFontManagement( - IN SURFOBJ *pso, - IN FONTOBJ *pfo, - IN ULONG iMode, - IN ULONG cjIn, - IN PVOID pvIn, - IN ULONG cjOut, - OUT PVOID pvOut); - -VOID -APIENTRY -DrvFree( - IN PVOID pv, - IN ULONG_PTR id); +typedef BOOL +(APIENTRY FN_DrvEndDoc)( + _In_ SURFOBJ *pso, + _In_ FLONG fl); +typedef FN_DrvEndDoc *PFN_DrvEndDoc; +extern FN_DrvEndDoc DrvEndDoc; + +typedef ULONG +(APIENTRY FN_DrvEscape)( + _In_ SURFOBJ *pso, + _In_ ULONG iEsc, + _In_ ULONG cjIn, + _In_bytecount_(cjIn) PVOID pvIn, + _In_ ULONG cjOut, + _Out_bytecap_(cjOut) PVOID pvOut); +typedef FN_DrvEscape *PFN_DrvEscape; +extern FN_DrvEscape DrvEscape; + +typedef BOOL +(APIENTRY FN_DrvFillPath)( + _Inout_ SURFOBJ *pso, + _In_ PATHOBJ *ppo, + _In_ CLIPOBJ *pco, + _In_ BRUSHOBJ *pbo, + _In_ POINTL *pptlBrushOrg, + _In_ MIX mix, + _In_ FLONG flOptions); +typedef FN_DrvFillPath *PFN_DrvFillPath; +extern FN_DrvFillPath DrvFillPath; + +typedef ULONG +(APIENTRY FN_DrvFontManagement)( + _In_ SURFOBJ *pso, + _In_opt_ FONTOBJ *pfo, + _In_ ULONG iMode, + _In_ ULONG cjIn, + _In_bytecount_(cjIn) PVOID pvIn, + _In_ ULONG cjOut, + _Out_bytecap_(cjOut) PVOID pvOut); +typedef FN_DrvFontManagement *PFN_DrvFontManagement; +extern FN_DrvFontManagement DrvFontManagement; + +typedef VOID +(APIENTRY FN_DrvFree)( + _In_ _Post_ptr_invalid_ PVOID pv, + _In_ ULONG_PTR id); +typedef FN_DrvFree *PFN_DrvFree; +extern FN_DrvFree DrvFree; /* DrvGetGlyphMode return values */ #define FO_HGLYPHS 0L #define FO_GLYPHBITS 1L #define FO_PATHOBJ 2L -ULONG -APIENTRY -DrvGetGlyphMode( - IN DHPDEV dhpdev, - IN FONTOBJ *pfo); - -ULONG -APIENTRY -DrvGetModes( - IN HANDLE hDriver, - IN ULONG cjSize, - OUT DEVMODEW *pdm); - -PVOID -APIENTRY -DrvGetTrueTypeFile( - IN ULONG_PTR iFile, - IN ULONG *pcj); - -BOOL -APIENTRY -DrvGradientFill( - IN SURFOBJ *psoDest, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN TRIVERTEX *pVertex, - IN ULONG nVertex, - IN PVOID pMesh, - IN ULONG nMesh, - IN RECTL *prclExtents, - IN POINTL *pptlDitherOrg, - IN ULONG ulMode); - -BOOL -APIENTRY -DrvIcmCheckBitmapBits( - IN DHPDEV dhpdev, - IN HANDLE hColorTransform, - IN SURFOBJ *pso, - OUT PBYTE paResults); - -HANDLE -APIENTRY -DrvIcmCreateColorTransform( - IN DHPDEV dhpdev, - IN LPLOGCOLORSPACEW pLogColorSpace, - IN PVOID pvSourceProfile, - IN ULONG cjSourceProfile, - IN PVOID pvDestProfile, - IN ULONG cjDestProfile, - IN PVOID pvTargetProfile, - IN ULONG cjTargetProfile, - IN DWORD dwReserved); - -BOOL -APIENTRY -DrvIcmDeleteColorTransform( - IN DHPDEV dhpdev, - IN HANDLE hcmXform); +typedef ULONG +(APIENTRY FN_DrvGetGlyphMode)( + _In_ DHPDEV dhpdev, + _In_ FONTOBJ *pfo); +typedef FN_DrvGetGlyphMode *PFN_DrvGetGlyphMode; +extern FN_DrvGetGlyphMode DrvGetGlyphMode; + +typedef ULONG +(APIENTRY FN_DrvGetModes)( + _In_ HANDLE hDriver, + _In_ ULONG cjSize, + _Out_opt_bytecap_(cjSize) DEVMODEW *pdm); +typedef FN_DrvGetModes *PFN_DrvGetModes; +extern FN_DrvGetModes DrvGetModes; + +typedef PVOID +(APIENTRY FN_DrvGetTrueTypeFile)( + _In_ ULONG_PTR iFile, + _In_ ULONG *pcj); +typedef FN_DrvGetTrueTypeFile *PFN_DrvGetTrueTypeFile; +extern FN_DrvGetTrueTypeFile DrvGetTrueTypeFile; + +typedef BOOL +(APIENTRY FN_DrvGradientFill)( + _Inout_ SURFOBJ *psoDest, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_ TRIVERTEX *pVertex, + _In_ ULONG nVertex, + _In_ PVOID pMesh, + _In_ ULONG nMesh, + _In_ RECTL *prclExtents, + _In_ POINTL *pptlDitherOrg, + _In_ ULONG ulMode); +typedef FN_DrvGradientFill *PFN_DrvGradientFill; +extern FN_DrvGradientFill DrvGradientFill; + +typedef BOOL +(APIENTRY FN_DrvIcmCheckBitmapBits)( + _In_ DHPDEV dhpdev, + _In_ HANDLE hColorTransform, + _In_ SURFOBJ *pso, + _Out_bytecap_(pso->sizlBitmap.cx * pso->sizlBitmap.cy) PBYTE paResults); +typedef FN_DrvIcmCheckBitmapBits *PFN_DrvIcmCheckBitmapBits; +extern FN_DrvIcmCheckBitmapBits DrvIcmCheckBitmapBits; + +typedef HANDLE +(APIENTRY FN_DrvIcmCreateColorTransform)( + _In_ DHPDEV dhpdev, + _In_ LPLOGCOLORSPACEW pLogColorSpace, + _In_reads_bytes_opt_(cjSourceProfile) PVOID pvSourceProfile, + _In_ ULONG cjSourceProfile, + _In_reads_bytes_(cjDestProfile) PVOID pvDestProfile, + _In_ ULONG cjDestProfile, + _In_reads_bytes_opt_(cjTargetProfile) PVOID pvTargetProfile, + _In_ ULONG cjTargetProfile, + _In_ DWORD dwReserved); +typedef FN_DrvIcmCreateColorTransform *PFN_DrvIcmCreateColorTransform; +extern FN_DrvIcmCreateColorTransform DrvIcmCreateColorTransform; + +typedef BOOL +(APIENTRY FN_DrvIcmDeleteColorTransform)( + _In_ DHPDEV dhpdev, + _In_ HANDLE hcmXform); +typedef FN_DrvIcmDeleteColorTransform *PFN_DrvIcmDeleteColorTransform; +extern FN_DrvIcmDeleteColorTransform DrvIcmDeleteColorTransform; /* DrvIcmSetDeviceGammaRamp.iFormat constants */ #define IGRF_RGB_256BYTES 0x00000000 #define IGRF_RGB_256WORDS 0x00000001 -BOOL -APIENTRY -DrvIcmSetDeviceGammaRamp( - IN DHPDEV dhpdev, - IN ULONG iFormat, - IN LPVOID lpRamp); - -BOOL -APIENTRY -DrvLineTo( - SURFOBJ *pso, - CLIPOBJ *pco, - BRUSHOBJ *pbo, - LONG x1, - LONG y1, - LONG x2, - LONG y2, - RECTL *prclBounds, - MIX mix); - -ULONG_PTR -APIENTRY -DrvLoadFontFile( - ULONG cFiles, - ULONG_PTR *piFile, - PVOID *ppvView, - ULONG *pcjView, - DESIGNVECTOR *pdv, - ULONG ulLangID, - ULONG ulFastCheckSum); - -VOID -APIENTRY -DrvMovePointer( - IN SURFOBJ *pso, - IN LONG x, - IN LONG y, - IN RECTL *prcl); - -BOOL -APIENTRY -DrvNextBand( - IN SURFOBJ *pso, - IN POINTL *pptl); - -VOID -APIENTRY -DrvNotify( - IN SURFOBJ *pso, - IN ULONG iType, - IN PVOID pvData); - -BOOL -APIENTRY -DrvOffset( - IN SURFOBJ *pso, - IN LONG x, - IN LONG y, - IN FLONG flReserved); - -BOOL -APIENTRY -DrvPaint( - IN SURFOBJ *pso, - IN CLIPOBJ *pco, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN MIX mix); - -BOOL -APIENTRY -DrvPlgBlt( - IN SURFOBJ *psoTrg, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMsk, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlBrushOrg, - IN POINTFIX *pptfx, - IN RECTL *prcl, - IN POINTL *pptl, - IN ULONG iMode); +typedef BOOL +(APIENTRY FN_DrvIcmSetDeviceGammaRamp)( + _In_ DHPDEV dhpdev, + _In_ ULONG iFormat, + _In_bytecount_(sizeof(GAMMARAMP)) LPVOID lpRamp); +typedef FN_DrvIcmSetDeviceGammaRamp *PFN_DrvIcmSetDeviceGammaRamp; +extern FN_DrvIcmSetDeviceGammaRamp DrvIcmSetDeviceGammaRamp; + +typedef BOOL +(APIENTRY FN_DrvLineTo)( + _Inout_ SURFOBJ *pso, + _In_ CLIPOBJ *pco, + _In_ BRUSHOBJ *pbo, + _In_ LONG x1, + _In_ LONG y1, + _In_ LONG x2, + _In_ LONG y2, + _In_opt_ RECTL *prclBounds, + _In_ MIX mix); +typedef FN_DrvLineTo *PFN_DrvLineTo; +extern FN_DrvLineTo DrvLineTo; + +typedef ULONG_PTR +(APIENTRY FN_DrvLoadFontFile)( + _In_ ULONG cFiles, + _In_ ULONG_PTR *piFile, + _In_count_(cFiles) PVOID *ppvView, + _In_count_(cFiles) ULONG *pcjView, + _In_opt_ DESIGNVECTOR *pdv, + _In_ ULONG ulLangID, + _In_ ULONG ulFastCheckSum); +typedef FN_DrvLoadFontFile *PFN_DrvLoadFontFile; +extern FN_DrvLoadFontFile DrvLoadFontFile; + +typedef VOID +(APIENTRY FN_DrvMovePointer)( + _In_ SURFOBJ *pso, + _In_ LONG x, + _In_ LONG y, + _In_opt_ RECTL *prcl); +typedef FN_DrvMovePointer *PFN_DrvMovePointer; +extern FN_DrvMovePointer DrvMovePointer; + +typedef BOOL +(APIENTRY FN_DrvNextBand)( + _In_ SURFOBJ *pso, + _In_ POINTL *pptl); +typedef FN_DrvNextBand *PFN_DrvNextBand; +extern FN_DrvNextBand DrvNextBand; + +typedef VOID +(APIENTRY FN_DrvNotify)( + _In_ SURFOBJ *pso, + _In_ ULONG iType, + _In_opt_ PVOID pvData); +typedef FN_DrvNotify *PFN_DrvNotify; +extern FN_DrvNotify DrvNotify; + +typedef BOOL +(APIENTRY FN_DrvOffset)( + _In_ SURFOBJ *pso, + _In_ LONG x, + _In_ LONG y, + _In_ FLONG flReserved); +typedef FN_DrvOffset *PFN_DrvOffset; +extern FN_DrvOffset DrvOffset; + +typedef BOOL +(APIENTRY FN_DrvPaint)( + _Inout_ SURFOBJ *pso, + _In_ CLIPOBJ *pco, + _In_ BRUSHOBJ *pbo, + _In_ POINTL *pptlBrushOrg, + _In_ MIX mix); +typedef FN_DrvPaint *PFN_DrvPaint; +extern FN_DrvPaint DrvPaint; + +typedef BOOL +(APIENTRY FN_DrvPlgBlt)( + _Inout_ SURFOBJ *psoTrg, + _Inout_ SURFOBJ *psoSrc, + _In_opt_ SURFOBJ *psoMsk, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_opt_ COLORADJUSTMENT *pca, + _In_opt_ POINTL *pptlBrushOrg, + _In_ POINTFIX *pptfx, + _In_ RECTL *prcl, + _In_opt_ POINTL *pptl, + _In_ ULONG iMode); +typedef FN_DrvPlgBlt *PFN_DrvPlgBlt; +extern FN_DrvPlgBlt DrvPlgBlt; /* DrvQueryAdvanceWidths.iMode constants */ #define QAW_GETWIDTHS 0 #define QAW_GETEASYWIDTHS 1 -BOOL -APIENTRY -DrvQueryAdvanceWidths( - IN DHPDEV dhpdev, - IN FONTOBJ *pfo, - IN ULONG iMode, - IN HGLYPH *phg, - OUT PVOID pvWidths, - IN ULONG cGlyphs); +typedef BOOL +(APIENTRY FN_DrvQueryAdvanceWidths)( + _In_ DHPDEV dhpdev, + _In_ FONTOBJ *pfo, + _In_ ULONG iMode, + _In_count_(cGlyphs) HGLYPH *phg, + _Out_bytecap_(cGlyphs * sizeof(USHORT)) PVOID pvWidths, // CHECKME + _In_ ULONG cGlyphs); +typedef FN_DrvQueryAdvanceWidths *PFN_DrvQueryAdvanceWidths; +extern FN_DrvQueryAdvanceWidths DrvQueryAdvanceWidths; /* DrvQueryDeviceSupport.iType constants */ #define QDS_CHECKJPEGFORMAT 0x00000000 #define QDS_CHECKPNGFORMAT 0x00000001 -BOOL -APIENTRY -DrvQueryDeviceSupport( - SURFOBJ *pso, - XLATEOBJ *pxlo, - XFORMOBJ *pxo, - ULONG iType, - ULONG cjIn, - PVOID pvIn, - ULONG cjOut, - PVOID pvOut); +typedef BOOL +(APIENTRY FN_DrvQueryDeviceSupport)( + _In_ SURFOBJ *pso, + _In_ XLATEOBJ *pxlo, + _In_ XFORMOBJ *pxo, + _In_ ULONG iType, + _In_ ULONG cjIn, + _In_bytecount_(cjIn) PVOID pvIn, + _In_ ULONG cjOut, + _Out_bytecap_(cjOut) PVOID pvOut); +typedef FN_DrvQueryDeviceSupport *PFN_DrvQueryDeviceSupport; +extern FN_DrvQueryDeviceSupport DrvQueryDeviceSupport; /* DrvQueryDriverInfo.dwMode constants */ #define DRVQUERY_USERMODE 0x00000001 -BOOL -APIENTRY -DrvQueryDriverInfo( - DWORD dwMode, - PVOID pBuffer, - DWORD cbBuf, - PDWORD pcbNeeded); - -PIFIMETRICS -APIENTRY -DrvQueryFont( - IN DHPDEV dhpdev, - IN ULONG_PTR iFile, - IN ULONG iFace, - IN ULONG_PTR *pid); +typedef BOOL +(APIENTRY FN_DrvQueryDriverInfo)( + _In_ DWORD dwMode, + _Out_bytecap_(cjBuf) PVOID pBuffer, + _In_ DWORD cjBuf, + _Out_ PDWORD pcbNeeded); +typedef FN_DrvQueryDriverInfo *PFN_DrvQueryDriverInfo; +extern FN_DrvQueryDriverInfo DrvQueryDriverInfo; + +typedef PIFIMETRICS +(APIENTRY FN_DrvQueryFont)( + _In_ DHPDEV dhpdev, + _In_ ULONG_PTR iFile, + _In_ ULONG iFace, + _Out_ ULONG_PTR *pid); +typedef FN_DrvQueryFont *PFN_DrvQueryFont; +extern FN_DrvQueryFont DrvQueryFont; /* DrvQueryFontCaps.pulCaps constants */ #define QC_OUTLINES 0x00000001 @@ -3221,11 +3280,12 @@ #define QC_FONTDRIVERCAPS (QC_OUTLINES | QC_1BIT | QC_4BIT) -LONG -APIENTRY -DrvQueryFontCaps( - IN ULONG culCaps, - OUT ULONG *pulCaps); +typedef LONG +(APIENTRY FN_DrvQueryFontCaps)( + _In_ ULONG culCaps, + _Out_cap_(culCaps) ULONG *pulCaps); +typedef FN_DrvQueryFontCaps *PFN_DrvQueryFontCaps; +extern FN_DrvQueryFontCaps DrvQueryFontCaps; /* DrvQueryFontData.iMode constants */ #define QFD_GLYPHANDBITMAP 1L @@ -3239,28 +3299,30 @@ #define QFD_TT_MONO_BITMAP QFD_TT_GRAY1_BITMAP -LONG -APIENTRY -DrvQueryFontData( - IN DHPDEV dhpdev, - IN FONTOBJ *pfo, - IN ULONG iMode, - IN HGLYPH hg, - IN OUT GLYPHDATA *pgd, - IN OUT PVOID pv, - IN ULONG cjSize); +typedef LONG +(APIENTRY FN_DrvQueryFontData)( + _In_ DHPDEV dhpdev, + _In_ FONTOBJ *pfo, + _In_ ULONG iMode, + _In_ HGLYPH hg, + _In_opt_ GLYPHDATA *pgd, + _Out_bytecap_(cjSize) PVOID pv, + _In_ ULONG cjSize); +typedef FN_DrvQueryFontData *PFN_DrvQueryFontData; +extern FN_DrvQueryFontData DrvQueryFontData; /* DrvQueryFontFile.ulMode constants */ #define QFF_DESCRIPTION 0x00000001 #define QFF_NUMFACES 0x00000002 -LONG -APIENTRY -DrvQueryFontFile( - IN ULONG_PTR iFile, - IN ULONG ulMode, - IN ULONG cjBuf, - IN ULONG *pulBuf); +typedef LONG +(APIENTRY FN_DrvQueryFontFile)( + _In_ ULONG_PTR iFile, + _In_ ULONG ulMode, + _In_ ULONG cjBuf, + _Out_bytecap_(cjBuf) ULONG *pulBuf); +typedef FN_DrvQueryFontFile *PFN_DrvQueryFontFile; +extern FN_DrvQueryFontFile DrvQueryFontFile; /* DrvQueryFontTree.iMode constants */ #define QFT_UNICODE 0L @@ -3268,119 +3330,135 @@ #define QFT_KERNPAIRS 2L #define QFT_GLYPHSET 3L -PVOID -APIENTRY -DrvQueryFontTree( - IN DHPDEV dhpdev, - IN ULONG_PTR iFile, - IN ULONG iFace, - IN ULONG iMode, - IN ULONG_PTR *pid); - -PFD_GLYPHATTR -APIENTRY -DrvQueryGlyphAttrs( - IN FONTOBJ *pfo, - IN ULONG iMode); - -ULONG -APIENTRY -DrvQueryPerBandInfo( - IN SURFOBJ *pso, - IN OUT PERBANDINFO *pbi); +typedef PVOID +(APIENTRY FN_DrvQueryFontTree)( + _In_ DHPDEV dhpdev, + _In_ ULONG_PTR iFile, + _In_ ULONG iFace, + _In_ ULONG iMode, + _Out_ ULONG_PTR *pid); +typedef FN_DrvQueryFontTree *PFN_DrvQueryFontTree; +extern FN_DrvQueryFontTree DrvQueryFontTree; + +typedef PFD_GLYPHATTR +(APIENTRY FN_DrvQueryGlyphAttrs)( + _In_ FONTOBJ *pfo, + _In_ ULONG iMode); +typedef FN_DrvQueryGlyphAttrs *PFN_DrvQueryGlyphAttrs; +extern FN_DrvQueryGlyphAttrs DrvQueryGlyphAttrs; + +typedef ULONG +(APIENTRY FN_DrvQueryPerBandInfo)( + _In_ SURFOBJ *pso, + _Inout_ PERBANDINFO *pbi); +typedef FN_DrvQueryPerBandInfo *PFN_DrvQueryPerBandInfo; +extern FN_DrvQueryPerBandInfo DrvQueryPerBandInfo; /* DrvQueryTrueTypeOutline.bMetricsOnly constants */ #define TTO_METRICS_ONLY 0x00000001 #define TTO_QUBICS 0x00000002 #define TTO_UNHINTED 0x00000004 -LONG -APIENTRY -DrvQueryTrueTypeOutline( - IN DHPDEV dhpdev, - IN FONTOBJ *pfo, - IN HGLYPH hglyph, - IN BOOL bMetricsOnly, - IN GLYPHDATA *pgldt, - IN ULONG cjBuf, - OUT TTPOLYGONHEADER *ppoly); - -LONG -APIENTRY -DrvQueryTrueTypeTable( - IN ULONG_PTR iFile, - IN ULONG ulFont, - IN ULONG ulTag, - IN PTRDIFF dpStart, - IN ULONG cjBuf, - OUT BYTE *pjBuf, - OUT PBYTE *ppjTable, - OUT ULONG *pcjTable); +typedef LONG +(APIENTRY FN_DrvQueryTrueTypeOutline)( + _In_ DHPDEV dhpdev, + _In_ FONTOBJ *pfo, + _In_ HGLYPH hglyph, + _In_ BOOL bMetricsOnly, + _Out_opt_ GLYPHDATA *pgldt, + _In_ ULONG cjBuf, + _Out_bytecap_(cjBuf) TTPOLYGONHEADER *ppoly); +typedef FN_DrvQueryTrueTypeOutline *PFN_DrvQueryTrueTypeOutline; +extern FN_DrvQueryTrueTypeOutline DrvQueryTrueTypeOutline; + +typedef LONG +(APIENTRY FN_DrvQueryTrueTypeTable)( + _In_ ULONG_PTR iFile, + _In_ ULONG ulFont, + _In_ ULONG ulTag, + _In_ PTRDIFF dpStart, + _In_ ULONG cjBuf, + _Out_opt_bytecap_(cjBuf) BYTE *pjBuf, + _Out_opt_ PBYTE *ppjTable, + _Out_opt_ ULONG *pcjTable); +typedef FN_DrvQueryTrueTypeTable *PFN_DrvQueryTrueTypeTable; +extern FN_DrvQueryTrueTypeTable DrvQueryTrueTypeTable; /* DrvRealizeBrush.iHatch constants */ #define RB_DITHERCOLOR 0x80000000L #define HS_DDI_MAX 6 -BOOL -APIENTRY -DrvRealizeBrush( - IN BRUSHOBJ *pbo, - IN SURFOBJ *psoTarget, - IN SURFOBJ *psoPattern, - IN SURFOBJ *psoMask, - IN XLATEOBJ *pxlo, - IN ULONG iHatch); +typedef BOOL +(APIENTRY FN_DrvRealizeBrush)( + _In_ BRUSHOBJ *pbo, + _Inout_ SURFOBJ *psoTarget, // CHECKME + _In_ SURFOBJ *psoPattern, + _In_ SURFOBJ *psoMask, + _In_ XLATEOBJ *pxlo, + _In_ ULONG iHatch); +typedef FN_DrvRealizeBrush *PFN_DrvRealizeBrush; +extern FN_DrvRealizeBrush DrvRealizeBrush; /* DrvResetDevice return values */ #define DRD_SUCCESS 0 #define DRD_ERROR 1 -ULONG -APIENTRY -DrvResetDevice( - IN DHPDEV dhpdev, - IN PVOID Reserved); - -BOOL -APIENTRY -DrvResetPDEV( - DHPDEV dhpdevOld, - DHPDEV dhpdevNew); +typedef ULONG +(APIENTRY FN_DrvResetDevice)( + _In_ DHPDEV dhpdev, + _Reserved_ PVOID Reserved); +typedef FN_DrvResetDevice *PFN_DrvResetDevice; +extern FN_DrvResetDevice DrvResetDevice; + +typedef BOOL +(APIENTRY FN_DrvResetPDEV)( + _In_ DHPDEV dhpdevOld, + _In_ DHPDEV dhpdevNew); +typedef FN_DrvResetPDEV *PFN_DrvResetPDEV; +extern FN_DrvResetPDEV DrvResetPDEV; /* DrvSaveScreenBits.iMode constants */ #define SS_SAVE 0x00000000 #define SS_RESTORE 0x00000001 #define SS_FREE 0x00000002 -ULONG_PTR -APIENTRY -DrvSaveScreenBits( - IN SURFOBJ *pso, - IN ULONG iMode, - IN ULONG_PTR ident, - IN RECTL *prcl); - -BOOL -APIENTRY -DrvSendPage( - IN SURFOBJ *pso); - -BOOL -APIENTRY -DrvSetPalette( - IN DHPDEV dhpdev, - IN PALOBJ *ppalo, - IN FLONG fl, - IN ULONG iStart, - IN ULONG cColors); - -BOOL -APIENTRY -DrvSetPixelFormat( - IN SURFOBJ *pso, - IN LONG iPixelFormat, - IN HWND hwnd); +typedef ULONG_PTR +(APIENTRY FN_DrvSaveScreenBits)( + _In_ SURFOBJ *pso, + _In_ ULONG iMode, + _In_ ULONG_PTR ident, + _In_ RECTL *prcl); +typedef FN_DrvSaveScreenBits *PFN_DrvSaveScreenBits; +extern FN_DrvSaveScreenBits DrvSaveScreenBits; + +typedef BOOL +(APIENTRY FN_DrvSendPage)( + _In_ SURFOBJ *pso); +typedef FN_DrvSendPage *PFN_DrvSendPage; +extern FN_DrvSendPage DrvSendPage; + +/* DrvSetPalette range */ +#define WINDDI_MAXSETPALETTECOLORS 256 +#define WINDDI_MAXSETPALETTECOLORINDEX 255 + +typedef BOOL +(APIENTRY FN_DrvSetPalette)( + _In_ DHPDEV dhpdev, + _In_ PALOBJ *ppalo, + _In_ FLONG fl, + _In_range_(0, WINDDI_MAXSETPALETTECOLORINDEX) ULONG iStart, + _In_range_(0, WINDDI_MAXSETPALETTECOLORS - iStart) ULONG cColors); +typedef FN_DrvSetPalette *PFN_DrvSetPalette; +extern FN_DrvSetPalette DrvSetPalette; + +typedef BOOL +(APIENTRY FN_DrvSetPixelFormat)( + _In_ SURFOBJ *pso, + _In_ LONG iPixelFormat, + _In_ HWND hwnd); +typedef FN_DrvSetPixelFormat *PFN_DrvSetPixelFormat; +extern FN_DrvSetPixelFormat DrvSetPixelFormat; /* DrvSetPointerShape return values */ #define SPS_ERROR 0x00000000 @@ -3398,761 +3476,198 @@ #define SPS_LENGTHMASK 0x00000F00L #define SPS_FREQMASK 0x000FF000L -ULONG -APIENTRY -DrvSetPointerShape( - IN SURFOBJ *pso, - IN SURFOBJ *psoMask, - IN SURFOBJ *psoColor, - IN XLATEOBJ *pxlo, - IN LONG xHot, - IN LONG yHot, - IN LONG x, - IN LONG y, - IN RECTL *prcl, - IN FLONG fl); - -BOOL -APIENTRY -DrvStartBanding( - IN SURFOBJ *pso, - IN POINTL *pptl); - -BOOL -APIENTRY -DrvStartDoc( - IN SURFOBJ *pso, - IN LPWSTR pwszDocName, - IN DWORD dwJobId); - -BOOL -APIENTRY -DrvStartPage( - IN SURFOBJ *pso); - -BOOL -APIENTRY -DrvStretchBlt( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlHTOrg, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN POINTL *pptlMask, - IN ULONG iMode); - -BOOL -APIENTRY -DrvStretchBltROP( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlHTOrg, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN POINTL *pptlMask, - IN ULONG iMode, - IN BRUSHOBJ *pbo, - IN DWORD rop4); - -BOOL -APIENTRY -DrvStrokeAndFillPath( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN XFORMOBJ *pxo, - IN BRUSHOBJ *pboStroke, - IN LINEATTRS *plineattrs, - IN BRUSHOBJ *pboFill, - IN POINTL *pptlBrushOrg, - IN MIX mixFill, - IN FLONG flOptions); - -BOOL -APIENTRY -DrvStrokePath( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN XFORMOBJ *pxo, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN LINEATTRS *plineattrs, - IN MIX mix); - -BOOL -APIENTRY -DrvSwapBuffers( - IN SURFOBJ *pso, - IN WNDOBJ *pwo); - -VOID -APIENTRY -DrvSynchronize( - IN DHPDEV dhpdev, - IN RECTL *prcl); +typedef ULONG +(APIENTRY FN_DrvSetPointerShape)( + _In_ SURFOBJ *pso, + _In_opt_ SURFOBJ *psoMask, + _In_opt_ SURFOBJ *psoColor, + _In_ XLATEOBJ *pxlo, + _In_ LONG xHot, + _In_ LONG yHot, + _In_ LONG x, + _In_ LONG y, + _In_ RECTL *prcl, + _In_ FLONG fl); +typedef FN_DrvSetPointerShape *PFN_DrvSetPointerShape; +extern FN_DrvSetPointerShape DrvSetPointerShape; + +typedef BOOL +(APIENTRY FN_DrvStartBanding)( + _In_ SURFOBJ *pso, + _In_ POINTL *pptl); +typedef FN_DrvStartBanding *PFN_DrvStartBanding; +extern FN_DrvStartBanding DrvStartBanding; + +typedef BOOL +(APIENTRY FN_DrvStartDoc)( + _In_ SURFOBJ *pso, + _In_ LPWSTR pwszDocName, + _In_ DWORD dwJobId); +typedef FN_DrvStartDoc *PFN_DrvStartDoc; +extern FN_DrvStartDoc DrvStartDoc; + +typedef BOOL +(APIENTRY FN_DrvStartPage)( + _In_ SURFOBJ *pso); +typedef FN_DrvStartPage *PFN_DrvStartPage; +extern FN_DrvStartPage DrvStartPage; + +typedef BOOL +(APIENTRY FN_DrvStretchBlt)( + _Inout_ SURFOBJ *psoDest, + _Inout_ SURFOBJ *psoSrc, + _In_opt_ SURFOBJ *psoMask, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_opt_ COLORADJUSTMENT *pca, + _In_ POINTL *pptlHTOrg, + _In_ RECTL *prclDest, + _In_ RECTL *prclSrc, + _When_(psoMask, _In_) POINTL *pptlMask, + _In_ ULONG iMode); +typedef FN_DrvStretchBlt *PFN_DrvStretchBlt; +extern FN_DrvStretchBlt DrvStretchBlt; + +typedef BOOL +(APIENTRY FN_DrvStretchBltROP)( + _Inout_ SURFOBJ *psoDest, + _Inout_ SURFOBJ *psoSrc, + _In_opt_ SURFOBJ *psoMask, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_opt_ COLORADJUSTMENT *pca, + _In_ POINTL *pptlHTOrg, + _In_ RECTL *prclDest, + _In_ RECTL *prclSrc, + _When_(psoMask, _In_) POINTL *pptlMask, + _In_ ULONG iMode, + _In_ BRUSHOBJ *pbo, + _In_ DWORD rop4); +typedef FN_DrvStretchBltROP *PFN_DrvStretchBltROP; +extern FN_DrvStretchBltROP DrvStretchBltROP; + +typedef BOOL +(APIENTRY FN_DrvStrokeAndFillPath)( + _Inout_ SURFOBJ *pso, + _Inout_ PATHOBJ *ppo, + _In_ CLIPOBJ *pco, + _In_opt_ XFORMOBJ *pxo, + _In_ BRUSHOBJ *pboStroke, + _In_ LINEATTRS *plineattrs, + _In_ BRUSHOBJ *pboFill, + _In_ POINTL *pptlBrushOrg, + _In_ MIX mixFill, + _In_ FLONG flOptions); +typedef FN_DrvStrokeAndFillPath *PFN_DrvStrokeAndFillPath; +extern FN_DrvStrokeAndFillPath DrvStrokeAndFillPath; + +typedef BOOL +(APIENTRY FN_DrvStrokePath)( + _Inout_ SURFOBJ *pso, + _In_ PATHOBJ *ppo, + _In_ CLIPOBJ *pco, + _In_opt_ XFORMOBJ *pxo, + _In_ BRUSHOBJ *pbo, + _In_ POINTL *pptlBrushOrg, + _In_ LINEATTRS *plineattrs, + _In_ MIX mix); +typedef FN_DrvStrokePath *PFN_DrvStrokePath; +extern FN_DrvStrokePath DrvStrokePath; + +typedef BOOL +(APIENTRY FN_DrvSwapBuffers)( + _In_ SURFOBJ *pso, + _In_ WNDOBJ *pwo); +typedef FN_DrvSwapBuffers *PFN_DrvSwapBuffers; +extern FN_DrvSwapBuffers DrvSwapBuffers; + +typedef VOID +(APIENTRY FN_DrvSynchronize)( + _In_ DHPDEV dhpdev, + _In_count_c_(0) RECTL *prcl); // should be ignored +typedef FN_DrvSynchronize *PFN_DrvSynchronize; +extern FN_DrvSynchronize DrvSynchronize; /* DrvSynchronizeSurface.fl constants */ #define DSS_TIMER_EVENT 0x00000001 #define DSS_FLUSH_EVENT 0x00000002 -VOID -APIENTRY -DrvSynchronizeSurface( - IN SURFOBJ *pso, - IN RECTL *prcl, - IN FLONG fl); - -BOOL -APIENTRY -DrvTextOut( - IN SURFOBJ *pso, - IN STROBJ *pstro, - IN FONTOBJ *pfo, - IN CLIPOBJ *pco, - IN RECTL *prclExtra, - IN RECTL *prclOpaque, - IN BRUSHOBJ *pboFore, - IN BRUSHOBJ *pboOpaque, - IN POINTL *pptlOrg, - IN MIX mix); - -BOOL -APIENTRY -DrvTransparentBlt( - IN SURFOBJ *psoDst, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDst, - IN RECTL *prclSrc, - IN ULONG iTransColor, - IN ULONG ulReserved); - -BOOL -APIENTRY -DrvUnloadFontFile( - IN ULONG_PTR iFile); - -typedef BOOL -(APIENTRY *PFN_DrvAlphaBlend)( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN BLENDOBJ *pBlendObj); - -typedef BOOL -(APIENTRY *PFN_DrvAssertMode)( - IN DHPDEV dhpdev, - IN BOOL bEnable); - -typedef BOOL -(APIENTRY *PFN_DrvBitBlt)( - IN SURFOBJ *psoTrg, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclTrg, - IN POINTL *pptlSrc, - IN POINTL *pptlMask, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrush, - IN ROP4 rop4); - typedef VOID -(APIENTRY *PFN_DrvCompletePDEV)( - IN DHPDEV dhpdev, - IN HDEV hdev); - -typedef BOOL -(APIENTRY *PFN_DrvCopyBits)( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDest, - IN POINTL *pptlSrc); - -typedef HBITMAP -(APIENTRY *PFN_DrvCreateDeviceBitmap)( - IN DHPDEV dhpdev, - IN SIZEL sizl, - IN ULONG iFormat); +(APIENTRY FN_DrvSynchronizeSurface)( + _In_ SURFOBJ *pso, + _In_opt_ RECTL *prcl, + _In_ FLONG fl); +typedef FN_DrvSynchronizeSurface *PFN_DrvSynchronizeSurface; +extern FN_DrvSynchronizeSurface DrvSynchronizeSurface; + +typedef BOOL +(APIENTRY FN_DrvTextOut)( + _In_ SURFOBJ *pso, + _In_ STROBJ *pstro, + _In_ FONTOBJ *pfo, + _In_ CLIPOBJ *pco, + _Null_ RECTL *prclExtra, + _In_opt_ RECTL *prclOpaque, + _In_ BRUSHOBJ *pboFore, + _In_ BRUSHOBJ *pboOpaque, + _In_ POINTL *pptlOrg, + _In_ MIX mix); +typedef FN_DrvTextOut *PFN_DrvTextOut; +extern FN_DrvTextOut DrvTextOut; + +typedef BOOL +(APIENTRY FN_DrvTransparentBlt)( + _Inout_ SURFOBJ *psoDst, + _In_ SURFOBJ *psoSrc, + _In_ CLIPOBJ *pco, + _In_opt_ XLATEOBJ *pxlo, + _In_ RECTL *prclDst, + _In_ RECTL *prclSrc, + _In_ ULONG iTransColor, + _In_ ULONG ulReserved); +typedef FN_DrvTransparentBlt *PFN_DrvTransparentBlt; +extern FN_DrvTransparentBlt DrvTransparentBlt; + +typedef BOOL +(APIENTRY FN_DrvUnloadFontFile)( + _In_ ULONG_PTR iFile); +typedef FN_DrvUnloadFontFile *PFN_DrvUnloadFontFile; +extern FN_DrvUnloadFontFile DrvUnloadFontFile; + +/* Direct draw */ typedef VOID -(APIENTRY *PFN_DrvDeleteDeviceBitmap)( - IN DHSURF dhsurf); - -typedef HBITMAP -(APIENTRY *PFN_DrvDeriveSurface)( - DD_DIRECTDRAW_GLOBAL *pDirectDraw, - DD_SURFACE_LOCAL *pSurface); - -typedef LONG -(APIENTRY *PFN_DrvDescribePixelFormat)( - IN DHPDEV dhpdev, - IN LONG iPixelFormat, - IN ULONG cjpfd, - OUT PIXELFORMATDESCRIPTOR *ppfd); - -typedef VOID -(APIENTRY *PFN_DrvDestroyFont)( - IN FONTOBJ *pfo); - -typedef VOID -(APIENTRY *PFN_DrvDisableDriver)( - VOID); - -typedef VOID -(APIENTRY *PFN_DrvDisablePDEV)( - IN DHPDEV dhpdev); - -typedef VOID -(APIENTRY *PFN_DrvDisableSurface)( - IN DHPDEV dhpdev); - -typedef ULONG -(APIENTRY *PFN_DrvDitherColor)( - IN DHPDEV dhpdev, - IN ULONG iMode, - IN ULONG rgb, - OUT ULONG *pul); - -typedef ULONG -(APIENTRY *PFN_DrvDrawEscape)( - IN SURFOBJ *pso, - IN ULONG iEsc, - IN CLIPOBJ *pco, - IN RECTL *prcl, - IN ULONG cjIn, - IN PVOID pvIn); - -typedef BOOL -(APIENTRY *PFN_DrvEnableDriver)( - IN ULONG iEngineVersion, - IN ULONG cj, - OUT DRVENABLEDATA *pded); - -typedef DHPDEV -(APIENTRY *PFN_DrvEnablePDEV)( - IN DEVMODEW *pdm, - IN LPWSTR pwszLogAddress, - IN ULONG cPat, - OUT HSURF *phsurfPatterns, - IN ULONG cjCaps, - GDIINFO *pdevcaps, - IN ULONG cjDevInfo, - OUT DEVINFO *pdi, - IN HDEV hdev, - IN LPWSTR pwszDeviceName, - IN HANDLE hDriver); - -typedef HSURF -(APIENTRY *PFN_DrvEnableSurface)( - IN DHPDEV dhpdev); - -typedef BOOL -(APIENTRY *PFN_DrvEndDoc)( - IN SURFOBJ *pso, - IN FLONG fl); - -typedef ULONG -(APIENTRY *PFN_DrvEscape)( - IN SURFOBJ *pso, - IN ULONG iEsc, - IN ULONG cjIn, - IN PVOID pvIn, - IN ULONG cjOut, - OUT PVOID pvOut); - -typedef BOOL -(APIENTRY *PFN_DrvFillPath)( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN MIX mix, - IN FLONG flOptions); - -typedef ULONG -(APIENTRY *PFN_DrvFontManagement)( - IN SURFOBJ *pso, - IN FONTOBJ *pfo, - IN ULONG iMode, - IN ULONG cjIn, - IN PVOID pvIn, - IN ULONG cjOut, - OUT PVOID pvOut); - -typedef VOID -(APIENTRY *PFN_DrvFree)( - IN PVOID pv, - IN ULONG_PTR id); - -typedef ULONG -(APIENTRY *PFN_DrvGetGlyphMode)( - IN DHPDEV dhpdev, - IN FONTOBJ *pfo); - -typedef ULONG -(APIENTRY *PFN_DrvGetModes)( - IN HANDLE hDriver, - IN ULONG cjSize, - OUT DEVMODEW *pdm); - -typedef PVOID -(APIENTRY *PFN_DrvGetTrueTypeFile)( - IN ULONG_PTR iFile, - IN ULONG *pcj); - -typedef BOOL -(APIENTRY *PFN_DrvGradientFill)( - IN SURFOBJ *psoDest, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN TRIVERTEX *pVertex, - IN ULONG nVertex, - IN PVOID pMesh, - IN ULONG nMesh, - IN RECTL *prclExtents, - IN POINTL *pptlDitherOrg, - IN ULONG ulMode); - -typedef BOOL -(APIENTRY *PFN_DrvIcmCheckBitmapBits)( - IN DHPDEV dhpdev, - IN HANDLE hColorTransform, - IN SURFOBJ *pso, - OUT PBYTE paResults); - -typedef HANDLE -(APIENTRY *PFN_DrvIcmCreateColorTransform)( - IN DHPDEV dhpdev, - IN LPLOGCOLORSPACEW pLogColorSpace, - IN PVOID pvSourceProfile, - IN ULONG cjSourceProfile, - IN PVOID pvDestProfile, - IN ULONG cjDestProfile, - IN PVOID pvTargetProfile, - IN ULONG cjTargetProfile, - IN DWORD dwReserved); - -typedef BOOL -(APIENTRY *PFN_DrvIcmDeleteColorTransform)( - IN DHPDEV dhpdev, - IN HANDLE hcmXform); - -typedef BOOL -(APIENTRY *PFN_DrvIcmSetDeviceGammaRamp)( - IN DHPDEV dhpdev, - IN ULONG iFormat, - IN LPVOID lpRamp); - -typedef BOOL -(APIENTRY *PFN_DrvLineTo)( - SURFOBJ *pso, - CLIPOBJ *pco, - BRUSHOBJ *pbo, - LONG x1, - LONG y1, - LONG x2, - LONG y2, - RECTL *prclBounds, - MIX mix); - -typedef ULONG_PTR -(APIENTRY *PFN_DrvLoadFontFile)( - ULONG cFiles, - ULONG_PTR *piFile, - PVOID *ppvView, - ULONG *pcjView, - DESIGNVECTOR *pdv, - ULONG ulLangID, - ULONG ulFastCheckSum); - -typedef VOID -(APIENTRY *PFN_DrvMovePointer)( - IN SURFOBJ *pso, - IN LONG x, - IN LONG y, - IN RECTL *prcl); - -typedef BOOL -(APIENTRY *PFN_DrvNextBand)( - IN SURFOBJ *pso, - IN POINTL *pptl); - -typedef VOID -(APIENTRY *PFN_DrvNotify)( - IN SURFOBJ *pso, - IN ULONG iType, - IN PVOID pvData); - -typedef BOOL -(APIENTRY *PFN_DrvOffset)( - IN SURFOBJ *pso, - IN LONG x, - IN LONG y, - IN FLONG flReserved); - -typedef BOOL -(APIENTRY *PFN_DrvPaint)( - IN SURFOBJ *pso, - IN CLIPOBJ *pco, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN MIX mix); - -typedef BOOL -(APIENTRY *PFN_DrvPlgBlt)( - IN SURFOBJ *psoTrg, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMsk, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlBrushOrg, - IN POINTFIX *pptfx, - IN RECTL *prcl, - IN POINTL *pptl, - IN ULONG iMode); - -typedef BOOL -(APIENTRY *PFN_DrvQueryAdvanceWidths)( - IN DHPDEV dhpdev, - IN FONTOBJ *pfo, - IN ULONG iMode, - IN HGLYPH *phg, - OUT PVOID pvWidths, - IN ULONG cGlyphs); - -typedef BOOL -(APIENTRY *PFN_DrvQueryDeviceSupport)( - SURFOBJ *pso, - XLATEOBJ *pxlo, - XFORMOBJ *pxo, - ULONG iType, - ULONG cjIn, - PVOID pvIn, - ULONG cjOut, - PVOID pvOut); - -typedef BOOL -(APIENTRY *PFN_DrvQueryDriverInfo)( - DWORD dwMode, - PVOID pBuffer, - DWORD cbBuf, - PDWORD pcbNeeded); - -typedef PIFIMETRICS -(APIENTRY *PFN_DrvQueryFont)( - IN DHPDEV dhpdev, - IN ULONG_PTR iFile, - IN ULONG iFace, - IN ULONG_PTR *pid); - -typedef LONG -(APIENTRY *PFN_DrvQueryFontCaps)( - IN ULONG culCaps, - OUT ULONG *pulCaps); - -typedef LONG -(APIENTRY *PFN_DrvQueryFontData)( - IN DHPDEV dhpdev, - IN FONTOBJ *pfo, - IN ULONG iMode, - IN HGLYPH hg, - IN OUT GLYPHDATA *pgd, - IN OUT PVOID pv, - IN ULONG cjSize); - -typedef LONG -(APIENTRY *PFN_DrvQueryFontFile)( - IN ULONG_PTR iFile, - IN ULONG ulMode, - IN ULONG cjBuf, - IN ULONG *pulBuf); - -typedef PVOID -(APIENTRY *PFN_DrvQueryFontTree)( - IN DHPDEV dhpdev, - IN ULONG_PTR iFile, - IN ULONG iFace, - IN ULONG iMode, - IN ULONG_PTR *pid); - -typedef PFD_GLYPHATTR -(APIENTRY *PFN_DrvQueryGlyphAttrs)( - IN FONTOBJ *pfo, - IN ULONG iMode); - -typedef ULONG -(APIENTRY *PFN_DrvQueryPerBandInfo)( - IN SURFOBJ *pso, - IN OUT PERBANDINFO *pbi); - -typedef LONG -(APIENTRY *PFN_DrvQueryTrueTypeOutline)( - IN DHPDEV dhpdev, - IN FONTOBJ *pfo, - IN HGLYPH hglyph, - IN BOOL bMetricsOnly, - IN GLYPHDATA *pgldt, - IN ULONG cjBuf, - OUT TTPOLYGONHEADER *ppoly); - -typedef LONG -(APIENTRY *PFN_DrvQueryTrueTypeTable)( - IN ULONG_PTR iFile, - IN ULONG ulFont, - IN ULONG ulTag, - IN PTRDIFF dpStart, - IN ULONG cjBuf, - OUT BYTE *pjBuf, - OUT PBYTE *ppjTable, - OUT ULONG *pcjTable); - -typedef BOOL -(APIENTRY *PFN_DrvRealizeBrush)( - IN BRUSHOBJ *pbo, - IN SURFOBJ *psoTarget, - IN SURFOBJ *psoPattern, - IN SURFOBJ *psoMask, - IN XLATEOBJ *pxlo, - IN ULONG iHatch); - -typedef ULONG -(APIENTRY *PFN_DrvResetDevice)( - IN DHPDEV dhpdev, - IN PVOID Reserved); - -typedef BOOL -(APIENTRY *PFN_DrvResetPDEV)( - DHPDEV dhpdevOld, - DHPDEV dhpdevNew); - -typedef ULONG_PTR -(APIENTRY *PFN_DrvSaveScreenBits)( - IN SURFOBJ *pso, - IN ULONG iMode, - IN ULONG_PTR ident, - IN RECTL *prcl); - -typedef BOOL -(APIENTRY *PFN_DrvSendPage)( - IN SURFOBJ *pso); - -typedef BOOL -(APIENTRY *PFN_DrvSetPalette)( - IN DHPDEV dhpdev, - IN PALOBJ *ppalo, - IN FLONG fl, - IN ULONG iStart, - IN ULONG cColors); - -typedef BOOL -(APIENTRY *PFN_DrvSetPixelFormat)( - IN SURFOBJ *pso, - IN LONG iPixelFormat, - IN HWND hwnd); - -typedef ULONG -(APIENTRY *PFN_DrvSetPointerShape)( - IN SURFOBJ *pso, - IN SURFOBJ *psoMask, - IN SURFOBJ *psoColor, - IN XLATEOBJ *pxlo, - IN LONG xHot, - IN LONG yHot, - IN LONG x, - IN LONG y, - IN RECTL *prcl, - IN FLONG fl); - -typedef BOOL -(APIENTRY *PFN_DrvStartBanding)( - IN SURFOBJ *pso, - IN POINTL *pptl); - -typedef BOOL -(APIENTRY *PFN_DrvStartDoc)( - IN SURFOBJ *pso, - IN LPWSTR pwszDocName, - IN DWORD dwJobId); - -typedef BOOL -(APIENTRY *PFN_DrvStartPage)( - IN SURFOBJ *pso); - -typedef BOOL -(APIENTRY *PFN_DrvStretchBlt)( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlHTOrg, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN POINTL *pptlMask, - IN ULONG iMode); - -typedef BOOL -(APIENTRY *PFN_DrvStretchBltROP)( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlHTOrg, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN POINTL *pptlMask, - IN ULONG iMode, - IN BRUSHOBJ *pbo, - IN DWORD rop4); - -typedef BOOL -(APIENTRY *PFN_DrvStrokeAndFillPath)( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN XFORMOBJ *pxo, - IN BRUSHOBJ *pboStroke, - IN LINEATTRS *plineattrs, - IN BRUSHOBJ *pboFill, - IN POINTL *pptlBrushOrg, - IN MIX mixFill, - IN FLONG flOptions); - -typedef BOOL -(APIENTRY *PFN_DrvStrokePath)( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN XFORMOBJ *pxo, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN LINEATTRS *plineattrs, - IN MIX mix); - -typedef BOOL -(APIENTRY *PFN_DrvSwapBuffers)( - IN SURFOBJ *pso, - IN WNDOBJ *pwo); - -typedef VOID -(APIENTRY *PFN_DrvSynchronize)( - IN DHPDEV dhpdev, - IN RECTL *prcl); - -typedef VOID -(APIENTRY *PFN_DrvSynchronizeSurface)( - IN SURFOBJ *pso, - IN RECTL *prcl, - IN FLONG fl); - -typedef BOOL -(APIENTRY *PFN_DrvTextOut)( - IN SURFOBJ *pso, - IN STROBJ *pstro, - IN FONTOBJ *pfo, - IN CLIPOBJ *pco, - IN RECTL *prclExtra, - IN RECTL *prclOpaque, - IN BRUSHOBJ *pboFore, - IN BRUSHOBJ *pboOpaque, - IN POINTL *pptlOrg, - IN MIX mix); - -typedef BOOL -(APIENTRY *PFN_DrvTransparentBlt)( - IN SURFOBJ *psoDst, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDst, - IN RECTL *prclSrc, - IN ULONG iTransColor, - IN ULONG ulReserved); - -typedef BOOL -(APIENTRY *PFN_DrvUnloadFontFile)( - IN ULONG_PTR iFile); - - -WIN32KAPI -VOID -APIENTRY -DrvDisableDirectDraw( - IN DHPDEV dhpdev); - -typedef VOID -(APIENTRY *PFN_DrvDisableDirectDraw)( - IN DHPDEV dhpdev); - -WIN32KAPI -BOOL -APIENTRY -DrvEnableDirectDraw( - IN DHPDEV dhpdev, - OUT DD_CALLBACKS *pCallBacks, - OUT DD_SURFACECALLBACKS *pSurfaceCallBacks, - OUT DD_PALETTECALLBACKS *pPaletteCallBacks); - -typedef BOOL -(APIENTRY *PFN_DrvEnableDirectDraw)( - IN DHPDEV dhpdev, - OUT DD_CALLBACKS *pCallBacks, - OUT DD_SURFACECALLBACKS *pSurfaceCallBacks, - OUT DD_PALETTECALLBACKS *pPaletteCallBacks); - -WIN32KAPI -BOOL -APIENTRY -DrvGetDirectDrawInfo( - IN DHPDEV dhpdev, - OUT DD_HALINFO *pHalInfo, - OUT DWORD *pdwNumHeaps, - OUT VIDEOMEMORY *pvmList, - OUT DWORD *pdwNumFourCCCodes, - OUT DWORD *pdwFourCC); - -typedef BOOL -(APIENTRY *PFN_DrvGetDirectDrawInfo)( - IN DHPDEV dhpdev, - OUT DD_HALINFO *pHalInfo, - OUT DWORD *pdwNumHeaps, - OUT VIDEOMEMORY *pvmList, - OUT DWORD *pdwNumFourCCCodes, - OUT DWORD *pdwFourCC); - -//DECLSPEC_DEPRECATED_DDK -BOOL -APIENTRY -DrvQuerySpoolType( - IN DHPDEV dhpdev, - IN LPWSTR pwchType); - -typedef BOOL -(APIENTRY *PFN_DrvQuerySpoolType)( - IN DHPDEV dhpdev, - IN LPWSTR pwchType); +(APIENTRY FN_DrvDisableDirectDraw)( + _In_ DHPDEV dhpdev); +typedef FN_DrvDisableDirectDraw *PFN_DrvDisableDirectDraw; +extern FN_DrvDisableDirectDraw DrvDisableDirectDraw; + +typedef BOOL +(APIENTRY FN_DrvEnableDirectDraw)( + _In_ DHPDEV dhpdev, + _Out_ DD_CALLBACKS *pCallBacks, + _Out_ DD_SURFACECALLBACKS *pSurfaceCallBacks, + _Out_ DD_PALETTECALLBACKS *pPaletteCallBacks); +typedef FN_DrvEnableDirectDraw *PFN_DrvEnableDirectDraw; +extern FN_DrvEnableDirectDraw DrvEnableDirectDraw; + +typedef BOOL +(APIENTRY FN_DrvGetDirectDrawInfo)( + _In_ DHPDEV dhpdev, + _Out_ DD_HALINFO *pHalInfo, + _Out_ DWORD *pdwNumHeaps, + _Out_ VIDEOMEMORY *pvmList, + _Out_ DWORD *pdwNumFourCCCodes, + _Out_ DWORD *pdwFourCC); +typedef FN_DrvGetDirectDrawInfo *PFN_DrvGetDirectDrawInfo; +extern FN_DrvGetDirectDrawInfo DrvGetDirectDrawInfo; + +typedef BOOL //DECLSPEC_DEPRECATED_DDK +(APIENTRY FN_DrvQuerySpoolType)( + _In_ DHPDEV dhpdev, + _In_ LPWSTR pwchType); +typedef FN_DrvQuerySpoolType *PFN_DrvQuerySpoolType; +extern FN_DrvQuerySpoolType DrvQuerySpoolType; #ifdef __cplusplus
12 years, 11 months
1
0
0
0
[cgutman] 54899: [DHCPCSVC] - Make AdapterDiscoveryThread run in its own thread (duh?)
by cgutman@svn.reactos.org
Author: cgutman Date: Tue Jan 10 02:18:04 2012 New Revision: 54899 URL:
http://svn.reactos.org/svn/reactos?rev=54899&view=rev
Log: [DHCPCSVC] - Make AdapterDiscoveryThread run in its own thread (duh?) Modified: branches/wlan-bringup/dll/win32/dhcpcsvc/dhcp/adapter.c Modified: branches/wlan-bringup/dll/win32/dhcpcsvc/dhcp/adapter.c URL:
http://svn.reactos.org/svn/reactos/branches/wlan-bringup/dll/win32/dhcpcsvc…
============================================================================== --- branches/wlan-bringup/dll/win32/dhcpcsvc/dhcp/adapter.c [iso-8859-1] (original) +++ branches/wlan-bringup/dll/win32/dhcpcsvc/dhcp/adapter.c [iso-8859-1] Tue Jan 10 02:18:04 2012 @@ -361,14 +361,13 @@ } HANDLE StartAdapterDiscovery(VOID) { - HANDLE /* ThreadHandle, */ EventHandle; + HANDLE ThreadHandle, EventHandle; EventHandle = CreateEvent(NULL, FALSE, FALSE, NULL); -#if 0 ThreadHandle = CreateThread(NULL, 0, AdapterDiscoveryThread, @@ -380,9 +379,6 @@ return NULL; CloseHandle(ThreadHandle); -#else - AdapterDiscoveryThread((LPVOID)EventHandle); -#endif return EventHandle; }
12 years, 11 months
1
0
0
0
[cgutman] 54898: [WLANCONF] - Return to using OID_GEN_PHYSICAL_MEDIUM to determine if an adapter supports WLAN
by cgutman@svn.reactos.org
Author: cgutman Date: Tue Jan 10 02:09:56 2012 New Revision: 54898 URL:
http://svn.reactos.org/svn/reactos?rev=54898&view=rev
Log: [WLANCONF] - Return to using OID_GEN_PHYSICAL_MEDIUM to determine if an adapter supports WLAN Modified: branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c Modified: branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c URL:
http://svn.reactos.org/svn/reactos/branches/wlan-bringup/base/applications/…
============================================================================== --- branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c [iso-8859-1] (original) +++ branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c [iso-8859-1] Tue Jan 10 02:09:56 2012 @@ -91,30 +91,23 @@ { BOOL bSuccess; DWORD dwBytesReturned; - PNDISUIO_QUERY_OID QueryOid; - DWORD QueryOidSize; - - QueryOidSize = FIELD_OFFSET(NDISUIO_QUERY_OID, Data) + sizeof(NDIS_802_11_SSID); - QueryOid = HeapAlloc(GetProcessHeap(), 0, QueryOidSize); - if (!QueryOid) - return FALSE; - - /* We're just going to do a OID_802_11_SSID query. WLAN drivers should - * always succeed this query (returning SsidLength = 0 if not associated) */ - QueryOid->Oid = OID_802_11_SSID; - - bSuccess = DeviceIoControl(hAdapter, - IOCTL_NDISUIO_QUERY_OID_VALUE, - QueryOid, - QueryOidSize, - QueryOid, - QueryOidSize, - &dwBytesReturned, - NULL); - - HeapFree(GetProcessHeap(), 0, QueryOid); - - return bSuccess; + NDISUIO_QUERY_OID QueryOid; + + /* WLAN drivers must support this OID */ + QueryOid.Oid = OID_GEN_PHYSICAL_MEDIUM; + + bSuccess = DeviceIoControl(hAdapter, + IOCTL_NDISUIO_QUERY_OID_VALUE, + &QueryOid, + sizeof(QueryOid), + &QueryOid, + sizeof(QueryOid), + &dwBytesReturned, + NULL); + if (!bSuccess || *(PULONG)QueryOid.Data != NdisPhysicalMediumWirelessLan) + return FALSE; + + return TRUE; } HANDLE
12 years, 11 months
1
0
0
0
← Newer
1
...
43
44
45
46
47
48
49
...
56
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Results per page:
10
25
50
100
200