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
October 2017
----- 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
43 participants
275 discussions
Start a n
N
ew thread
[reactos] 07/09: [BROWSEUI] Add a hack and abuse ISFB_STATE_QLINKSMODE to make the quick launch band to be aligned to left and show no text
by Giannis Adamopoulos
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bab9a540396e6b21e1e86…
commit bab9a540396e6b21e1e863f87cc38319cc9dbd44 Author: Giannis Adamopoulos <gadamopoulos(a)reactos.org> AuthorDate: Fri Oct 20 16:23:17 2017 +0300 [BROWSEUI] Add a hack and abuse ISFB_STATE_QLINKSMODE to make the quick launch band to be aligned to left and show no text --- dll/win32/browseui/shellbars/CBandSiteMenu.cpp | 7 +++++++ dll/win32/browseui/shellbars/CISFBand.cpp | 19 ++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/dll/win32/browseui/shellbars/CBandSiteMenu.cpp b/dll/win32/browseui/shellbars/CBandSiteMenu.cpp index 300a2ccb40..0f8089791d 100644 --- a/dll/win32/browseui/shellbars/CBandSiteMenu.cpp +++ b/dll/win32/browseui/shellbars/CBandSiteMenu.cpp @@ -184,6 +184,13 @@ HRESULT CBandSiteMenu::_CreateBuiltInISFBand(UINT uID, REFIID riid, void** ppv) if (FAILED_UNEXPECTEDLY(hr)) return hr; + /* HACK! We shouldn't pass ISFB_STATE_QLINKSMODE and CISFBand shouldn't handle it! */ + if (uID == IDM_TASKBAR_TOOLBARS_QUICKLAUNCH) + { + BANDINFOSFB bisfb = {ISFB_MASK_STATE, ISFB_STATE_QLINKSMODE, ISFB_STATE_QLINKSMODE}; + pISFB->SetBandInfoSFB(&bisfb); + } + return pISFB->QueryInterface(riid, ppv); } diff --git a/dll/win32/browseui/shellbars/CISFBand.cpp b/dll/win32/browseui/shellbars/CISFBand.cpp index 65a146ada7..6e4bb36a7f 100644 --- a/dll/win32/browseui/shellbars/CISFBand.cpp +++ b/dll/win32/browseui/shellbars/CISFBand.cpp @@ -71,6 +71,9 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) if (m_hWnd == NULL) return E_FAIL; + if (!m_textFlag) + SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS); + // Set the image list. HIMAGELIST* piml; HRESULT hr = SHGetImageList(SHIL_SMALL, IID_IImageList, (void**)&piml); @@ -243,7 +246,10 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) if (pdbi->dwMask & DBIM_MINSIZE) { - pdbi->ptMinSize.x = -1; + if (m_QLaunch) + pdbi->ptMinSize.x = idealSize.x; + else + pdbi->ptMinSize.x = -1; pdbi->ptMinSize.y = idealSize.y; } if (pdbi->dwMask & DBIM_MAXSIZE) @@ -260,14 +266,18 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) } if (pdbi->dwMask & DBIM_TITLE) { - if (!ILGetDisplayNameEx(NULL, m_pidl, pdbi->wszTitle, ILGDN_INFOLDER)) + if (m_QLaunch || !ILGetDisplayNameEx(NULL, m_pidl, pdbi->wszTitle, ILGDN_INFOLDER)) { pdbi->dwMask &= ~DBIM_TITLE; } } if (pdbi->dwMask & DBIM_MODEFLAGS) { - pdbi->dwModeFlags = DBIMF_NORMAL | DBIMF_VARIABLEHEIGHT | DBIMF_USECHEVRON | DBIMF_NOMARGINS | DBIMF_BKCOLOR | DBIMF_ADDTOFRONT; + pdbi->dwModeFlags = DBIMF_NORMAL | DBIMF_VARIABLEHEIGHT | DBIMF_USECHEVRON | DBIMF_NOMARGINS | DBIMF_BKCOLOR; + if (m_QLaunch) + { + pdbi->dwModeFlags |= DBIMF_ADDTOFRONT; + } } if (pdbi->dwMask & DBIM_BKCOLOR) pdbi->dwMask &= ~DBIM_BKCOLOR; @@ -509,6 +519,9 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) (pbi->dwStateMask & ISFB_STATE_QLINKSMODE)) { m_QLaunch = true; + m_textFlag = false; + if (m_hWnd) + SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS); } return E_NOTIMPL;
7 years, 2 months
1
0
0
0
[reactos] 06/09: [BROWSEUI] CISFBand: Misc fixes - Slightly improve the implementation of IShellFolderBand - Show both folders and files in the toolbar - Use the name of the folder shown as the name of the band
by Giannis Adamopoulos
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ee3b73204399956cff7bb…
commit ee3b73204399956cff7bb9d8e4acb5db6db45996 Author: Giannis Adamopoulos <gadamopoulos(a)reactos.org> AuthorDate: Fri Oct 20 16:21:13 2017 +0300 [BROWSEUI] CISFBand: Misc fixes - Slightly improve the implementation of IShellFolderBand - Show both folders and files in the toolbar - Use the name of the folder shown as the name of the band --- dll/win32/browseui/shellbars/CISFBand.cpp | 69 +++++++++++++++++++++++++++---- dll/win32/browseui/shellbars/CISFBand.h | 3 +- 2 files changed, 63 insertions(+), 9 deletions(-) diff --git a/dll/win32/browseui/shellbars/CISFBand.cpp b/dll/win32/browseui/shellbars/CISFBand.cpp index 1ca4ee2cc3..65a146ada7 100644 --- a/dll/win32/browseui/shellbars/CISFBand.cpp +++ b/dll/win32/browseui/shellbars/CISFBand.cpp @@ -37,7 +37,8 @@ CISFBand::CISFBand() : m_BandID(0), m_pidl(NULL), m_textFlag(true), - m_iconFlag(true) + m_iconFlag(true), + m_QLaunch(false) { } @@ -84,7 +85,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) CComPtr<IEnumIDList> pEndl; LPITEMIDLIST pidl; STRRET stret; - hr = m_pISF->EnumObjects(0, SHCONTF_FOLDERS, &pEndl); + hr = m_pISF->EnumObjects(0, SHCONTF_FOLDERS|SHCONTF_NONFOLDERS, &pEndl); if (FAILED_UNEXPECTEDLY(hr)) { DestroyWindow(); @@ -258,7 +259,12 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) pdbi->ptActual = actualSize; } if (pdbi->dwMask & DBIM_TITLE) - wcscpy(pdbi->wszTitle, L"Quick Launch"); + { + if (!ILGetDisplayNameEx(NULL, m_pidl, pdbi->wszTitle, ILGDN_INFOLDER)) + { + pdbi->dwMask &= ~DBIM_TITLE; + } + } if (pdbi->dwMask & DBIM_MODEFLAGS) { pdbi->dwModeFlags = DBIMF_NORMAL | DBIMF_VARIABLEHEIGHT | DBIMF_USECHEVRON | DBIMF_NOMARGINS | DBIMF_BKCOLOR | DBIMF_ADDTOFRONT; @@ -437,20 +443,60 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) // *** IShellFolderBand *** STDMETHODIMP CISFBand::GetBandInfoSFB(PBANDINFOSFB pbi) { + if (pbi->dwMask == ISFB_MASK_IDLIST) + { + pbi->pidl = ILClone(m_pidl); + if (!pbi->pidl) + return E_OUTOFMEMORY; + return S_OK; + } + return E_NOTIMPL; } STDMETHODIMP CISFBand::InitializeSFB(IShellFolder *psf, PCIDLIST_ABSOLUTE pidl) { - if (_ILIsDesktop(pidl)) + HRESULT hr; + + if (!psf && !pidl) + return E_INVALIDARG; + + if (psf && pidl) + return E_INVALIDARG; + + if (pidl != NULL) { - m_pISF = psf; + CComPtr<IShellFolder> psfDesktop; + hr = SHGetDesktopFolder(&psfDesktop); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + if (_ILIsDesktop(pidl)) + { + m_pISF = psfDesktop; + } + else + { + hr = psfDesktop->BindToObject(pidl, NULL, IID_PPV_ARG(IShellFolder, &m_pISF)); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + } + m_pidl = ILClone(pidl); } - else + + if (psf != NULL) { - psf->BindToObject(pidl, 0, IID_PPV_ARG(IShellFolder, &m_pISF)); - m_pidl = ILClone(pidl); + CComPtr<IPersistFolder2> ppf2; + hr = psf->QueryInterface(IID_PPV_ARG(IPersistFolder2, &ppf2)); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + hr = ppf2->GetCurFolder(&m_pidl); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + m_pISF = psf; } return S_OK; @@ -458,6 +504,13 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) STDMETHODIMP CISFBand::SetBandInfoSFB( PBANDINFOSFB pbi) { + if ((pbi->dwMask & ISFB_MASK_STATE) && + (pbi->dwState & ISFB_STATE_QLINKSMODE) && + (pbi->dwStateMask & ISFB_STATE_QLINKSMODE)) + { + m_QLaunch = true; + } + return E_NOTIMPL; } diff --git a/dll/win32/browseui/shellbars/CISFBand.h b/dll/win32/browseui/shellbars/CISFBand.h index 49b31e7f6d..04e6811aeb 100644 --- a/dll/win32/browseui/shellbars/CISFBand.h +++ b/dll/win32/browseui/shellbars/CISFBand.h @@ -25,11 +25,12 @@ class CISFBand : // Toolbar CComPtr<IShellFolder> m_pISF; - PCIDLIST_ABSOLUTE m_pidl; + PIDLIST_ABSOLUTE m_pidl; // Menu BOOL m_textFlag; BOOL m_iconFlag; + BOOL m_QLaunch; public:
7 years, 2 months
1
0
0
0
[reactos] 05/09: [BROWSEUI] CBandSiteMenu: Implement the Desktop, Quick Launch and New Toolbar menu items
by Giannis Adamopoulos
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=37e6151b40178a2cbea3f…
commit 37e6151b40178a2cbea3fc17999eaa35d328666c Author: Giannis Adamopoulos <gadamopoulos(a)reactos.org> AuthorDate: Fri Oct 20 16:17:10 2017 +0300 [BROWSEUI] CBandSiteMenu: Implement the Desktop, Quick Launch and New Toolbar menu items --- dll/win32/browseui/shellbars/CBandSiteMenu.cpp | 354 +++++++++++++++++++++---- dll/win32/browseui/shellbars/CBandSiteMenu.h | 14 +- 2 files changed, 321 insertions(+), 47 deletions(-) diff --git a/dll/win32/browseui/shellbars/CBandSiteMenu.cpp b/dll/win32/browseui/shellbars/CBandSiteMenu.cpp index 01a31e9f54..300a2ccb40 100644 --- a/dll/win32/browseui/shellbars/CBandSiteMenu.cpp +++ b/dll/win32/browseui/shellbars/CBandSiteMenu.cpp @@ -22,9 +22,20 @@ #include "shellbars.h" #include <strsafe.h> +/* The menu consists of 3 parts. The first is loaded from the resources, + the second is populated with the classes of the CATID_DeskBand comcat + and the third part consists of the entries for each CISFBand in the band side. + The first 5 ids are reserved for the resource menu, the following ids will be + for the CATID_DeskBand classes and the rest for the CISFBands. + The ids for the CISFBand menu items are not continuous, in this range + each menu id is calculated by adding the band id to the last id for the CATID_DeskBand range */ +#define FIRST_COMCAT_MENU_ID 0x5 + CBandSiteMenu::CBandSiteMenu(): - m_menuDsa(NULL), - m_hmenu(NULL) + m_comcatDsa(NULL), + m_hmenu(NULL), + m_DesktopPidl(NULL), + m_QLaunchPidl(NULL) { } @@ -33,14 +44,37 @@ CBandSiteMenu::~CBandSiteMenu() if (m_hmenu) DestroyMenu(m_hmenu); - if (m_menuDsa) - DSA_Destroy(m_menuDsa); + if (m_comcatDsa) + DSA_Destroy(m_comcatDsa); + + if (m_DesktopPidl) + ILFree(m_DesktopPidl); + + if (m_QLaunchPidl) + ILFree(m_QLaunchPidl); m_BandSite = NULL; } +HRESULT WINAPI CBandSiteMenu::FinalConstruct() +{ + HRESULT hr = SHGetFolderLocation(0, CSIDL_DESKTOP, NULL, 0, &m_DesktopPidl); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + WCHAR buffer[MAX_PATH]; + hr = SHGetFolderPathAndSubDirW(0, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, L"Microsoft\\Internet Explorer\\Quick Launch", buffer); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; -HRESULT CBandSiteMenu::CreateMenuPart() + m_QLaunchPidl = ILCreateFromPathW(buffer); + if (m_QLaunchPidl == NULL) + return E_FAIL; + + return S_OK; +} + +HRESULT CBandSiteMenu::_CreateMenuPart() { WCHAR wszBandName[MAX_PATH]; WCHAR wszBandGUID[MAX_PATH]; @@ -56,16 +90,16 @@ HRESULT CBandSiteMenu::CreateMenuPart() if (m_hmenu) DestroyMenu(m_hmenu); - if (m_menuDsa) - DSA_Destroy(m_menuDsa); + if (m_comcatDsa) + DSA_Destroy(m_comcatDsa); /* Load the template we will fill in */ m_hmenu = LoadMenuW(GetModuleHandleW(L"browseui.dll"), MAKEINTRESOURCEW(IDM_TASKBAR_TOOLBARS)); if (!m_hmenu) return HRESULT_FROM_WIN32(GetLastError()); - m_menuDsa = DSA_Create(sizeof(GUID), 5); - if (!m_menuDsa) + m_comcatDsa = DSA_Create(sizeof(GUID), 5); + if (!m_comcatDsa) return E_OUTOFMEMORY; /* Get the handle of the submenu where the available items will be shown */ @@ -94,8 +128,8 @@ HRESULT CBandSiteMenu::CreateMenuPart() SHGetValue(HKEY_CLASSES_ROOT, wRegKey, NULL, NULL, wszBandName, &dwDataSize); /* Insert it */ - InsertMenu(hmenuToolbars, cBands, MF_BYPOSITION, DSA_GetItemCount(m_menuDsa), wszBandName); - DSA_AppendItem(m_menuDsa, &iter); + InsertMenu(hmenuToolbars, cBands, MF_BYPOSITION, DSA_GetItemCount(m_comcatDsa) + FIRST_COMCAT_MENU_ID, wszBandName); + DSA_AppendItem(m_comcatDsa, &iter); cBands++; } while (dwRead > 0); @@ -103,12 +137,197 @@ HRESULT CBandSiteMenu::CreateMenuPart() return S_OK; } +HRESULT CBandSiteMenu::_CreateNewISFBand(HWND hwnd, REFIID riid, void** ppv) +{ + WCHAR path[MAX_PATH]; + WCHAR message[256]; + BROWSEINFOW bi = { hwnd, NULL, path }; + + if (LoadStringW(GetModuleHandleW(L"browseui.dll"), IDS_BROWSEFORNEWTOOLAR, message, _countof(message))) + bi.lpszTitle = message; + else + bi.lpszTitle = L"Choose a folder"; + + LPITEMIDLIST pidlSelected = SHBrowseForFolderW(&bi); + if (pidlSelected == NULL) + return S_FALSE; + + CComPtr<IShellFolderBand> pISFB; + HRESULT hr = CISFBand_CreateInstance(IID_IShellFolderBand, (PVOID*)&pISFB); + if (FAILED_UNEXPECTEDLY(hr)) + goto done; + + hr = pISFB->InitializeSFB(NULL, pidlSelected); + if (FAILED_UNEXPECTEDLY(hr)) + goto done; + + hr = pISFB->QueryInterface(riid, ppv); + +done: + ILFree(pidlSelected); + return hr; +} + +HRESULT CBandSiteMenu::_CreateBuiltInISFBand(UINT uID, REFIID riid, void** ppv) +{ + LPITEMIDLIST pidl; + HRESULT hr; + + pidl = (uID == IDM_TASKBAR_TOOLBARS_DESKTOP) ? m_DesktopPidl : m_QLaunchPidl; + + CComPtr<IShellFolderBand> pISFB; + hr = CISFBand_CreateInstance(IID_IShellFolderBand, (PVOID*)&pISFB); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + hr = pISFB->InitializeSFB(NULL, pidl); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + return pISFB->QueryInterface(riid, ppv); +} + +HRESULT CBandSiteMenu::_AddISFBandToMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, IUnknown* pBand, DWORD dwBandID, UINT *newMenuId) +{ + CComPtr<IShellFolderBand> psfb; + HRESULT hr = pBand->QueryInterface(IID_PPV_ARG(IShellFolderBand, &psfb)); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + BANDINFOSFB bi = {ISFB_MASK_IDLIST}; + hr = psfb->GetBandInfoSFB(&bi); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + if (!bi.pidl) + return E_OUTOFMEMORY; + + WCHAR buffer[MAX_PATH]; + hr = ILGetDisplayNameEx(NULL, bi.pidl, buffer, ILGDN_INFOLDER) ? S_OK : E_FAIL; + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + UINT id = idCmdFirst + DSA_GetItemCount(m_comcatDsa) + FIRST_COMCAT_MENU_ID + dwBandID; + if (id >= idCmdLast) + return E_FAIL; + + *newMenuId = id; + InsertMenu(hmenu, indexMenu, MF_BYPOSITION, id, buffer); + return S_OK; +} + +UINT CBandSiteMenu::_GetMenuIdFromISFBand(IUnknown *pBand) +{ + UINT ret = UINT_MAX; + + CComPtr<IShellFolderBand> psfb; + HRESULT hr = pBand->QueryInterface(IID_PPV_ARG(IShellFolderBand, &psfb)); + if (FAILED_UNEXPECTEDLY(hr)) + return ret; + + BANDINFOSFB bi = {ISFB_MASK_IDLIST}; + hr = psfb->GetBandInfoSFB(&bi); + if (FAILED_UNEXPECTEDLY(hr)) + return ret; + + CComPtr<IShellFolder> psfDesktop; + LPITEMIDLIST pidl = bi.pidl; + if (!pidl) + return ret; + + if (pidl->mkid.cb == 0) + { + ret = IDM_TASKBAR_TOOLBARS_DESKTOP; + goto done; + } + + hr = SHGetDesktopFolder(&psfDesktop); + if (FAILED_UNEXPECTEDLY(hr)) + goto done; + + hr = psfDesktop->CompareIDs(0, pidl, m_QLaunchPidl); + if (FAILED_UNEXPECTEDLY(hr)) + goto done; + + if (HRESULT_CODE(hr) == 0) + ret = IDM_TASKBAR_TOOLBARS_QUICKLAUNCH; + +done: + if (pidl) + ILFree(pidl); + + return ret; +} + +UINT CBandSiteMenu::_GetMenuIdFromBand(CLSID *BandCLSID) +{ + /* Try to find the clsid of the band in the dsa */ + UINT count = DSA_GetItemCount(m_comcatDsa); + for (UINT i = 0; i < count; i++) + { + GUID* pdsaGUID = (GUID*)DSA_GetItemPtr(m_comcatDsa, i); + if (IsEqualGUID(*pdsaGUID, *BandCLSID)) + { + /* The index in the dsa is also the index in the menu */ + return i + FIRST_COMCAT_MENU_ID; + } + } + + return UINT_MAX; +} + +UINT CBandSiteMenu::_GetBandIdFromClsid(CLSID* pclsid) +{ + CComPtr<IPersist> pBand; + CLSID BandCLSID; + DWORD dwBandID; + + for (UINT uBand = 0; SUCCEEDED(m_BandSite->EnumBands(uBand, &dwBandID)); uBand++) + { + if (FAILED(m_BandSite->GetBandObject(dwBandID, IID_PPV_ARG(IPersist, &pBand)))) + continue; + + if (FAILED(pBand->GetClassID(&BandCLSID))) + continue; + + if (IsEqualGUID(*pclsid, BandCLSID)) + return dwBandID; + } + + return UINT_MAX; +} + +UINT CBandSiteMenu::_GetBandIdForBuiltinISFBand(UINT uID) +{ + CComPtr<IPersist> pBand; + CLSID BandCLSID; + DWORD dwBandID; + + for (UINT uBand = 0; SUCCEEDED(m_BandSite->EnumBands(uBand, &dwBandID)); uBand++) + { + if (FAILED(m_BandSite->GetBandObject(dwBandID, IID_PPV_ARG(IPersist, &pBand)))) + continue; + + if (FAILED(pBand->GetClassID(&BandCLSID))) + continue; + + if (!IsEqualGUID(BandCLSID, CLSID_ISFBand)) + continue; + + UINT menuID = _GetMenuIdFromISFBand(pBand); + if (menuID == uID) + return dwBandID; + } + + return UINT_MAX; +} + HRESULT STDMETHODCALLTYPE CBandSiteMenu::SetOwner(IUnknown *pOwner) { TRACE("CBandSiteMenu::SetOwner(%p, %p)\n", this, pOwner); /* Cache the menu that will be merged every time QueryContextMenu is called */ - CreateMenuPart(); + _CreateMenuPart(); return pOwner->QueryInterface(IID_PPV_ARG(IBandSite, &m_BandSite)); } @@ -119,11 +338,12 @@ HRESULT STDMETHODCALLTYPE CBandSiteMenu::QueryContextMenu( CComPtr<IPersist> pBand; CLSID BandCLSID; DWORD dwBandID; + UINT idMax; TRACE("CBandSiteMenu::QueryContextMenu(%p, %p, %u, %u, %u, 0x%x)\n", this, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags); /* First Merge the menu with the available bands */ - Shell_MergeMenus(hmenu, m_hmenu, indexMenu, idCmdFirst, idCmdLast, MM_DONTREMOVESEPS | MM_SUBMENUSHAVEIDS); + idMax = Shell_MergeMenus(hmenu, m_hmenu, indexMenu, idCmdFirst, idCmdLast, MM_DONTREMOVESEPS | MM_SUBMENUSHAVEIDS); HMENU hmenuToolbars = GetSubMenu(hmenu, indexMenu); @@ -136,63 +356,107 @@ HRESULT STDMETHODCALLTYPE CBandSiteMenu::QueryContextMenu( if (FAILED(pBand->GetClassID(&BandCLSID))) continue; - /* Try to find the clsid of the band in the dsa */ - UINT count = DSA_GetItemCount(m_menuDsa); - for (UINT i = 0; i < count; i++) + UINT menuID; + if (IsEqualGUID(BandCLSID, CLSID_ISFBand)) { - GUID* pdsaGUID = (GUID*)DSA_GetItemPtr(m_menuDsa, i); - if (memcmp(pdsaGUID, &BandCLSID, sizeof(GUID)) == 0) + menuID = _GetMenuIdFromISFBand(pBand); + if (menuID == UINT_MAX) { - /* The index in the dsa is also the index in the menu */ - CheckMenuItem(hmenuToolbars, i, MF_CHECKED | MF_BYPOSITION); + HRESULT hr; + hr = _AddISFBandToMenu(hmenuToolbars, 0, idCmdFirst, idCmdLast, pBand, dwBandID, &menuID); + if (SUCCEEDED(hr) && menuID > idMax) + idMax = menuID; + menuID -= idCmdFirst; } } + else + { + menuID = _GetMenuIdFromBand(&BandCLSID); + } + + if (menuID != UINT_MAX) + CheckMenuItem(hmenuToolbars, menuID + idCmdFirst, MF_CHECKED); } - return S_OK; + return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(idMax - idCmdFirst +1)); } HRESULT STDMETHODCALLTYPE CBandSiteMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpici) { + HRESULT hRet; + DWORD dwBandID; + /* FIXME: do we need to handle this and how? */ if (HIWORD(lpici->lpVerb) != NULL) return E_FAIL; - /* Get the GUID of the item that was clicked */ UINT uID = LOWORD(lpici->lpVerb); - GUID *pguidToolbar = (GUID *)DSA_GetItemPtr(m_menuDsa, uID); - if (!pguidToolbar) - return E_FAIL; + if (uID == IDM_TASKBAR_TOOLBARS_NEW) + { + CComPtr<IDeskBand> pDeskBand; + hRet = _CreateNewISFBand(lpici->hwnd, IID_PPV_ARG(IDeskBand, &pDeskBand)); + if (FAILED_UNEXPECTEDLY(hRet)) + return hRet; - /* Try to find if a band with a guid is present. If it is remove it and return */ - CComPtr<IPersist> pBand; - CLSID BandCLSID; - DWORD dwBandID; - for (UINT uBand = 0; SUCCEEDED(m_BandSite->EnumBands(uBand, &dwBandID)); uBand++) + hRet = m_BandSite->AddBand(pDeskBand); + if (FAILED_UNEXPECTEDLY(hRet)) + return hRet; + + return S_OK; + } + else if (uID > (UINT)DSA_GetItemCount(m_comcatDsa) + FIRST_COMCAT_MENU_ID ) { - if (FAILED(m_BandSite->GetBandObject(dwBandID, IID_PPV_ARG(IPersist, &pBand)))) - continue; + dwBandID = uID - (DSA_GetItemCount(m_comcatDsa) + FIRST_COMCAT_MENU_ID ); - if (FAILED(pBand->GetClassID(&BandCLSID))) - continue; + m_BandSite->RemoveBand(dwBandID); - if (memcmp(pguidToolbar, &BandCLSID, sizeof(GUID)) == 0) + return S_OK; + } + else if (uID == IDM_TASKBAR_TOOLBARS_DESKTOP || uID == IDM_TASKBAR_TOOLBARS_QUICKLAUNCH) + { + dwBandID = _GetBandIdForBuiltinISFBand(uID); + if (dwBandID != UINT_MAX) { - /* We found it, remove it */ m_BandSite->RemoveBand(dwBandID); - return S_OK; } + else + { + CComPtr<IDeskBand> pDeskBand; + hRet = _CreateBuiltInISFBand(uID, IID_PPV_ARG(IDeskBand, &pDeskBand)); + if (FAILED_UNEXPECTEDLY(hRet)) + return hRet; + + hRet = m_BandSite->AddBand(pDeskBand); + if (FAILED_UNEXPECTEDLY(hRet)) + return hRet; + } + return S_OK; } - /* It is not present. Add it. */ - CComPtr<IDeskBand> pDeskBand; - HRESULT hRet = CoCreateInstance(*pguidToolbar, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IDeskBand, &pDeskBand)); - if (FAILED(hRet)) - return hRet; + /* Get the GUID of the item that was clicked */ + GUID *pguidToolbar = (GUID *)DSA_GetItemPtr(m_comcatDsa, uID - FIRST_COMCAT_MENU_ID); + if (!pguidToolbar) + return E_FAIL; - hRet = m_BandSite->AddBand(pDeskBand); - if (FAILED_UNEXPECTEDLY(hRet)) - return hRet; + /* Try to find if a band with a guid is present. If it is, remove it and return */ + dwBandID = _GetBandIdFromClsid(pguidToolbar); + if (dwBandID != UINT_MAX) + { + /* We found it, remove it */ + m_BandSite->RemoveBand(dwBandID); + } + else + { + /* It is not present. Add it. */ + CComPtr<IDeskBand> pDeskBand; + hRet = CoCreateInstance(*pguidToolbar, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IDeskBand, &pDeskBand)); + if (FAILED_UNEXPECTEDLY(hRet)) + return hRet; + + hRet = m_BandSite->AddBand(pDeskBand); + if (FAILED_UNEXPECTEDLY(hRet)) + return hRet; + } return S_OK; } diff --git a/dll/win32/browseui/shellbars/CBandSiteMenu.h b/dll/win32/browseui/shellbars/CBandSiteMenu.h index d4d27acdc7..f05107b529 100644 --- a/dll/win32/browseui/shellbars/CBandSiteMenu.h +++ b/dll/win32/browseui/shellbars/CBandSiteMenu.h @@ -29,14 +29,24 @@ class CBandSiteMenu : public IShellService { CComPtr<IBandSite> m_BandSite; - HDSA m_menuDsa; + HDSA m_comcatDsa; HMENU m_hmenu; + LPITEMIDLIST m_DesktopPidl; + LPITEMIDLIST m_QLaunchPidl; - HRESULT CreateMenuPart(); + HRESULT _CreateMenuPart(); + HRESULT _CreateNewISFBand(HWND hwnd, REFIID riid, void** ppv); + HRESULT _CreateBuiltInISFBand(UINT uID, REFIID riid, void** ppv); + HRESULT _AddISFBandToMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, IUnknown* pBand, DWORD dwBandID, UINT *newMenuId); + UINT _GetMenuIdFromISFBand(IUnknown *pBand); + UINT _GetMenuIdFromBand(CLSID *BandCLSID); + UINT _GetBandIdFromClsid(CLSID* pclsid); + UINT _GetBandIdForBuiltinISFBand(UINT uID); public: CBandSiteMenu(); ~CBandSiteMenu(); + HRESULT WINAPI FinalConstruct(); // *** IShellService methods *** virtual HRESULT STDMETHODCALLTYPE SetOwner(IUnknown *);
7 years, 2 months
1
0
0
0
[reactos] 04/09: [BROWSEUI] CBandSiteMenu: Fix two broken loops
by Giannis Adamopoulos
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=0ed80264f98a35561805a…
commit 0ed80264f98a35561805af97f4367ff41fcd8d53 Author: Giannis Adamopoulos <gadamopoulos(a)reactos.org> AuthorDate: Fri Oct 20 16:08:52 2017 +0300 [BROWSEUI] CBandSiteMenu: Fix two broken loops --- dll/win32/browseui/shellbars/CBandSiteMenu.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/dll/win32/browseui/shellbars/CBandSiteMenu.cpp b/dll/win32/browseui/shellbars/CBandSiteMenu.cpp index a76d5d483c..01a31e9f54 100644 --- a/dll/win32/browseui/shellbars/CBandSiteMenu.cpp +++ b/dll/win32/browseui/shellbars/CBandSiteMenu.cpp @@ -119,7 +119,6 @@ HRESULT STDMETHODCALLTYPE CBandSiteMenu::QueryContextMenu( CComPtr<IPersist> pBand; CLSID BandCLSID; DWORD dwBandID; - UINT uBand = 0; TRACE("CBandSiteMenu::QueryContextMenu(%p, %p, %u, %u, %u, 0x%x)\n", this, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags); @@ -129,7 +128,7 @@ HRESULT STDMETHODCALLTYPE CBandSiteMenu::QueryContextMenu( HMENU hmenuToolbars = GetSubMenu(hmenu, indexMenu); /* Enumerate all present bands and mark them as checked in the menu */ - while (SUCCEEDED(m_BandSite->EnumBands(uBand, &dwBandID))) + for (UINT uBand = 0; SUCCEEDED(m_BandSite->EnumBands(uBand, &dwBandID)); uBand++) { if (FAILED(m_BandSite->GetBandObject(dwBandID, IID_PPV_ARG(IPersist, &pBand)))) continue; @@ -148,8 +147,6 @@ HRESULT STDMETHODCALLTYPE CBandSiteMenu::QueryContextMenu( CheckMenuItem(hmenuToolbars, i, MF_CHECKED | MF_BYPOSITION); } } - - uBand++; } return S_OK; @@ -171,8 +168,7 @@ HRESULT STDMETHODCALLTYPE CBandSiteMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpi CComPtr<IPersist> pBand; CLSID BandCLSID; DWORD dwBandID; - UINT uBand = 0; - while (SUCCEEDED(m_BandSite->EnumBands(uBand, &dwBandID))) + for (UINT uBand = 0; SUCCEEDED(m_BandSite->EnumBands(uBand, &dwBandID)); uBand++) { if (FAILED(m_BandSite->GetBandObject(dwBandID, IID_PPV_ARG(IPersist, &pBand)))) continue; @@ -186,8 +182,6 @@ HRESULT STDMETHODCALLTYPE CBandSiteMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpi m_BandSite->RemoveBand(dwBandID); return S_OK; } - - uBand++; } /* It is not present. Add it. */
7 years, 2 months
1
0
0
0
[reactos] 03/09: [BROWSEUI] Enable the menu items for the toolbars submenu of the CBandSiteMenu. Also add a new string which will be used in the next commit.
by Giannis Adamopoulos
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3e812a66ffd2b0044e445…
commit 3e812a66ffd2b0044e445e7af50f9cea9aa80c3e Author: Giannis Adamopoulos <gadamopoulos(a)reactos.org> AuthorDate: Fri Oct 20 16:04:15 2017 +0300 [BROWSEUI] Enable the menu items for the toolbars submenu of the CBandSiteMenu. Also add a new string which will be used in the next commit. --- dll/win32/browseui/lang/bg-BG.rc | 11 ++++++++--- dll/win32/browseui/lang/de-DE.rc | 11 ++++++++--- dll/win32/browseui/lang/en-US.rc | 11 ++++++++--- dll/win32/browseui/lang/es-ES.rc | 11 ++++++++--- dll/win32/browseui/lang/fr-FR.rc | 11 ++++++++--- dll/win32/browseui/lang/he-IL.rc | 11 ++++++++--- dll/win32/browseui/lang/it-IT.rc | 11 ++++++++--- dll/win32/browseui/lang/ja-JP.rc | 11 ++++++++--- dll/win32/browseui/lang/pl-PL.rc | 11 ++++++++--- dll/win32/browseui/lang/pt-BR.rc | 11 ++++++++--- dll/win32/browseui/lang/ro-RO.rc | 11 ++++++++--- dll/win32/browseui/lang/ru-RU.rc | 11 ++++++++--- dll/win32/browseui/lang/sq-AL.rc | 11 ++++++++--- dll/win32/browseui/lang/tr-TR.rc | 11 ++++++++--- dll/win32/browseui/lang/uk-UA.rc | 11 ++++++++--- dll/win32/browseui/lang/zh-CN.rc | 11 ++++++++--- dll/win32/browseui/lang/zh-TW.rc | 11 ++++++++--- dll/win32/browseui/resource.h | 2 +- 18 files changed, 137 insertions(+), 52 deletions(-) diff --git a/dll/win32/browseui/lang/bg-BG.rc b/dll/win32/browseui/lang/bg-BG.rc index de44ec5f46..c76e5d3282 100644 --- a/dll/win32/browseui/lang/bg-BG.rc +++ b/dll/win32/browseui/lang/bg-BG.rc @@ -80,10 +80,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Toolbars", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -291,3 +291,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Back|Forward|Up|Search|Folders|Move To|Copy To|Delete|Undo|Views|Stop|Refresh|Home|Map Drive|Disconnect|Favorites|History|Full Screen|Properties|Cut|Copy|Paste|Folder Options||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/de-DE.rc b/dll/win32/browseui/lang/de-DE.rc index 283d28f9a3..d54f315047 100644 --- a/dll/win32/browseui/lang/de-DE.rc +++ b/dll/win32/browseui/lang/de-DE.rc @@ -98,10 +98,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Symbolleisten", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "Schnellstartleiste", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "Schnellstartleiste", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&Neue Symbolleiste...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&Neue Symbolleiste...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -310,3 +310,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Zurück|Vorwärts|Übergeordneter Ordner|Suchen|Ordner|Verschieben nach|Kopieren nach|Löschen|Rückgängig|Ansicht|Stop|Aktualisieren|Startseite|Netzlaufwerk verbinden|Netzlaufwerk trennen|Favoriten|Verlauf|Vollbild|Eigenschaften|Ausschneiden|Kopieren|Einfügen|Ordneroptionen||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/en-US.rc b/dll/win32/browseui/lang/en-US.rc index 2a005e949f..98d6277a43 100644 --- a/dll/win32/browseui/lang/en-US.rc +++ b/dll/win32/browseui/lang/en-US.rc @@ -98,10 +98,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Toolbars", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -309,3 +309,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Back|Forward|Up|Search|Folders|Move To|Copy To|Delete|Undo|Views|Stop|Refresh|Home|Map Drive|Disconnect|Favorites|History|Full Screen|Properties|Cut|Copy|Paste|Folder Options||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/es-ES.rc b/dll/win32/browseui/lang/es-ES.rc index 414be97dbc..3506c67d5f 100644 --- a/dll/win32/browseui/lang/es-ES.rc +++ b/dll/win32/browseui/lang/es-ES.rc @@ -82,10 +82,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Barras de herramientas", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Escritorio", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Inicio rápido", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Escritorio", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Inicio rápido", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&Nueva barra de herramientas...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&Nueva barra de herramientas...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -293,3 +293,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Atrás|Adelante|Subir|Búsqueda|Carpetas|Mover a|Copiar a|Borrar|Deshacer|Vistas|Detener|Recargar|Inicio|Montar disco|Desconectar|Favoritos|Historial|Pantalla completa|Propiedades|Cortar|Copiar|Pegar|Opciones de carpeta||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/fr-FR.rc b/dll/win32/browseui/lang/fr-FR.rc index 67f4fdeaf8..8ceaf484eb 100644 --- a/dll/win32/browseui/lang/fr-FR.rc +++ b/dll/win32/browseui/lang/fr-FR.rc @@ -98,10 +98,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Barres d'outils", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Bureau", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Bureau", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&Nouvelle barre d'outils...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&Nouvelle barre d'outils...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -309,3 +309,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Retour|Avancer|Dossier parent|Recherche|Dossiers|Aller vers|Copier dans|Supprimer|Annuler|Affichage|Stop|Rafraîchir|Home|Map Drive|Déconnecter|Favoris|Historique|Plein écran|Propriétés|Couper|Copier|Coller|Options des dossiers||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/he-IL.rc b/dll/win32/browseui/lang/he-IL.rc index 2afa8d7f1a..d324f74b16 100644 --- a/dll/win32/browseui/lang/he-IL.rc +++ b/dll/win32/browseui/lang/he-IL.rc @@ -82,10 +82,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Toolbars", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -293,3 +293,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Back|Forward|Up|Search|Folders|Move To|Copy To|Delete|Undo|Views|Stop|Refresh|Home|Map Drive|Disconnect|Favorites|History|Full Screen|Properties|Cut|Copy|Paste|Folder Options||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/it-IT.rc b/dll/win32/browseui/lang/it-IT.rc index 9afabf4373..f780f846fd 100644 --- a/dll/win32/browseui/lang/it-IT.rc +++ b/dll/win32/browseui/lang/it-IT.rc @@ -80,10 +80,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Barre strumenti", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Avvio veloce", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Avvio veloce", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&Nuova barra strumenti...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&Nuova barra strumenti...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -291,3 +291,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Indietro|Avanti|Livello superiore|Cerca|Cartelle|Sposta in|Copia in|Elimina|Annulla|Visualizza|Ferma|Aggiorna|Pagina iniziale|Mappa disco|Disconnette|Preferiti|Cronologia|Schermo intero|Proprietà|Taglia|Copia|Incolla|Opzioni cartella||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/ja-JP.rc b/dll/win32/browseui/lang/ja-JP.rc index 9dfedaf9c6..65e9003564 100644 --- a/dll/win32/browseui/lang/ja-JP.rc +++ b/dll/win32/browseui/lang/ja-JP.rc @@ -98,10 +98,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "ツール バー(&T)", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "デスクトップ(&D)", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "クイック起動(&Q)", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "デスクトップ(&D)", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "クイック起動(&Q)", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "新しいツール バー(&N)...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "新しいツール バー(&N)...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -309,3 +309,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|戻る|進む|上へ|検索|フォルダー|移動|コピー|削除|元に戻す|表示|停止|再描画|ホーム|ドライブ接続|接続切断|お気に入り|履歴|フルスクリーン|プロパティ|切り取り|コピー|貼り付け|フォルダー オプション||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/pl-PL.rc b/dll/win32/browseui/lang/pl-PL.rc index 91d2e36941..3e5f74be0d 100644 --- a/dll/win32/browseui/lang/pl-PL.rc +++ b/dll/win32/browseui/lang/pl-PL.rc @@ -88,10 +88,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "P&aski narzędzi", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Pulpit", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Szybkie uruchamianie", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Pulpit", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Szybkie uruchamianie", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&Nowy pasek narzędzi...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&Nowy pasek narzędzi...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -299,3 +299,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Wstecz|Dalej|W górę|Wyszukaj|Foldery|Przemieść do|Kopiuj do|Usuń|Cofnij|Widoki|Stop|Odśwież|Strona główna|Mapa dysków|Rozłącz|Ulubione|Historia|Pełny ekran|Właściwości|Wytnij|Kopiuj|Wklej|Opcje folderów||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/pt-BR.rc b/dll/win32/browseui/lang/pt-BR.rc index 2a9fa160f3..7fcd59962e 100644 --- a/dll/win32/browseui/lang/pt-BR.rc +++ b/dll/win32/browseui/lang/pt-BR.rc @@ -82,10 +82,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Barra de ferramentas", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "Área de &trabalho", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Iniciar rápido", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "Área de &trabalho", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Iniciar rápido", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&Nova barra de ferramentas...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&Nova barra de ferramentas...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -293,3 +293,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Voltar|Avançar|Acima|Pesquisar|Pastas|Mover para|Copiar para|Excluir|Desfazer|Modos de exibição|Parar|Atualizar|Página inicial|Mapear unidade|Desconectar|Favoritos|Histórico|Tela inteira|Propriedades|Recortar|Copiar|Colar|Opções de pasta||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/ro-RO.rc b/dll/win32/browseui/lang/ro-RO.rc index 2f14f4e29a..b763155b41 100644 --- a/dll/win32/browseui/lang/ro-RO.rc +++ b/dll/win32/browseui/lang/ro-RO.rc @@ -82,10 +82,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "Bare de i&nstrumente", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Birou", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Lansări rapide", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Birou", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Lansări rapide", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "Bară &nouă…", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "Bară &nouă…", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -293,3 +293,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Înapoi|Înainte|Sus|Căutare|Dosare|Mutare în|Copiere în|Ștergere|Desfacere|Afișări|Oprire|Împrospătare|Acasă|Conectare unitate de stocare|Deconectare|Favorite|Istoric|Pe tot ecranul|Proprietăți|Decupare|Copiere|Lipire|Opțiuni de dosar||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/ru-RU.rc b/dll/win32/browseui/lang/ru-RU.rc index b985bb76c5..568cad6e01 100644 --- a/dll/win32/browseui/lang/ru-RU.rc +++ b/dll/win32/browseui/lang/ru-RU.rc @@ -82,10 +82,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Панели инструментов", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Рабочий стол", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Быстрый запуск", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Рабочий стол", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Быстрый запуск", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&Создать панель инструментов...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&Создать панель инструментов...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -293,3 +293,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Назад|Вперед|Вверх|Поиск|Папки|Переместить в|Копировать в|Удалить|Отменить|Вид|Остановить|Обновить|Домой|Подключить диск|Отключить|Избранное|Журнал|Во весь экран|Свойства|Вырезать|Копировать|Вставить|Свойства папки||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/sq-AL.rc b/dll/win32/browseui/lang/sq-AL.rc index 74f95ce269..9296f7ee92 100644 --- a/dll/win32/browseui/lang/sq-AL.rc +++ b/dll/win32/browseui/lang/sq-AL.rc @@ -99,10 +99,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Toolbars", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -310,3 +310,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Back|Forward|Up|Search|Folders|Move To|Copy To|Delete|Undo|Views|Stop|Refresh|Home|Map Drive|Disconnect|Favorites|History|Full Screen|Properties|Cut|Copy|Paste|Folder Options||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/tr-TR.rc b/dll/win32/browseui/lang/tr-TR.rc index 14790d6eaf..f04cba1ddd 100644 --- a/dll/win32/browseui/lang/tr-TR.rc +++ b/dll/win32/browseui/lang/tr-TR.rc @@ -82,10 +82,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Araç Çubukları", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Masaüstü", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Hızlı Başlat", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Masaüstü", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Hızlı Başlat", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&Yeni Araç Çubuğu...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&Yeni Araç Çubuğu...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -293,3 +293,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Geri|İleri|Yukarı|Ara|Dizinler|Taşı|Çoğalt|Sil|Geri Al|Görünümler|Dur|Yenile|Giriş|Sürücü Oluştur|Bağlantıyı Kes|Yer İmleri|Geçmiş|Tüm Görüntülük|Husûsiyetler|Kes|Çoğalt|Yapıştır|Dizin Seçenekleri||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/uk-UA.rc b/dll/win32/browseui/lang/uk-UA.rc index 366104ad1b..80e832bf82 100644 --- a/dll/win32/browseui/lang/uk-UA.rc +++ b/dll/win32/browseui/lang/uk-UA.rc @@ -82,10 +82,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "&Toolbars", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "&Desktop", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "&Quick Launch", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "&New Toolbar...", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -293,3 +293,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|Back|Forward|Up|Search|Folders|Move To|Copy To|Delete|Undo|Views|Stop|Refresh|Home|Map Drive|Disconnect|Favorites|History|Full Screen|Properties|Cut|Copy|Paste|Folder Options||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/zh-CN.rc b/dll/win32/browseui/lang/zh-CN.rc index c62187c922..5e7e970990 100644 --- a/dll/win32/browseui/lang/zh-CN.rc +++ b/dll/win32/browseui/lang/zh-CN.rc @@ -100,10 +100,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "工具栏(&T)", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "桌面(&D)", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "快速启动(&Q)", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "桌面(&D)", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "快速启动(&Q)", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "新的工具栏...(&N)", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "新的工具栏...(&N)", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -311,3 +311,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|返回|前进|向上|搜索|文件夹|移动到|复制到|删除|撤消|视图|停止|刷新|首页|映射磁盘|断开连接|收藏夹|历史|全屏幕|属性|剪下|复制|贴下|文件夹选项||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/lang/zh-TW.rc b/dll/win32/browseui/lang/zh-TW.rc index c4d6f00871..c53ee3c1dd 100644 --- a/dll/win32/browseui/lang/zh-TW.rc +++ b/dll/win32/browseui/lang/zh-TW.rc @@ -100,10 +100,10 @@ IDM_TASKBAR_TOOLBARS MENUEX BEGIN POPUP "工具欄(&T)", -1, MFT_STRING, MFS_ENABLED, 0 BEGIN - MENUITEM "桌面(&D)", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING, MFS_GRAYED - MENUITEM "快速啟動(&Q)", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING, MFS_GRAYED + MENUITEM "桌面(&D)", IDM_TASKBAR_TOOLBARS_DESKTOP, MFT_STRING + MENUITEM "快速啟動(&Q)", IDM_TASKBAR_TOOLBARS_QUICKLAUNCH, MFT_STRING MENUITEM "", -1, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "新的工具欄...(&N)", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING, MFS_GRAYED + MENUITEM "新的工具欄...(&N)", IDM_TASKBAR_TOOLBARS_NEW, MFT_STRING END END @@ -311,3 +311,8 @@ STRINGTABLE BEGIN IDS_STANDARD_TOOLBAR, "|返回|前進|向上|搜索|資料夾|移動到|複製到|刪除|撤消|檢視|停止|重新整理|首頁|對映磁碟|斷開連線|收藏夾|歷史|全螢幕|屬性|剪下|複製|貼下|資料夾選項||" END + +STRINGTABLE +BEGIN + IDS_BROWSEFORNEWTOOLAR "Choose a folder" +END diff --git a/dll/win32/browseui/resource.h b/dll/win32/browseui/resource.h index 2fe0b92807..0d376dac9d 100644 --- a/dll/win32/browseui/resource.h +++ b/dll/win32/browseui/resource.h @@ -108,6 +108,7 @@ #define IDS_SHOWTEXTLABELS 12303 #define IDS_NOTEXTLABELS 12304 #define IDS_SELECTIVETEXTONRIGHT 12305 +#define IDS_BROWSEFORNEWTOOLAR 12387 #define IDS_GOBUTTONLABEL 12656 #define IDS_GOBUTTONTIPTEMPLATE 12657 #define IDS_SEARCHLABEL 12897 @@ -125,7 +126,6 @@ #define IDC_PROGRESS_BAR 102 #define IDC_TEXT_LINE 103 #define IDD_PROGRESS_DLG 100 - #define IDR_ACCELERATORS 256 #define IDI_CABINET 103
7 years, 2 months
1
0
0
0
[reactos] 02/09: [BROWSEUI] Rename CISFBand_CreateInstance and add a CISFBand_CreateInstance macro that makes easy to switch between the system implementation or the local one.
by Giannis Adamopoulos
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8a52080dccb5b24b18d0d…
commit 8a52080dccb5b24b18d0d0063e2847911bde5b5a Author: Giannis Adamopoulos <gadamopoulos(a)reactos.org> AuthorDate: Fri Oct 20 16:02:13 2017 +0300 [BROWSEUI] Rename CISFBand_CreateInstance and add a CISFBand_CreateInstance macro that makes easy to switch between the system implementation or the local one. --- base/shell/rshell/CQuickLaunchBand.cpp | 4 ++-- dll/win32/browseui/shellbars/CISFBand.cpp | 2 +- dll/win32/browseui/shellbars/CISFBand.h | 4 +--- dll/win32/browseui/shellbars/shellbars.h | 8 ++++++++ 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/base/shell/rshell/CQuickLaunchBand.cpp b/base/shell/rshell/CQuickLaunchBand.cpp index 6f3c6dee51..c4a25224d5 100644 --- a/base/shell/rshell/CQuickLaunchBand.cpp +++ b/base/shell/rshell/CQuickLaunchBand.cpp @@ -34,7 +34,7 @@ #include "CQuickLaunchBand.h" extern "C" -HRESULT WINAPI CISFBand_CreateInstance(REFIID riid, void** ppv); +HRESULT WINAPI RSHELL_CISFBand_CreateInstance(REFIID riid, void** ppv); // {260CB95D-4544-44F6-A079-575BAA60B72F} const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0x57, 0x5b, 0xaa, 0x60, 0xb7, 0x2f } }; @@ -114,7 +114,7 @@ const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0 *--*/ HRESULT CQuickLaunchBand::FinalConstruct() { - HRESULT hr = CISFBand_CreateInstance(IID_PPV_ARG(IUnknown, &m_punkISFB)); + HRESULT hr = RSHELL_CISFBand_CreateInstance(IID_PPV_ARG(IUnknown, &m_punkISFB)); if (FAILED_UNEXPECTEDLY(hr)) return hr; diff --git a/dll/win32/browseui/shellbars/CISFBand.cpp b/dll/win32/browseui/shellbars/CISFBand.cpp index 85f44313ec..1ca4ee2cc3 100644 --- a/dll/win32/browseui/shellbars/CISFBand.cpp +++ b/dll/win32/browseui/shellbars/CISFBand.cpp @@ -578,7 +578,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) /*****************************************************************************/ // C Constructor extern "C" - HRESULT WINAPI CISFBand_CreateInstance(REFIID riid, void** ppv) + HRESULT WINAPI RSHELL_CISFBand_CreateInstance(REFIID riid, void** ppv) { return ShellObjectCreator<CISFBand>(riid, ppv); } diff --git a/dll/win32/browseui/shellbars/CISFBand.h b/dll/win32/browseui/shellbars/CISFBand.h index c8de82f50e..49b31e7f6d 100644 --- a/dll/win32/browseui/shellbars/CISFBand.h +++ b/dll/win32/browseui/shellbars/CISFBand.h @@ -191,6 +191,4 @@ public: END_COM_MAP() }; -// C Constructor -extern "C" -HRESULT WINAPI CISFBand_CreateInstance(REFIID riid, void** ppv); \ No newline at end of file +extern "C" HRESULT WINAPI RSHELL_CISFBand_CreateInstance(REFIID riid, void** ppv); diff --git a/dll/win32/browseui/shellbars/shellbars.h b/dll/win32/browseui/shellbars/shellbars.h index 731ecfdde5..ae1e6ed218 100644 --- a/dll/win32/browseui/shellbars/shellbars.h +++ b/dll/win32/browseui/shellbars/shellbars.h @@ -37,4 +37,12 @@ WINE_DEFAULT_DEBUG_CHANNEL(browseui); #define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp)) #define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp)) +#define USE_SYSTEM_ISFBAND 0 + +#if USE_SYSTEM_ISFBAND +#define CISFBand_CreateInstance(riid, ppv) (CoCreateInstance(CLSID_ISFBand, NULL, CLSCTX_INPROC_SERVER,riid, ppv)) +#else +#define CISFBand_CreateInstance RSHELL_CISFBand_CreateInstance +#endif + #endif /* _BROWSEUI_PCH_ */
7 years, 2 months
1
0
0
0
[reactos] 01/09: [PSDK] Add some missing definitions from IShellFolderBand
by Giannis Adamopoulos
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ee1cbf51e15b8b13a1428…
commit ee1cbf51e15b8b13a1428d6361747e7af8de85cf Author: Giannis Adamopoulos <gadamopoulos(a)reactos.org> AuthorDate: Fri Oct 20 15:53:16 2017 +0300 [PSDK] Add some missing definitions from IShellFolderBand --- sdk/include/psdk/shlobj.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sdk/include/psdk/shlobj.h b/sdk/include/psdk/shlobj.h index 3b5f73ef10..9f85cb0968 100644 --- a/sdk/include/psdk/shlobj.h +++ b/sdk/include/psdk/shlobj.h @@ -2405,6 +2405,12 @@ DECLARE_INTERFACE_(IDockingWindowSite, IOleWindow) typedef void (CALLBACK *PFNASYNCICONTASKBALLBACK)(LPCITEMIDLIST pidl, LPVOID pvData, LPVOID pvHint, INT iIconIndex, INT iOpenIconIndex); +#define ISFB_MASK_STATE 0x00000001 +#define ISFB_MASK_IDLIST 0x00000010 + +#define ISFB_STATE_QLINKSMODE 0x00000020 +#define ISFB_STATE_NOSHOWTEXT 0x00000004 + #include <pshpack8.h> typedef struct {
7 years, 2 months
1
0
0
0
[reactos] 01/01: [STORPORT] Fix x64 build
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=072d1821e7c71bcb31446…
commit 072d1821e7c71bcb31446675c0dd8c9b6577e044 Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Sun Oct 22 17:31:42 2017 +0200 [STORPORT] Fix x64 build --- drivers/storage/port/storport/misc.c | 13 +++++++++++++ drivers/storage/port/storport/storport.spec | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/storage/port/storport/misc.c b/drivers/storage/port/storport/misc.c index 56b7c6fd3d..7710201876 100644 --- a/drivers/storage/port/storport/misc.c +++ b/drivers/storage/port/storport/misc.c @@ -321,4 +321,17 @@ AllocateAddressMapping( return STATUS_SUCCESS; } +#if defined(_M_AMD64) +/* KeQuerySystemTime is an inline function, + so we cannot forward the export to ntoskrnl */ +STORPORT_API +VOID +NTAPI +StorPortQuerySystemTime( + _Out_ PLARGE_INTEGER CurrentTime) +{ + KeQuerySystemTime(CurrentTime); +} +#endif /* defined(_M_AMD64) */ + /* EOF */ diff --git a/drivers/storage/port/storport/storport.spec b/drivers/storage/port/storport/storport.spec index 2596b97279..7bfe160a4c 100644 --- a/drivers/storage/port/storport/storport.spec +++ b/drivers/storage/port/storport/storport.spec @@ -24,7 +24,8 @@ @ stdcall StorPortLogError(ptr ptr long long long long long) @ stdcall StorPortMoveMemory(ptr ptr long) @ cdecl StorPortNotification() -@ stdcall StorPortQuerySystemTime(ptr) NTOSKRNL.KeQuerySystemTime +@ stdcall -arch=i386 StorPortQuerySystemTime(ptr) NTOSKRNL.KeQuerySystemTime +@ stdcall -arch=amd64 StorPortQuerySystemTime(ptr) @ stdcall StorPortPause(ptr long) @ stdcall StorPortPauseDevice(ptr long long long long) @ stdcall StorPortReadPortBufferUchar(ptr ptr ptr long)
7 years, 2 months
1
0
0
0
[reactos] 01/01: [REACTOS] Fix x64 build - SIZE_T -> ULONG in KsecGatherEntropyData - Add missing ZwQueryInformationProcess() prototype for x64 build of btrfs - Fix ml.exe path for VS 2017 Community Edition - Add missing Handle32ToHandle to basetsd.h
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=607335908621dd1add41c…
commit 607335908621dd1add41cc36a5b861db0318ecc2 Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Thu Oct 19 10:18:19 2017 +0200 [REACTOS] Fix x64 build - SIZE_T -> ULONG in KsecGatherEntropyData - Add missing ZwQueryInformationProcess() prototype for x64 build of btrfs - Fix ml.exe path for VS 2017 Community Edition - Add missing Handle32ToHandle to basetsd.h --- drivers/crypto/ksecdd/random.c | 2 +- drivers/filesystems/btrfs/create.c | 12 ++++++++++++ sdk/cmake/msvc.cmake | 4 +++- sdk/include/psdk/basetsd.h | 1 + 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/ksecdd/random.c b/drivers/crypto/ksecdd/random.c index b338e3c148..53ed1e8866 100644 --- a/drivers/crypto/ksecdd/random.c +++ b/drivers/crypto/ksecdd/random.c @@ -96,7 +96,7 @@ KsecGatherEntropyData( PTEB Teb; PPEB Peb; PWSTR String; - SIZE_T ReturnLength; + ULONG ReturnLength; NTSTATUS Status; /* Query some generic values */ diff --git a/drivers/filesystems/btrfs/create.c b/drivers/filesystems/btrfs/create.c index 15728de757..191bf63be8 100644 --- a/drivers/filesystems/btrfs/create.c +++ b/drivers/filesystems/btrfs/create.c @@ -2266,6 +2266,18 @@ static NTSTATUS create_stream(_Requires_lock_held_(_Curr_->tree_lock) _Requires_ // LXSS programs can be distinguished by the fact they have a NULL PEB. #ifdef _AMD64_ +#ifdef __REACTOS__ +NTSYSAPI +NTSTATUS +NTAPI +ZwQueryInformationProcess ( + _In_ HANDLE ProcessHandle, + _In_ PROCESSINFOCLASS ProcessInformationClass, + _Out_ PVOID ProcessInformation, + _In_ ULONG ProcessInformationLength, + _Out_opt_ PULONG ReturnLength +); +#endif static __inline BOOL called_from_lxss() { NTSTATUS Status; PROCESS_BASIC_INFORMATION pbi; diff --git a/sdk/cmake/msvc.cmake b/sdk/cmake/msvc.cmake index b76b46d095..4705b3cae9 100644 --- a/sdk/cmake/msvc.cmake +++ b/sdk/cmake/msvc.cmake @@ -407,7 +407,9 @@ set(PSEH_LIB "pseh") # Use a full path for the x86 version of ml when using x64 VS. # It's not a problem when using the DDK/WDK because, in x64 mode, # both the x86 and x64 versions of ml are available. -if((ARCH STREQUAL "amd64") AND (DEFINED ENV{VCINSTALLDIR})) +if((ARCH STREQUAL "amd64") AND (DEFINED ENV{VCToolsInstallDir})) + set(CMAKE_ASM16_COMPILER $ENV{VCToolsInstallDir}/bin/HostX86/x86/ml.exe) +elseif((ARCH STREQUAL "amd64") AND (DEFINED ENV{VCINSTALLDIR})) set(CMAKE_ASM16_COMPILER $ENV{VCINSTALLDIR}/bin/ml.exe) elseif(ARCH STREQUAL "arm") set(CMAKE_ASM16_COMPILER armasm.exe) diff --git a/sdk/include/psdk/basetsd.h b/sdk/include/psdk/basetsd.h index 103560f6c2..29b1026d97 100644 --- a/sdk/include/psdk/basetsd.h +++ b/sdk/include/psdk/basetsd.h @@ -68,6 +68,7 @@ typedef unsigned __int64 HANDLE_PTR; typedef unsigned int UHALF_PTR, *PUHALF_PTR; typedef int HALF_PTR, *PHALF_PTR; #define ADDRESS_TAG_BIT 0x40000000000UI64 +#define Handle32ToHandle( h ) ((HANDLE)(LONG_PTR)(LONG)(h)) #else /* !_WIN64 */ #define __int3264 __int32 #define ADDRESS_TAG_BIT 0x80000000UL
7 years, 2 months
1
0
0
0
[reactos] 03/03: [NDK] Add tests for TEB
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=547b38e02210b5b4e4d65…
commit 547b38e02210b5b4e4d658015808d52b2b05f59d Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Sat Oct 7 16:11:52 2017 +0200 [NDK] Add tests for TEB --- sdk/include/ndk/tests/win10_x64.c | 211 +++++++++++++++++++++++++++++++++++- sdk/include/ndk/tests/win10_x86.c | 99 +++++++++++++++++ sdk/include/ndk/tests/win2003_x64.c | 75 +++++++++++++ sdk/include/ndk/tests/win2003_x86.c | 75 ++++++++++++- 4 files changed, 457 insertions(+), 3 deletions(-) diff --git a/sdk/include/ndk/tests/win10_x64.c b/sdk/include/ndk/tests/win10_x64.c index 1ccde8ce99..4bd747c069 100644 --- a/sdk/include/ndk/tests/win10_x64.c +++ b/sdk/include/ndk/tests/win10_x64.c @@ -27,7 +27,7 @@ C_ASSERT_FIELD(KTHREAD, 0x060, PXSAVE_FORMAT, StateSaveArea) C_ASSERT_FIELD(KTHREAD, 0x068, struct _KSCHEDULING_GROUP*, SchedulingGroup) C_ASSERT_FIELD(KTHREAD, 0x070, KWAIT_STATUS_REGISTER, WaitRegister) C_ASSERT_FIELD(KTHREAD, 0x071, UCHAR, Running) -C_ASSERT_FIELD(KTHREAD, 0x072, UINT8[2], Alerted) +C_ASSERT_FIELD(KTHREAD, 0x072, UCHAR[2], Alerted) C_ASSERT_FIELD(KTHREAD, 0x074, LONG, MiscFlags) C_ASSERT_FIELD(KTHREAD, 0x078, LONG, ThreadFlags) C_ASSERT_FIELD(KTHREAD, 0x07C, UCHAR, Tag) @@ -103,7 +103,7 @@ C_ASSERT_FIELD(KTHREAD, 0x31C, ULONG, SecureThreadCookie) C_ASSERT_FIELD(KTHREAD, 0x320, KLOCK_ENTRY[6], LockEntries) C_ASSERT_FIELD(KTHREAD, 0x560, SINGLE_LIST_ENTRY, PropagateBoostsEntry) C_ASSERT_FIELD(KTHREAD, 0x568, SINGLE_LIST_ENTRY, IoSelfBoostsEntry) -C_ASSERT_FIELD(KTHREAD, 0x570, UINT8[16], PriorityFloorCounts) +C_ASSERT_FIELD(KTHREAD, 0x570, UCHAR[16], PriorityFloorCounts) C_ASSERT_FIELD(KTHREAD, 0x580, ULONG, PriorityFloorSummary) C_ASSERT_FIELD(KTHREAD, 0x584, LONG, AbCompletedIoBoostCount) C_ASSERT_FIELD(KTHREAD, 0x588, SHORT, KeReferenceCount) @@ -120,3 +120,210 @@ C_ASSERT_FIELD(KTHREAD, 0x5B8, LONG64, ReadTransferCount) C_ASSERT_FIELD(KTHREAD, 0x5C0, LONG64, WriteTransferCount) C_ASSERT_FIELD(KTHREAD, 0x5C8, LONG64, OtherTransferCount) C_ASSERT_FIELD(KTHREAD, 0x5D0, struct _KSCB*, QueuedScb) + +/* TEB */ +C_ASSERT_FIELD(TEB, 0x000, NT_TIB, NtTib) +C_ASSERT_FIELD(TEB, 0x038, PVOID, EnvironmentPointer) +C_ASSERT_FIELD(TEB, 0x040, CLIENT_ID, ClientId) +C_ASSERT_FIELD(TEB, 0x050, PVOID, ActiveRpcHandle) +C_ASSERT_FIELD(TEB, 0x058, PVOID, ThreadLocalStoragePointer) +C_ASSERT_FIELD(TEB, 0x060, PPEB, ProcessEnvironmentBlock) +C_ASSERT_FIELD(TEB, 0x068, ULONG, LastErrorValue) +C_ASSERT_FIELD(TEB, 0x06C, ULONG, CountOfOwnedCriticalSections) +C_ASSERT_FIELD(TEB, 0x070, PVOID, CsrClientThread) +C_ASSERT_FIELD(TEB, 0x078, PVOID, Win32ThreadInfo) +C_ASSERT_FIELD(TEB, 0x080, ULONG[26], User32Reserved) +C_ASSERT_FIELD(TEB, 0x0E8, ULONG[5], UserReserved) +C_ASSERT_FIELD(TEB, 0x100, PVOID, WOW32Reserved) +C_ASSERT_FIELD(TEB, 0x108, ULONG, CurrentLocale) +C_ASSERT_FIELD(TEB, 0x10C, ULONG, FpSoftwareStatusRegister) +C_ASSERT_FIELD(TEB, 0x110, PVOID[16], ReservedForDebuggerInstrumentation) +//C_ASSERT_FIELD(TEB, 0x190, PVOID[32], SystemReserved1) +//C_ASSERT_FIELD(TEB, 0x290, ACTIVATION_CONTEXT_STACK, _ActivationStack) +//C_ASSERT_FIELD(TEB, 0x2B8, UCHAR[8], WorkingOnBehalfTicket) +C_ASSERT_FIELD(TEB, 0x2C0, LONG, ExceptionCode) +C_ASSERT_FIELD(TEB, 0x2C4, UCHAR[4], Padding0) +C_ASSERT_FIELD(TEB, 0x2C8, PACTIVATION_CONTEXT_STACK, ActivationContextStackPointer) +C_ASSERT_FIELD(TEB, 0x2D0, ULONG64, InstrumentationCallbackSp) +C_ASSERT_FIELD(TEB, 0x2D8, ULONG64, InstrumentationCallbackPreviousPc) +C_ASSERT_FIELD(TEB, 0x2E0, ULONG64, InstrumentationCallbackPreviousSp) +C_ASSERT_FIELD(TEB, 0x2E8, ULONG, TxFsContext) +C_ASSERT_FIELD(TEB, 0x2EC, UCHAR, InstrumentationCallbackDisabled) +C_ASSERT_FIELD(TEB, 0x2ED, UCHAR[3], Padding1) +C_ASSERT_FIELD(TEB, 0x2F0, GDI_TEB_BATCH, GdiTebBatch) +C_ASSERT_FIELD(TEB, 0x7D8, CLIENT_ID, RealClientId) +C_ASSERT_FIELD(TEB, 0x7E8, PVOID, GdiCachedProcessHandle) +C_ASSERT_FIELD(TEB, 0x7F0, ULONG, GdiClientPID) +C_ASSERT_FIELD(TEB, 0x7F4, ULONG, GdiClientTID) +C_ASSERT_FIELD(TEB, 0x7F8, PVOID, GdiThreadLocalInfo) +C_ASSERT_FIELD(TEB, 0x800, ULONG64[62], Win32ClientInfo) +C_ASSERT_FIELD(TEB, 0x9F0, PVOID[233], glDispatchTable) +C_ASSERT_FIELD(TEB, 0x1138, ULONG64[29], glReserved1) +C_ASSERT_FIELD(TEB, 0x1220, PVOID, glReserved2) +C_ASSERT_FIELD(TEB, 0x1228, PVOID, glSectionInfo) +C_ASSERT_FIELD(TEB, 0x1230, PVOID, glSection) +C_ASSERT_FIELD(TEB, 0x1238, PVOID, glTable) +C_ASSERT_FIELD(TEB, 0x1240, PVOID, glCurrentRC) +C_ASSERT_FIELD(TEB, 0x1248, PVOID, glContext) +C_ASSERT_FIELD(TEB, 0x1250, ULONG, LastStatusValue) +C_ASSERT_FIELD(TEB, 0x1254, UCHAR[4], Padding2) +C_ASSERT_FIELD(TEB, 0x1258, UNICODE_STRING, StaticUnicodeString) +C_ASSERT_FIELD(TEB, 0x1268, WCHAR[261], StaticUnicodeBuffer) +C_ASSERT_FIELD(TEB, 0x1472, UCHAR[6], Padding3) +C_ASSERT_FIELD(TEB, 0x1478, PVOID, DeallocationStack) +C_ASSERT_FIELD(TEB, 0x1480, PVOID[64], TlsSlots) +C_ASSERT_FIELD(TEB, 0x1680, LIST_ENTRY, TlsLinks) +C_ASSERT_FIELD(TEB, 0x1690, PVOID, Vdm) +C_ASSERT_FIELD(TEB, 0x1698, PVOID, ReservedForNtRpc) +C_ASSERT_FIELD(TEB, 0x16A0, PVOID[2], DbgSsReserved) +C_ASSERT_FIELD(TEB, 0x16B0, ULONG, HardErrorMode) +C_ASSERT_FIELD(TEB, 0x16B4, UCHAR[4], Padding4) +C_ASSERT_FIELD(TEB, 0x16B8, PVOID[11], Instrumentation) +C_ASSERT_FIELD(TEB, 0x1710, GUID, ActivityId) +C_ASSERT_FIELD(TEB, 0x1720, PVOID, SubProcessTag) +C_ASSERT_FIELD(TEB, 0x1728, PVOID, PerflibData) +C_ASSERT_FIELD(TEB, 0x1730, PVOID, EtwTraceData) +C_ASSERT_FIELD(TEB, 0x1738, PVOID, WinSockData) +C_ASSERT_FIELD(TEB, 0x1740, ULONG, GdiBatchCount) +C_ASSERT_FIELD(TEB, 0x1744, PROCESSOR_NUMBER, CurrentIdealProcessor) +C_ASSERT_FIELD(TEB, 0x1744, ULONG, IdealProcessorValue) +C_ASSERT_FIELD(TEB, 0x1744, UCHAR, ReservedPad0) +C_ASSERT_FIELD(TEB, 0x1745, UCHAR, ReservedPad1) +C_ASSERT_FIELD(TEB, 0x1746, UCHAR, ReservedPad2) +C_ASSERT_FIELD(TEB, 0x1747, UCHAR, IdealProcessor) +C_ASSERT_FIELD(TEB, 0x1748, ULONG, GuaranteedStackBytes) +C_ASSERT_FIELD(TEB, 0x174C, UCHAR[4], Padding5) +C_ASSERT_FIELD(TEB, 0x1750, PVOID, ReservedForPerf) +C_ASSERT_FIELD(TEB, 0x1758, PVOID, ReservedForOle) +C_ASSERT_FIELD(TEB, 0x1760, ULONG, WaitingOnLoaderLock) +C_ASSERT_FIELD(TEB, 0x1764, UCHAR[4], Padding6) +C_ASSERT_FIELD(TEB, 0x1768, PVOID, SavedPriorityState) +C_ASSERT_FIELD(TEB, 0x1770, ULONG64, ReservedForCodeCoverage) +C_ASSERT_FIELD(TEB, 0x1778, PVOID, ThreadPoolData) +C_ASSERT_FIELD(TEB, 0x1780, PVOID*, TlsExpansionSlots) +C_ASSERT_FIELD(TEB, 0x1788, PVOID, DeallocationBStore) +C_ASSERT_FIELD(TEB, 0x1790, PVOID, BStoreLimit) +C_ASSERT_FIELD(TEB, 0x1798, ULONG, MuiGeneration) +C_ASSERT_FIELD(TEB, 0x179C, ULONG, IsImpersonating) +C_ASSERT_FIELD(TEB, 0x17A0, PVOID, NlsCache) +C_ASSERT_FIELD(TEB, 0x17A8, PVOID, pShimData) +C_ASSERT_FIELD(TEB, 0x17B0, USHORT, HeapVirtualAffinity) +C_ASSERT_FIELD(TEB, 0x17B2, USHORT, LowFragHeapDataSlot) +C_ASSERT_FIELD(TEB, 0x17B4, UCHAR[4], Padding7) +C_ASSERT_FIELD(TEB, 0x17B8, PVOID, CurrentTransactionHandle) +C_ASSERT_FIELD(TEB, 0x17C0, PTEB_ACTIVE_FRAME, ActiveFrame) +C_ASSERT_FIELD(TEB, 0x17C8, PVOID, FlsData) +C_ASSERT_FIELD(TEB, 0x17D0, PVOID, PreferredLanguages) +C_ASSERT_FIELD(TEB, 0x17D8, PVOID, UserPrefLanguages) +C_ASSERT_FIELD(TEB, 0x17E0, PVOID, MergedPrefLanguages) +C_ASSERT_FIELD(TEB, 0x17E8, ULONG, MuiImpersonation) +C_ASSERT_FIELD(TEB, 0x17EC, USHORT, CrossTebFlags) +C_ASSERT_FIELD(TEB, 0x17EE, USHORT, SameTebFlags) +C_ASSERT_FIELD(TEB, 0x17F0, PVOID, TxnScopeEnterCallback) +C_ASSERT_FIELD(TEB, 0x17F8, PVOID, TxnScopeExitCallback) +C_ASSERT_FIELD(TEB, 0x1800, PVOID, TxnScopeContext) +C_ASSERT_FIELD(TEB, 0x1808, ULONG, LockCount) +C_ASSERT_FIELD(TEB, 0x180C, LONG, WowTebOffset) +C_ASSERT_FIELD(TEB, 0x1810, PVOID, ResourceRetValue) +C_ASSERT_FIELD(TEB, 0x1818, PVOID, ReservedForWdf) +C_ASSERT_FIELD(TEB, 0x1820, ULONG64, ReservedForCrt) +C_ASSERT_FIELD(TEB, 0x1828, GUID, EffectiveContainerId) + +/* TEB32 */ +C_ASSERT_FIELD(TEB32, 0x000, NT_TIB32, NtTib) +C_ASSERT_FIELD(TEB32, 0x01c, ULONG, EnvironmentPointer) +C_ASSERT_FIELD(TEB32, 0x020, CLIENT_ID32, ClientId) +C_ASSERT_FIELD(TEB32, 0x028, ULONG, ActiveRpcHandle) +C_ASSERT_FIELD(TEB32, 0x02c, ULONG, ThreadLocalStoragePointer) +C_ASSERT_FIELD(TEB32, 0x030, ULONG, ProcessEnvironmentBlock) +C_ASSERT_FIELD(TEB32, 0x034, ULONG, LastErrorValue) +C_ASSERT_FIELD(TEB32, 0x038, ULONG, CountOfOwnedCriticalSections) +C_ASSERT_FIELD(TEB32, 0x03c, ULONG, CsrClientThread) +C_ASSERT_FIELD(TEB32, 0x040, ULONG, Win32ThreadInfo) +C_ASSERT_FIELD(TEB32, 0x044, ULONG[26], User32Reserved) +C_ASSERT_FIELD(TEB32, 0x0ac, ULONG[5], UserReserved) +C_ASSERT_FIELD(TEB32, 0x0c0, ULONG, WOW32Reserved) +C_ASSERT_FIELD(TEB32, 0x0c4, ULONG, CurrentLocale) +C_ASSERT_FIELD(TEB32, 0x0c8, ULONG, FpSoftwareStatusRegister) +C_ASSERT_FIELD(TEB32, 0x0CC, ULONG[16], ReservedForDebuggerInstrumentation) +//C_ASSERT_FIELD(TEB32, 0x10c, ULONG[30], SystemReserved1) +//C_ASSERT_FIELD(TEB32, 0x184, ACTIVATION_CONTEXT_STACK32, _ActivationStack) +//C_ASSERT_FIELD(TEB32, 0x19C, UCHAR[8], WorkingOnBehalfTicket) +C_ASSERT_FIELD(TEB32, 0x1a4, LONG, ExceptionCode) +C_ASSERT_FIELD(TEB32, 0x1a8, ULONG, ActivationContextStackPointer) +C_ASSERT_FIELD(TEB32, 0x1AC, ULONG, InstrumentationCallbackSp) +C_ASSERT_FIELD(TEB32, 0x1B0, ULONG, InstrumentationCallbackPreviousPc) +C_ASSERT_FIELD(TEB32, 0x1B4, ULONG, InstrumentationCallbackPreviousSp) +C_ASSERT_FIELD(TEB32, 0x1B8, UCHAR, InstrumentationCallbackDisabled) +C_ASSERT_FIELD(TEB32, 0x1b9, UCHAR[23], SpareBytes) +C_ASSERT_FIELD(TEB32, 0x1d0, ULONG, TxFsContext) +C_ASSERT_FIELD(TEB32, 0x1d4, GDI_TEB_BATCH32, GdiTebBatch) +C_ASSERT_FIELD(TEB32, 0x6b4, CLIENT_ID32, RealClientId) +C_ASSERT_FIELD(TEB32, 0x6bc, ULONG, GdiCachedProcessHandle) +C_ASSERT_FIELD(TEB32, 0x6c0, ULONG, GdiClientPID) +C_ASSERT_FIELD(TEB32, 0x6c4, ULONG, GdiClientTID) +C_ASSERT_FIELD(TEB32, 0x6c8, ULONG, GdiThreadLocalInfo) +C_ASSERT_FIELD(TEB32, 0x6cc, ULONG[62], Win32ClientInfo) +C_ASSERT_FIELD(TEB32, 0x7c4, ULONG[233], glDispatchTable) +C_ASSERT_FIELD(TEB32, 0xb68, ULONG[29], glReserved1) +C_ASSERT_FIELD(TEB32, 0xbdc, ULONG, glReserved2) +C_ASSERT_FIELD(TEB32, 0xbe0, ULONG, glSectionInfo) +C_ASSERT_FIELD(TEB32, 0xbe4, ULONG, glSection) +C_ASSERT_FIELD(TEB32, 0xbe8, ULONG, glTable) +C_ASSERT_FIELD(TEB32, 0xbec, ULONG, glCurrentRC) +C_ASSERT_FIELD(TEB32, 0xbf0, ULONG, glContext) +C_ASSERT_FIELD(TEB32, 0xbf4, ULONG, LastStatusValue) +C_ASSERT_FIELD(TEB32, 0xbf8, STRING32, StaticUnicodeString) +C_ASSERT_FIELD(TEB32, 0xc00, WCHAR[261], StaticUnicodeBuffer) +C_ASSERT_FIELD(TEB32, 0xe0c, ULONG, DeallocationStack) +C_ASSERT_FIELD(TEB32, 0xe10, ULONG[64], TlsSlots) +C_ASSERT_FIELD(TEB32, 0xf10, LIST_ENTRY32, TlsLinks) +C_ASSERT_FIELD(TEB32, 0xf18, ULONG, Vdm) +C_ASSERT_FIELD(TEB32, 0xf1c, ULONG, ReservedForNtRpc) +C_ASSERT_FIELD(TEB32, 0xf20, ULONG[2], DbgSsReserved) +C_ASSERT_FIELD(TEB32, 0xf28, ULONG, HardErrorMode) +C_ASSERT_FIELD(TEB32, 0xf2c, ULONG[9], Instrumentation) +C_ASSERT_FIELD(TEB32, 0xf50, GUID, ActivityId) +C_ASSERT_FIELD(TEB32, 0xf60, ULONG, SubProcessTag) +C_ASSERT_FIELD(TEB32, 0xf64, ULONG, PerflibData) +C_ASSERT_FIELD(TEB32, 0xf68, ULONG, EtwTraceData) +C_ASSERT_FIELD(TEB32, 0xf6c, ULONG, WinSockData) +C_ASSERT_FIELD(TEB32, 0xf70, ULONG, GdiBatchCount) +C_ASSERT_FIELD(TEB32, 0xf74, PROCESSOR_NUMBER, CurrentIdealProcessor) +C_ASSERT_FIELD(TEB32, 0xf74, ULONG, IdealProcessorValue) +C_ASSERT_FIELD(TEB32, 0xf74, UCHAR, ReservedPad0) +C_ASSERT_FIELD(TEB32, 0xf75, UCHAR, ReservedPad1) +C_ASSERT_FIELD(TEB32, 0xf76, UCHAR, ReservedPad2) +C_ASSERT_FIELD(TEB32, 0xf77, UCHAR, IdealProcessor) +C_ASSERT_FIELD(TEB32, 0xf78, ULONG, GuaranteedStackBytes) +C_ASSERT_FIELD(TEB32, 0xf7c, ULONG, ReservedForPerf) +C_ASSERT_FIELD(TEB32, 0xf80, ULONG, ReservedForOle) +C_ASSERT_FIELD(TEB32, 0xf84, ULONG, WaitingOnLoaderLock) +C_ASSERT_FIELD(TEB32, 0xf88, ULONG, SavedPriorityState) +C_ASSERT_FIELD(TEB32, 0xf8c, ULONG, ReservedForCodeCoverage) +C_ASSERT_FIELD(TEB32, 0xf90, ULONG, ThreadPoolData) +C_ASSERT_FIELD(TEB32, 0xf94, ULONG, TlsExpansionSlots) +C_ASSERT_FIELD(TEB32, 0xf98, ULONG, MuiGeneration) +C_ASSERT_FIELD(TEB32, 0xf9c, ULONG, IsImpersonating) +C_ASSERT_FIELD(TEB32, 0xfa0, ULONG, NlsCache) +C_ASSERT_FIELD(TEB32, 0xfa4, ULONG, pShimData) +C_ASSERT_FIELD(TEB32, 0xfa8, USHORT, HeapVirtualAffinity) +C_ASSERT_FIELD(TEB32, 0xFAA, USHORT, LowFragHeapDataSlot) +C_ASSERT_FIELD(TEB32, 0xfac, ULONG, CurrentTransactionHandle) +C_ASSERT_FIELD(TEB32, 0xfb0, ULONG, ActiveFrame) +C_ASSERT_FIELD(TEB32, 0xfb4, ULONG, FlsData) +C_ASSERT_FIELD(TEB32, 0xfb8, ULONG, PreferredLanguages) +C_ASSERT_FIELD(TEB32, 0xfbc, ULONG, UserPrefLanguages) +C_ASSERT_FIELD(TEB32, 0xfc0, ULONG, MergedPrefLanguages) +C_ASSERT_FIELD(TEB32, 0xfc4, ULONG, MuiImpersonation) +C_ASSERT_FIELD(TEB32, 0xfc8, USHORT, CrossTebFlags) +C_ASSERT_FIELD(TEB32, 0xfca, USHORT, SameTebFlags) +C_ASSERT_FIELD(TEB32, 0xfcc, ULONG, TxnScopeEnterCallback) +C_ASSERT_FIELD(TEB32, 0xfd0, ULONG, TxnScopeExitCallback) +C_ASSERT_FIELD(TEB32, 0xfd4, ULONG, TxnScopeContext) +C_ASSERT_FIELD(TEB32, 0xfd8, ULONG, LockCount) +C_ASSERT_FIELD(TEB32, 0xfdc, ULONG, WowTebOffset) +C_ASSERT_FIELD(TEB32, 0xfe0, ULONG, ResourceRetValue) +C_ASSERT_FIELD(TEB32, 0xFE4, ULONG, ReservedForWdf) +C_ASSERT_FIELD(TEB32, 0xFE8, ULONG64, ReservedForCrt) +C_ASSERT_FIELD(TEB32, 0xFF0, GUID, EffectiveContainerId) diff --git a/sdk/include/ndk/tests/win10_x86.c b/sdk/include/ndk/tests/win10_x86.c index 9693ecfddf..c6fea2b587 100644 --- a/sdk/include/ndk/tests/win10_x86.c +++ b/sdk/include/ndk/tests/win10_x86.c @@ -111,3 +111,102 @@ C_ASSERT_FIELD(KTHREAD, 0x330, SINGLE_LIST_ENTRY, ForegroundDpcStackListEntry) C_ASSERT_FIELD(KTHREAD, 0x334, ULONG, InGlobalForegroundList) C_ASSERT_FIELD(KTHREAD, 0x338, struct _KSCB*, QueuedScb) C_ASSERT_FIELD(KTHREAD, 0x340, ULONG64, NpxState) + +/* TEB */ +C_ASSERT_FIELD(TEB, 0x000, NT_TIB, NtTib) +C_ASSERT_FIELD(TEB, 0x01c, ULONG, EnvironmentPointer) +C_ASSERT_FIELD(TEB, 0x020, CLIENT_ID, ClientId) +C_ASSERT_FIELD(TEB, 0x028, ULONG, ActiveRpcHandle) +C_ASSERT_FIELD(TEB, 0x02c, ULONG, ThreadLocalStoragePointer) +C_ASSERT_FIELD(TEB, 0x030, ULONG, ProcessEnvironmentBlock) +C_ASSERT_FIELD(TEB, 0x034, ULONG, LastErrorValue) +C_ASSERT_FIELD(TEB, 0x038, ULONG, CountOfOwnedCriticalSections) +C_ASSERT_FIELD(TEB, 0x03c, ULONG, CsrClientThread) +C_ASSERT_FIELD(TEB, 0x040, ULONG, Win32ThreadInfo) +C_ASSERT_FIELD(TEB, 0x044, ULONG[26], User32Reserved) +C_ASSERT_FIELD(TEB, 0x0ac, ULONG[5], UserReserved) +C_ASSERT_FIELD(TEB, 0x0c0, ULONG, WOW32Reserved) +C_ASSERT_FIELD(TEB, 0x0c4, ULONG, CurrentLocale) +C_ASSERT_FIELD(TEB, 0x0c8, ULONG, FpSoftwareStatusRegister) +C_ASSERT_FIELD(TEB, 0x0CC, ULONG[16], ReservedForDebuggerInstrumentation) +//C_ASSERT_FIELD(TEB, 0x10c, ULONG[30], SystemReserved1) +//C_ASSERT_FIELD(TEB, 0x184, ACTIVATION_CONTEXT_STACK, _ActivationStack) +//C_ASSERT_FIELD(TEB, 0x19C, UCHAR[8], WorkingOnBehalfTicket) +C_ASSERT_FIELD(TEB, 0x1a4, LONG, ExceptionCode) +C_ASSERT_FIELD(TEB, 0x1a8, ULONG, ActivationContextStackPointer) +C_ASSERT_FIELD(TEB, 0x1AC, ULONG, InstrumentationCallbackSp) +C_ASSERT_FIELD(TEB, 0x1B0, ULONG, InstrumentationCallbackPreviousPc) +C_ASSERT_FIELD(TEB, 0x1B4, ULONG, InstrumentationCallbackPreviousSp) +C_ASSERT_FIELD(TEB, 0x1B8, UCHAR, InstrumentationCallbackDisabled) +C_ASSERT_FIELD(TEB, 0x1b9, UCHAR[23], SpareBytes) +C_ASSERT_FIELD(TEB, 0x1d0, ULONG, TxFsContext) +C_ASSERT_FIELD(TEB, 0x1d4, GDI_TEB_BATCH, GdiTebBatch) +C_ASSERT_FIELD(TEB, 0x6b4, CLIENT_ID, RealClientId) +C_ASSERT_FIELD(TEB, 0x6bc, ULONG, GdiCachedProcessHandle) +C_ASSERT_FIELD(TEB, 0x6c0, ULONG, GdiClientPID) +C_ASSERT_FIELD(TEB, 0x6c4, ULONG, GdiClientTID) +C_ASSERT_FIELD(TEB, 0x6c8, ULONG, GdiThreadLocalInfo) +C_ASSERT_FIELD(TEB, 0x6cc, ULONG[62], Win32ClientInfo) +C_ASSERT_FIELD(TEB, 0x7c4, ULONG[233], glDispatchTable) +C_ASSERT_FIELD(TEB, 0xb68, ULONG[29], glReserved1) +C_ASSERT_FIELD(TEB, 0xbdc, ULONG, glReserved2) +C_ASSERT_FIELD(TEB, 0xbe0, ULONG, glSectionInfo) +C_ASSERT_FIELD(TEB, 0xbe4, ULONG, glSection) +C_ASSERT_FIELD(TEB, 0xbe8, ULONG, glTable) +C_ASSERT_FIELD(TEB, 0xbec, ULONG, glCurrentRC) +C_ASSERT_FIELD(TEB, 0xbf0, ULONG, glContext) +C_ASSERT_FIELD(TEB, 0xbf4, ULONG, LastStatusValue) +C_ASSERT_FIELD(TEB, 0xbf8, STRING, StaticUnicodeString) +C_ASSERT_FIELD(TEB, 0xc00, WCHAR[261], StaticUnicodeBuffer) +C_ASSERT_FIELD(TEB, 0xe0c, ULONG, DeallocationStack) +C_ASSERT_FIELD(TEB, 0xe10, ULONG[64], TlsSlots) +C_ASSERT_FIELD(TEB, 0xf10, LIST_ENTRY, TlsLinks) +C_ASSERT_FIELD(TEB, 0xf18, ULONG, Vdm) +C_ASSERT_FIELD(TEB, 0xf1c, ULONG, ReservedForNtRpc) +C_ASSERT_FIELD(TEB, 0xf20, ULONG[2], DbgSsReserved) +C_ASSERT_FIELD(TEB, 0xf28, ULONG, HardErrorMode) +C_ASSERT_FIELD(TEB, 0xf2c, ULONG[9], Instrumentation) +C_ASSERT_FIELD(TEB, 0xf50, GUID, ActivityId) +C_ASSERT_FIELD(TEB, 0xf60, ULONG, SubProcessTag) +C_ASSERT_FIELD(TEB, 0xf64, ULONG, PerflibData) +C_ASSERT_FIELD(TEB, 0xf68, ULONG, EtwTraceData) +C_ASSERT_FIELD(TEB, 0xf6c, ULONG, WinSockData) +C_ASSERT_FIELD(TEB, 0xf70, ULONG, GdiBatchCount) +C_ASSERT_FIELD(TEB, 0xf74, PROCESSOR_NUMBER, CurrentIdealProcessor) +C_ASSERT_FIELD(TEB, 0xf74, ULONG, IdealProcessorValue) +C_ASSERT_FIELD(TEB, 0xf74, UCHAR, ReservedPad0) +C_ASSERT_FIELD(TEB, 0xf75, UCHAR, ReservedPad1) +C_ASSERT_FIELD(TEB, 0xf76, UCHAR, ReservedPad2) +C_ASSERT_FIELD(TEB, 0xf77, UCHAR, IdealProcessor) +C_ASSERT_FIELD(TEB, 0xf78, ULONG, GuaranteedStackBytes) +C_ASSERT_FIELD(TEB, 0xf7c, ULONG, ReservedForPerf) +C_ASSERT_FIELD(TEB, 0xf80, ULONG, ReservedForOle) +C_ASSERT_FIELD(TEB, 0xf84, ULONG, WaitingOnLoaderLock) +C_ASSERT_FIELD(TEB, 0xf88, ULONG, SavedPriorityState) +C_ASSERT_FIELD(TEB, 0xf8c, ULONG, ReservedForCodeCoverage) +C_ASSERT_FIELD(TEB, 0xf90, ULONG, ThreadPoolData) +C_ASSERT_FIELD(TEB, 0xf94, ULONG, TlsExpansionSlots) +C_ASSERT_FIELD(TEB, 0xf98, ULONG, MuiGeneration) +C_ASSERT_FIELD(TEB, 0xf9c, ULONG, IsImpersonating) +C_ASSERT_FIELD(TEB, 0xfa0, ULONG, NlsCache) +C_ASSERT_FIELD(TEB, 0xfa4, ULONG, pShimData) +C_ASSERT_FIELD(TEB, 0xfa8, USHORT, HeapVirtualAffinity) +C_ASSERT_FIELD(TEB, 0xFAA, USHORT, LowFragHeapDataSlot) +C_ASSERT_FIELD(TEB, 0xfac, ULONG, CurrentTransactionHandle) +C_ASSERT_FIELD(TEB, 0xfb0, ULONG, ActiveFrame) +C_ASSERT_FIELD(TEB, 0xfb4, ULONG, FlsData) +C_ASSERT_FIELD(TEB, 0xfb8, ULONG, PreferredLanguages) +C_ASSERT_FIELD(TEB, 0xfbc, ULONG, UserPrefLanguages) +C_ASSERT_FIELD(TEB, 0xfc0, ULONG, MergedPrefLanguages) +C_ASSERT_FIELD(TEB, 0xfc4, ULONG, MuiImpersonation) +C_ASSERT_FIELD(TEB, 0xfc8, USHORT, CrossTebFlags) +C_ASSERT_FIELD(TEB, 0xfca, USHORT, SameTebFlags) +C_ASSERT_FIELD(TEB, 0xfcc, ULONG, TxnScopeEnterCallback) +C_ASSERT_FIELD(TEB, 0xfd0, ULONG, TxnScopeExitCallback) +C_ASSERT_FIELD(TEB, 0xfd4, ULONG, TxnScopeContext) +C_ASSERT_FIELD(TEB, 0xfd8, ULONG, LockCount) +C_ASSERT_FIELD(TEB, 0xfdc, ULONG, WowTebOffset) +C_ASSERT_FIELD(TEB, 0xfe0, ULONG, ResourceRetValue) +C_ASSERT_FIELD(TEB, 0xFE4, ULONG, ReservedForWdf) +C_ASSERT_FIELD(TEB, 0xFE8, ULONG64, ReservedForCrt) +C_ASSERT_FIELD(TEB, 0xFF0, GUID, EffectiveContainerId) diff --git a/sdk/include/ndk/tests/win2003_x64.c b/sdk/include/ndk/tests/win2003_x64.c index be1f6a5f1c..3b8322849d 100644 --- a/sdk/include/ndk/tests/win2003_x64.c +++ b/sdk/include/ndk/tests/win2003_x64.c @@ -118,3 +118,78 @@ C_ASSERT_FIELD(KTHREAD, 0x300, LONG64, OtherOperationCount) C_ASSERT_FIELD(KTHREAD, 0x308, LONG64, ReadTransferCount) C_ASSERT_FIELD(KTHREAD, 0x310, LONG64, WriteTransferCount) C_ASSERT_FIELD(KTHREAD, 0x318, LONG64, OtherTransferCount) + +/* TEB */ +C_ASSERT_FIELD(TEB, 0x000, NT_TIB, NtTib) +C_ASSERT_FIELD(TEB, 0x038, PVOID, EnvironmentPointer) +C_ASSERT_FIELD(TEB, 0x040, CLIENT_ID, ClientId) +C_ASSERT_FIELD(TEB, 0x050, PVOID, ActiveRpcHandle) +C_ASSERT_FIELD(TEB, 0x058, PVOID, ThreadLocalStoragePointer) +C_ASSERT_FIELD(TEB, 0x060, PPEB, ProcessEnvironmentBlock) +C_ASSERT_FIELD(TEB, 0x068, ULONG, LastErrorValue) +C_ASSERT_FIELD(TEB, 0x06C, ULONG, CountOfOwnedCriticalSections) +C_ASSERT_FIELD(TEB, 0x070, PVOID, CsrClientThread) +C_ASSERT_FIELD(TEB, 0x078, PVOID, Win32ThreadInfo) +C_ASSERT_FIELD(TEB, 0x080, ULONG[26], User32Reserved) +C_ASSERT_FIELD(TEB, 0x0E8, ULONG[5], UserReserved) +C_ASSERT_FIELD(TEB, 0x100, PVOID, WOW32Reserved) +C_ASSERT_FIELD(TEB, 0x108, ULONG, CurrentLocale) +C_ASSERT_FIELD(TEB, 0x10C, ULONG, FpSoftwareStatusRegister) +C_ASSERT_FIELD(TEB, 0x110, PVOID[54], SystemReserved1) +C_ASSERT_FIELD(TEB, 0x2C0, LONG, ExceptionCode) +C_ASSERT_FIELD(TEB, 0x2C8, PACTIVATION_CONTEXT_STACK, ActivationContextStackPointer) +C_ASSERT_FIELD(TEB, 0x2D0, UCHAR[28], SpareBytes1) +C_ASSERT_FIELD(TEB, 0x2F0, GDI_TEB_BATCH, GdiTebBatch) +C_ASSERT_FIELD(TEB, 0x7D8, CLIENT_ID, RealClientId) +C_ASSERT_FIELD(TEB, 0x7E8, PVOID, GdiCachedProcessHandle) +C_ASSERT_FIELD(TEB, 0x7F0, ULONG, GdiClientPID) +C_ASSERT_FIELD(TEB, 0x7F4, ULONG, GdiClientTID) +C_ASSERT_FIELD(TEB, 0x7F8, PVOID, GdiThreadLocalInfo) +C_ASSERT_FIELD(TEB, 0x800, ULONG64[62], Win32ClientInfo) +C_ASSERT_FIELD(TEB, 0x9F0, PVOID[233], glDispatchTable) +C_ASSERT_FIELD(TEB, 0x1138, ULONG64[29], glReserved1) +C_ASSERT_FIELD(TEB, 0x1220, PVOID, glReserved2) +C_ASSERT_FIELD(TEB, 0x1228, PVOID, glSectionInfo) +C_ASSERT_FIELD(TEB, 0x1230, PVOID, glSection) +C_ASSERT_FIELD(TEB, 0x1238, PVOID, glTable) +C_ASSERT_FIELD(TEB, 0x1240, PVOID, glCurrentRC) +C_ASSERT_FIELD(TEB, 0x1248, PVOID, glContext) +C_ASSERT_FIELD(TEB, 0x1250, ULONG, LastStatusValue) +C_ASSERT_FIELD(TEB, 0x1258, UNICODE_STRING, StaticUnicodeString) +C_ASSERT_FIELD(TEB, 0x1268, WCHAR[261], StaticUnicodeBuffer) +C_ASSERT_FIELD(TEB, 0x1478, PVOID, DeallocationStack) +C_ASSERT_FIELD(TEB, 0x1480, PVOID[64], TlsSlots) +C_ASSERT_FIELD(TEB, 0x1680, LIST_ENTRY, TlsLinks) +C_ASSERT_FIELD(TEB, 0x1690, PVOID, Vdm) +C_ASSERT_FIELD(TEB, 0x1698, PVOID, ReservedForNtRpc) +C_ASSERT_FIELD(TEB, 0x16A0, PVOID[2], DbgSsReserved) +C_ASSERT_FIELD(TEB, 0x16B0, ULONG, HardErrorMode) +C_ASSERT_FIELD(TEB, 0x16B8, PVOID[14], Instrumentation) +C_ASSERT_FIELD(TEB, 0x1728, PVOID, SubProcessTag) +C_ASSERT_FIELD(TEB, 0x1730, PVOID, EtwTraceData) +C_ASSERT_FIELD(TEB, 0x1738, PVOID, WinSockData) +C_ASSERT_FIELD(TEB, 0x1740, ULONG, GdiBatchCount) +C_ASSERT_FIELD(TEB, 0x1744, UCHAR, InDbgPrint) +C_ASSERT_FIELD(TEB, 0x1745, UCHAR, FreeStackOnTermination) +C_ASSERT_FIELD(TEB, 0x1746, UCHAR, HasFiberData) +C_ASSERT_FIELD(TEB, 0x1747, UCHAR, IdealProcessor) +C_ASSERT_FIELD(TEB, 0x1748, ULONG, GuaranteedStackBytes) +C_ASSERT_FIELD(TEB, 0x1750, PVOID, ReservedForPerf) +C_ASSERT_FIELD(TEB, 0x1758, PVOID, ReservedForOle) +C_ASSERT_FIELD(TEB, 0x1760, ULONG, WaitingOnLoaderLock) +C_ASSERT_FIELD(TEB, 0x1768, ULONG64, SparePointer1) +C_ASSERT_FIELD(TEB, 0x1770, ULONG64, SoftPatchPtr1) +C_ASSERT_FIELD(TEB, 0x1778, ULONG64, SoftPatchPtr2) +C_ASSERT_FIELD(TEB, 0x1780, PVOID*, TlsExpansionSlots) +C_ASSERT_FIELD(TEB, 0x1788, PVOID, DeallocationBStore) +C_ASSERT_FIELD(TEB, 0x1790, PVOID, BStoreLimit) +C_ASSERT_FIELD(TEB, 0x1798, ULONG, ImpersonationLocale) +C_ASSERT_FIELD(TEB, 0x179C, ULONG, IsImpersonating) +C_ASSERT_FIELD(TEB, 0x17A0, PVOID, NlsCache) +C_ASSERT_FIELD(TEB, 0x17A8, PVOID, pShimData) +C_ASSERT_FIELD(TEB, 0x17B0, ULONG, HeapVirtualAffinity) +C_ASSERT_FIELD(TEB, 0x17B8, PVOID, CurrentTransactionHandle) +C_ASSERT_FIELD(TEB, 0x17C0, PTEB_ACTIVE_FRAME, ActiveFrame) +C_ASSERT_FIELD(TEB, 0x17C8, PVOID, FlsData) +C_ASSERT_FIELD(TEB, 0x17D0, UCHAR, SafeThunkCall) +C_ASSERT_FIELD(TEB, 0x17D1, UCHAR[3], BooleanSpare) diff --git a/sdk/include/ndk/tests/win2003_x86.c b/sdk/include/ndk/tests/win2003_x86.c index ee20522091..a7d4b6f094 100644 --- a/sdk/include/ndk/tests/win2003_x86.c +++ b/sdk/include/ndk/tests/win2003_x86.c @@ -32,7 +32,7 @@ C_ASSERT_FIELD(KTHREAD, 0x04D, UCHAR, NpxState) C_ASSERT_FIELD(KTHREAD, 0x04E, UCHAR, WaitIrql) C_ASSERT_FIELD(KTHREAD, 0x04F, CHAR, WaitMode) C_ASSERT_FIELD(KTHREAD, 0x050, LONG, WaitStatus) -C_ASSERT_FIELD(KTHREAD, 0x054, PKWAIT_BLOCK, WaitBlockList) +C_ASSERT_FIELD(KTHREAD, 0x054, PKWAIT_BLOCK, WaitBlockList) C_ASSERT_FIELD(KTHREAD, 0x054, PKGATE, GateObject) C_ASSERT_FIELD(KTHREAD, 0x058, UCHAR, Alertable) C_ASSERT_FIELD(KTHREAD, 0x059, UCHAR, WaitNext) @@ -84,3 +84,76 @@ C_ASSERT_FIELD(KTHREAD, 0x150, CHAR, SuspendCount) C_ASSERT_FIELD(KTHREAD, 0x151, UCHAR, UserIdealProcessor) C_ASSERT_FIELD(KTHREAD, 0x152, UCHAR, CalloutActive) C_ASSERT_FIELD(KTHREAD, 0x153, UCHAR, Iopl) + +/* TEB */ +C_ASSERT_FIELD(TEB, 0x000, NT_TIB, NtTib) +C_ASSERT_FIELD(TEB, 0x01C, PVOID, EnvironmentPointer) +C_ASSERT_FIELD(TEB, 0x020, CLIENT_ID, ClientId) +C_ASSERT_FIELD(TEB, 0x028, PVOID, ActiveRpcHandle) +C_ASSERT_FIELD(TEB, 0x02C, PVOID, ThreadLocalStoragePointer) +C_ASSERT_FIELD(TEB, 0x030, PPEB, ProcessEnvironmentBlock) +C_ASSERT_FIELD(TEB, 0x034, ULONG, LastErrorValue) +C_ASSERT_FIELD(TEB, 0x038, ULONG, CountOfOwnedCriticalSections) +C_ASSERT_FIELD(TEB, 0x03C, PVOID, CsrClientThread) +C_ASSERT_FIELD(TEB, 0x040, PVOID, Win32ThreadInfo) +C_ASSERT_FIELD(TEB, 0x044, ULONG[26], User32Reserved) +C_ASSERT_FIELD(TEB, 0x0AC, ULONG[5], UserReserved) +C_ASSERT_FIELD(TEB, 0x0C0, PVOID, WOW32Reserved) +C_ASSERT_FIELD(TEB, 0x0C4, ULONG, CurrentLocale) +C_ASSERT_FIELD(TEB, 0x0C8, ULONG, FpSoftwareStatusRegister) +C_ASSERT_FIELD(TEB, 0x0CC, PVOID[54], SystemReserved1) +C_ASSERT_FIELD(TEB, 0x1A4, LONG, ExceptionCode) +C_ASSERT_FIELD(TEB, 0x1A8, PACTIVATION_CONTEXT_STACK, ActivationContextStackPointer) +C_ASSERT_FIELD(TEB, 0x1AC, UCHAR[40], SpareBytes1) +C_ASSERT_FIELD(TEB, 0x1D4, GDI_TEB_BATCH, GdiTebBatch) +C_ASSERT_FIELD(TEB, 0x6B4, CLIENT_ID, RealClientId) +C_ASSERT_FIELD(TEB, 0x6BC, PVOID, GdiCachedProcessHandle) +C_ASSERT_FIELD(TEB, 0x6C0, ULONG, GdiClientPID) +C_ASSERT_FIELD(TEB, 0x6C4, ULONG, GdiClientTID) +C_ASSERT_FIELD(TEB, 0x6C8, PVOID, GdiThreadLocalInfo) +C_ASSERT_FIELD(TEB, 0x6CC, ULONG[62], Win32ClientInfo) +C_ASSERT_FIELD(TEB, 0x7C4, PVOID[233], glDispatchTable) +C_ASSERT_FIELD(TEB, 0xB68, ULONG[29], glReserved1) +C_ASSERT_FIELD(TEB, 0xBDC, PVOID, glReserved2) +C_ASSERT_FIELD(TEB, 0xBE0, PVOID, glSectionInfo) +C_ASSERT_FIELD(TEB, 0xBE4, PVOID, glSection) +C_ASSERT_FIELD(TEB, 0xBE8, PVOID, glTable) +C_ASSERT_FIELD(TEB, 0xBEC, PVOID, glCurrentRC) +C_ASSERT_FIELD(TEB, 0xBF0, PVOID, glContext) +C_ASSERT_FIELD(TEB, 0xBF4, ULONG, LastStatusValue) +C_ASSERT_FIELD(TEB, 0xBF8, UNICODE_STRING, StaticUnicodeString) +C_ASSERT_FIELD(TEB, 0xC00, WCHAR[261], StaticUnicodeBuffer) +C_ASSERT_FIELD(TEB, 0xE0C, PVOID, DeallocationStack) +C_ASSERT_FIELD(TEB, 0xE10, PVOID[64], TlsSlots) +C_ASSERT_FIELD(TEB, 0xF10, LIST_ENTRY, TlsLinks) +C_ASSERT_FIELD(TEB, 0xF18, PVOID, Vdm) +C_ASSERT_FIELD(TEB, 0xF1C, PVOID, ReservedForNtRpc) +C_ASSERT_FIELD(TEB, 0xF20, PVOID[2], DbgSsReserved) +C_ASSERT_FIELD(TEB, 0xF28, ULONG, HardErrorMode) +C_ASSERT_FIELD(TEB, 0xF2C, PVOID[14], Instrumentation) +C_ASSERT_FIELD(TEB, 0xF64, PVOID, SubProcessTag) +C_ASSERT_FIELD(TEB, 0xF68, PVOID, EtwTraceData) +C_ASSERT_FIELD(TEB, 0xF6C, PVOID, WinSockData) +C_ASSERT_FIELD(TEB, 0xF70, ULONG, GdiBatchCount) +C_ASSERT_FIELD(TEB, 0xF74, UCHAR, InDbgPrint) +C_ASSERT_FIELD(TEB, 0xF75, UCHAR, FreeStackOnTermination) +C_ASSERT_FIELD(TEB, 0xF76, UCHAR, HasFiberData) +C_ASSERT_FIELD(TEB, 0xF77, UCHAR, IdealProcessor) +C_ASSERT_FIELD(TEB, 0xF78, ULONG, GuaranteedStackBytes) +C_ASSERT_FIELD(TEB, 0xF7C, PVOID, ReservedForPerf) +C_ASSERT_FIELD(TEB, 0xF80, PVOID, ReservedForOle) +C_ASSERT_FIELD(TEB, 0xF84, ULONG, WaitingOnLoaderLock) +C_ASSERT_FIELD(TEB, 0xF88, ULONG, SparePointer1) +C_ASSERT_FIELD(TEB, 0xF8C, ULONG, SoftPatchPtr1) +C_ASSERT_FIELD(TEB, 0xF90, ULONG, SoftPatchPtr2) +C_ASSERT_FIELD(TEB, 0xF94, PVOID*, TlsExpansionSlots) +C_ASSERT_FIELD(TEB, 0xF98, ULONG, ImpersonationLocale) +C_ASSERT_FIELD(TEB, 0xF9C, ULONG, IsImpersonating) +C_ASSERT_FIELD(TEB, 0xFA0, PVOID, NlsCache) +C_ASSERT_FIELD(TEB, 0xFA4, PVOID, pShimData) +C_ASSERT_FIELD(TEB, 0xFA8, ULONG, HeapVirtualAffinity) +C_ASSERT_FIELD(TEB, 0xFAC, PVOID, CurrentTransactionHandle) +C_ASSERT_FIELD(TEB, 0xFB0, PTEB_ACTIVE_FRAME, ActiveFrame) +C_ASSERT_FIELD(TEB, 0xFB4, PVOID, FlsData) +C_ASSERT_FIELD(TEB, 0xFB8, UCHAR, SafeThunkCall) +C_ASSERT_FIELD(TEB, 0xFB9, UCHAR[3], BooleanSpare)
7 years, 2 months
1
0
0
0
← Newer
1
...
6
7
8
9
10
11
12
...
28
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
Results per page:
10
25
50
100
200