mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 23:15:39 +00:00
[SHELLFIND] Add CSearchBar
This commit is contained in:
parent
957a604b36
commit
4212f4b175
12 changed files with 677 additions and 17 deletions
|
@ -1,6 +1,7 @@
|
||||||
PROJECT(SHELL)
|
PROJECT(SHELL)
|
||||||
|
|
||||||
add_subdirectory(shellbars)
|
add_subdirectory(shellbars)
|
||||||
|
add_subdirectory(shellfind)
|
||||||
|
|
||||||
set_cpp(WITH_RUNTIME)
|
set_cpp(WITH_RUNTIME)
|
||||||
|
|
||||||
|
@ -46,7 +47,7 @@ add_library(browseui MODULE
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/browseui.def)
|
${CMAKE_CURRENT_BINARY_DIR}/browseui.def)
|
||||||
|
|
||||||
set_module_type(browseui win32dll UNICODE)
|
set_module_type(browseui win32dll UNICODE)
|
||||||
target_link_libraries(browseui shellbars uuid wine)
|
target_link_libraries(browseui shellbars shellfind uuid wine)
|
||||||
add_importlibs(browseui uxtheme shlwapi shell32 comctl32 gdi32 ole32 oleaut32 user32 advapi32 mpr msvcrt kernel32 ntdll)
|
add_importlibs(browseui uxtheme shlwapi shell32 comctl32 gdi32 ole32 oleaut32 user32 advapi32 mpr msvcrt kernel32 ntdll)
|
||||||
add_pch(browseui precomp.h SOURCE)
|
add_pch(browseui precomp.h SOURCE)
|
||||||
add_cd_file(TARGET browseui DESTINATION reactos/system32 FOR all)
|
add_cd_file(TARGET browseui DESTINATION reactos/system32 FOR all)
|
||||||
|
|
|
@ -57,6 +57,15 @@ HRESULT CBrandBand_CreateInstance(REFIID riid, void **ppv)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT CSearchBar_CreateInstance(REFIID riid, LPVOID *ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_SEARCHBAND
|
||||||
|
return ShellObjectCreator<CSearchBar>(riid, ppv);
|
||||||
|
#else
|
||||||
|
return CoCreateInstance(CLSID_FileSearchBand, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT CExplorerBand_CreateInstance(REFIID riid, LPVOID *ppv)
|
HRESULT CExplorerBand_CreateInstance(REFIID riid, LPVOID *ppv)
|
||||||
{
|
{
|
||||||
#if USE_CUSTOM_EXPLORERBAND
|
#if USE_CUSTOM_EXPLORERBAND
|
||||||
|
@ -143,6 +152,7 @@ OBJECT_ENTRY(CLSID_InternetToolbar, CInternetToolbar)
|
||||||
OBJECT_ENTRY(CLSID_CRegTreeOptions, CRegTreeOptions)
|
OBJECT_ENTRY(CLSID_CRegTreeOptions, CRegTreeOptions)
|
||||||
OBJECT_ENTRY(CLSID_TaskbarList, CTaskbarList)
|
OBJECT_ENTRY(CLSID_TaskbarList, CTaskbarList)
|
||||||
OBJECT_ENTRY(CLSID_ExplorerBand, CExplorerBand)
|
OBJECT_ENTRY(CLSID_ExplorerBand, CExplorerBand)
|
||||||
|
OBJECT_ENTRY(CLSID_FileSearchBand, CSearchBar)
|
||||||
OBJECT_ENTRY(CLSID_ProgressDialog, CProgressDialog)
|
OBJECT_ENTRY(CLSID_ProgressDialog, CProgressDialog)
|
||||||
OBJECT_ENTRY(CLSID_ISFBand, CISFBand)
|
OBJECT_ENTRY(CLSID_ISFBand, CISFBand)
|
||||||
END_OBJECT_MAP()
|
END_OBJECT_MAP()
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#define USE_CUSTOM_BANDPROXY 1
|
#define USE_CUSTOM_BANDPROXY 1
|
||||||
#define USE_CUSTOM_BRANDBAND 1
|
#define USE_CUSTOM_BRANDBAND 1
|
||||||
#define USE_CUSTOM_EXPLORERBAND 1
|
#define USE_CUSTOM_EXPLORERBAND 1
|
||||||
|
#define USE_CUSTOM_SEARCHBAND 1
|
||||||
#define USE_CUSTOM_INTERNETTOOLBAR 1
|
#define USE_CUSTOM_INTERNETTOOLBAR 1
|
||||||
|
|
||||||
HRESULT CAddressBand_CreateInstance(REFIID riid, void **ppv);
|
HRESULT CAddressBand_CreateInstance(REFIID riid, void **ppv);
|
||||||
|
@ -14,6 +15,7 @@ HRESULT CAddressEditBox_CreateInstance(REFIID riid, void **ppv);
|
||||||
HRESULT CBandProxy_CreateInstance(REFIID riid, void **ppv);
|
HRESULT CBandProxy_CreateInstance(REFIID riid, void **ppv);
|
||||||
HRESULT CBrandBand_CreateInstance(REFIID riid, void **ppv);
|
HRESULT CBrandBand_CreateInstance(REFIID riid, void **ppv);
|
||||||
HRESULT CExplorerBand_CreateInstance(REFIID riid, LPVOID *ppv);
|
HRESULT CExplorerBand_CreateInstance(REFIID riid, LPVOID *ppv);
|
||||||
|
HRESULT CSearchBar_CreateInstance(REFIID riid, LPVOID *ppv);
|
||||||
HRESULT CInternetToolbar_CreateInstance(REFIID riid, void **ppv);
|
HRESULT CInternetToolbar_CreateInstance(REFIID riid, void **ppv);
|
||||||
HRESULT CMergedFolder_CreateInstance(REFIID riid, void **ppv);
|
HRESULT CMergedFolder_CreateInstance(REFIID riid, void **ppv);
|
||||||
HRESULT CMenuBand_CreateInstance(REFIID iid, LPVOID *ppv);
|
HRESULT CMenuBand_CreateInstance(REFIID iid, LPVOID *ppv);
|
||||||
|
|
|
@ -48,6 +48,7 @@ IDR_ACLISTISF REGISTRY "res/shellautocomplete.rgs"
|
||||||
IDR_ISFBAND REGISTRY "res/isfband.rgs"
|
IDR_ISFBAND REGISTRY "res/isfband.rgs"
|
||||||
IDR_ACLCUSTOMMRU REGISTRY "res/custommru.rgs"
|
IDR_ACLCUSTOMMRU REGISTRY "res/custommru.rgs"
|
||||||
IDR_TASKBARLIST REGISTRY "res/taskbarlist.rgs"
|
IDR_TASKBARLIST REGISTRY "res/taskbarlist.rgs"
|
||||||
|
IDR_FILESEARCHBAND REGISTRY "res/filesearchband.rgs"
|
||||||
|
|
||||||
#include <reactos/manifest_dll.rc>
|
#include <reactos/manifest_dll.rc>
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,7 @@
|
||||||
#include "shellbars/CBandSite.h"
|
#include "shellbars/CBandSite.h"
|
||||||
#include "shellbars/CBandSiteMenu.h"
|
#include "shellbars/CBandSiteMenu.h"
|
||||||
#include "shellbars/CISFBand.h"
|
#include "shellbars/CISFBand.h"
|
||||||
|
#include "shellfind/CSearchBar.h"
|
||||||
#include "brandband.h"
|
#include "brandband.h"
|
||||||
#include "internettoolbar.h"
|
#include "internettoolbar.h"
|
||||||
#include "commonbrowser.h"
|
#include "commonbrowser.h"
|
||||||
|
|
14
dll/win32/browseui/res/filesearchband.rgs
Normal file
14
dll/win32/browseui/res/filesearchband.rgs
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
HKCR
|
||||||
|
{
|
||||||
|
NoRemove CLSID
|
||||||
|
{
|
||||||
|
ForceRemove {C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1} = s 'File Search Explorer Band'
|
||||||
|
{
|
||||||
|
DefaultIcon = e '%%SystemRoot%%\System32\shell32.dll,-135'
|
||||||
|
InprocServer32 = s '%MODULE%'
|
||||||
|
{
|
||||||
|
val ThreadingModel = s 'Apartment'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -105,6 +105,7 @@
|
||||||
#define IDR_ISFBAND 143
|
#define IDR_ISFBAND 143
|
||||||
#define IDR_ACLCUSTOMMRU 144
|
#define IDR_ACLCUSTOMMRU 144
|
||||||
#define IDR_TASKBARLIST 145
|
#define IDR_TASKBARLIST 145
|
||||||
|
#define IDR_FILESEARCHBAND 146
|
||||||
|
|
||||||
#define IDS_SMALLICONS 12301
|
#define IDS_SMALLICONS 12301
|
||||||
#define IDS_LARGEICONS 12302
|
#define IDS_LARGEICONS 12302
|
||||||
|
@ -154,3 +155,18 @@
|
||||||
#define IDB_SHELL_BRANDBAND_SM_LO 245
|
#define IDB_SHELL_BRANDBAND_SM_LO 245
|
||||||
#define IDB_SHELL_BRANDBAND_MD_LO 246
|
#define IDB_SHELL_BRANDBAND_MD_LO 246
|
||||||
#define IDB_SHELL_BRANDBAND_LG_LO 247*/
|
#define IDB_SHELL_BRANDBAND_LG_LO 247*/
|
||||||
|
|
||||||
|
#define IDD_SEARCH_DLG 1000
|
||||||
|
#define IDC_SEARCH_LABEL 1001
|
||||||
|
#define IDC_SEARCH_FILENAME 1002
|
||||||
|
#define IDC_SEARCH_QUERY 1003
|
||||||
|
#define IDC_SEARCH_BUTTON 1004
|
||||||
|
#define IDC_SEARCH_STOP_BUTTON 1005
|
||||||
|
#define IDC_SEARCH_COMBOBOX 1006
|
||||||
|
#define IDS_SEARCHINVALID 4518
|
||||||
|
#define IDS_COL_NAME 8976
|
||||||
|
#define IDS_COL_LOCATION 8977
|
||||||
|
#define IDS_COL_RELEVANCE 8989
|
||||||
|
#define IDS_SEARCH_FILES_FOUND 9232
|
||||||
|
#define IDS_SEARCH_FOLDER 9234
|
||||||
|
#define IDS_SEARCH_OPEN_FOLDER 40960
|
||||||
|
|
|
@ -1234,6 +1234,13 @@ HRESULT CShellBrowser::ShowBand(const CLSID &classID, bool vertical)
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
}
|
}
|
||||||
|
else if (IsEqualCLSID(classID, CLSID_FileSearchBand))
|
||||||
|
{
|
||||||
|
TRACE("CLSID_FileSearchBand requested, building internal band.\n");
|
||||||
|
hResult = CSearchBar_CreateInstance(IID_PPV_ARG(IUnknown, &newBand));
|
||||||
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
|
return hResult;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TRACE("A different CLSID requested, using CoCreateInstance.\n");
|
TRACE("A different CLSID requested, using CoCreateInstance.\n");
|
||||||
|
@ -2010,25 +2017,12 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::Exec(const GUID *pguidCmdGroup, DWORD n
|
||||||
switch (nCmdID)
|
switch (nCmdID)
|
||||||
{
|
{
|
||||||
case 0x1c: //Toggle Search
|
case 0x1c: //Toggle Search
|
||||||
if (IsEqualCLSID(CLSID_SH_SearchBand, fCurrentVertBar) ||
|
|
||||||
IsEqualCLSID(CLSID_SearchBand, fCurrentVertBar) ||
|
|
||||||
IsEqualCLSID(CLSID_IE_SearchBand, fCurrentVertBar) ||
|
|
||||||
IsEqualCLSID(CLSID_FileSearchBand, fCurrentVertBar))
|
|
||||||
{
|
|
||||||
hResult = IUnknown_ShowDW(fClientBars[BIVerticalBaseBar].clientBar.p, FALSE);
|
|
||||||
memset(&fCurrentVertBar, 0, sizeof(fCurrentVertBar));
|
|
||||||
FireCommandStateChangeAll();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
OnSearch();
|
|
||||||
}
|
|
||||||
return S_OK;
|
|
||||||
case 0x1d: //Toggle History
|
case 0x1d: //Toggle History
|
||||||
case 0x1e: //Toggle Favorites
|
case 0x1e: //Toggle Favorites
|
||||||
case 0x23: //Toggle Folders
|
case 0x23: //Toggle Folders
|
||||||
const GUID* pclsid;
|
const GUID* pclsid;
|
||||||
if (nCmdID == 0x1d) pclsid = &CLSID_SH_HistBand;
|
if (nCmdID == 0x1c) pclsid = &CLSID_FileSearchBand;
|
||||||
|
else if (nCmdID == 0x1d) pclsid = &CLSID_SH_HistBand;
|
||||||
else if (nCmdID == 0x1e) pclsid = &CLSID_SH_FavBand;
|
else if (nCmdID == 0x1e) pclsid = &CLSID_SH_FavBand;
|
||||||
else pclsid = &CLSID_ExplorerBand;
|
else pclsid = &CLSID_ExplorerBand;
|
||||||
|
|
||||||
|
@ -3756,7 +3750,7 @@ LRESULT CShellBrowser::OnExplorerBar(WORD wNotifyCode, WORD wID, HWND hWndCtl, B
|
||||||
switch (wID)
|
switch (wID)
|
||||||
{
|
{
|
||||||
case IDM_EXPLORERBAR_SEARCH:
|
case IDM_EXPLORERBAR_SEARCH:
|
||||||
Exec(&CLSID_CommonButtons, 0x123, 1, NULL, NULL);
|
ShowBand(CLSID_FileSearchBand, true);
|
||||||
break;
|
break;
|
||||||
case IDM_EXPLORERBAR_FOLDERS:
|
case IDM_EXPLORERBAR_FOLDERS:
|
||||||
ShowBand(CLSID_ExplorerBand, true);
|
ShowBand(CLSID_ExplorerBand, true);
|
||||||
|
|
21
dll/win32/browseui/shellfind/CMakeLists.txt
Normal file
21
dll/win32/browseui/shellfind/CMakeLists.txt
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
PROJECT(SHELL)
|
||||||
|
|
||||||
|
set_cpp(WITH_RUNTIME)
|
||||||
|
|
||||||
|
add_definitions(-DUNICODE -D_UNICODE)
|
||||||
|
add_definitions(-D_ATL_NO_EXCEPTIONS)
|
||||||
|
|
||||||
|
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl)
|
||||||
|
|
||||||
|
list(APPEND SOURCE
|
||||||
|
CSearchBar.cpp
|
||||||
|
shellfind.h)
|
||||||
|
|
||||||
|
add_library(shellfind ${SOURCE})
|
||||||
|
|
||||||
|
if(NOT MSVC)
|
||||||
|
add_target_compile_flags(shellfind "-Wno-unused-but-set-variable")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_pch(shellfind shellfind.h SOURCE)
|
433
dll/win32/browseui/shellfind/CSearchBar.cpp
Normal file
433
dll/win32/browseui/shellfind/CSearchBar.cpp
Normal file
|
@ -0,0 +1,433 @@
|
||||||
|
/*
|
||||||
|
* ReactOS Explorer
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "CSearchBar.h"
|
||||||
|
#include <psdk/wingdi.h>
|
||||||
|
|
||||||
|
WINE_DEFAULT_DEBUG_CHANNEL(shellfind);
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
#undef UNIMPLEMENTED
|
||||||
|
|
||||||
|
#define UNIMPLEMENTED DbgPrint("%s is UNIMPLEMENTED!\n", __FUNCTION__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
CSearchBar::CSearchBar() :
|
||||||
|
pSite(NULL),
|
||||||
|
fVisible(FALSE),
|
||||||
|
bFocused(FALSE)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
CSearchBar::~CSearchBar()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSearchBar::InitializeSearchBar()
|
||||||
|
{
|
||||||
|
CreateWindowExW(0, WC_STATIC, L"Search by any or all of the criteria below.",
|
||||||
|
WS_CHILD | WS_VISIBLE,
|
||||||
|
10, 10, 200, 40,
|
||||||
|
m_hWnd, NULL,
|
||||||
|
_AtlBaseModule.GetModuleInstance(), NULL);
|
||||||
|
|
||||||
|
CreateWindowExW(0, WC_STATIC, L"A &word or phrase in the file:",
|
||||||
|
WS_CHILD | WS_VISIBLE,
|
||||||
|
10, 50, 500, 20,
|
||||||
|
m_hWnd, NULL,
|
||||||
|
_AtlBaseModule.GetModuleInstance(), NULL);
|
||||||
|
CreateWindowExW(WS_EX_CLIENTEDGE, WC_EDITW, NULL,
|
||||||
|
WS_BORDER | WS_CHILD | WS_VISIBLE,
|
||||||
|
10, 70, 100, 20,
|
||||||
|
m_hWnd, NULL,
|
||||||
|
_AtlBaseModule.GetModuleInstance(), NULL);
|
||||||
|
|
||||||
|
CreateWindowExW(0, WC_STATIC, L"&Look in:",
|
||||||
|
WS_CHILD | WS_VISIBLE,
|
||||||
|
10, 100, 500, 20,
|
||||||
|
m_hWnd, NULL,
|
||||||
|
_AtlBaseModule.GetModuleInstance(), NULL);
|
||||||
|
CreateWindowExW(WS_EX_CLIENTEDGE, WC_EDITW, NULL,
|
||||||
|
WS_BORDER | WS_CHILD | WS_VISIBLE,
|
||||||
|
10, 120, 100, 20,
|
||||||
|
m_hWnd, NULL,
|
||||||
|
_AtlBaseModule.GetModuleInstance(), NULL);
|
||||||
|
|
||||||
|
CreateWindowExW(0, WC_BUTTON, L"Sea&rch",
|
||||||
|
WS_BORDER | WS_CHILD | WS_VISIBLE,
|
||||||
|
10, 150, 100, 20,
|
||||||
|
m_hWnd, NULL,
|
||||||
|
_AtlBaseModule.GetModuleInstance(), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT CSearchBar::ExecuteCommand(CComPtr<IContextMenu>& menu, UINT nCmd)
|
||||||
|
{
|
||||||
|
CComPtr<IOleWindow> pBrowserOleWnd;
|
||||||
|
CMINVOKECOMMANDINFO cmi;
|
||||||
|
HWND browserWnd;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
hr = IUnknown_QueryService(pSite, SID_SShellBrowser, IID_PPV_ARG(IOleWindow, &pBrowserOleWnd));
|
||||||
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
|
return hr;
|
||||||
|
|
||||||
|
hr = pBrowserOleWnd->GetWindow(&browserWnd);
|
||||||
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
|
return hr;
|
||||||
|
|
||||||
|
ZeroMemory(&cmi, sizeof(cmi));
|
||||||
|
cmi.cbSize = sizeof(cmi);
|
||||||
|
cmi.lpVerb = MAKEINTRESOURCEA(nCmd);
|
||||||
|
cmi.hwnd = browserWnd;
|
||||||
|
if (GetKeyState(VK_SHIFT) & 0x8000)
|
||||||
|
cmi.fMask |= CMIC_MASK_SHIFT_DOWN;
|
||||||
|
if (GetKeyState(VK_CONTROL) & 0x8000)
|
||||||
|
cmi.fMask |= CMIC_MASK_CONTROL_DOWN;
|
||||||
|
|
||||||
|
return menu->InvokeCommand(&cmi);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// *** ATL event handlers ***
|
||||||
|
LRESULT CSearchBar::OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
|
||||||
|
{
|
||||||
|
bFocused = TRUE;
|
||||||
|
IUnknown_OnFocusChangeIS(pSite, reinterpret_cast<IUnknown*>(this), TRUE);
|
||||||
|
bHandled = FALSE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// *** IOleWindow methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::GetWindow(HWND *lphwnd)
|
||||||
|
{
|
||||||
|
if (!lphwnd)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
*lphwnd = m_hWnd;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::ContextSensitiveHelp(BOOL fEnterMode)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// *** IDockingWindow methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::CloseDW(DWORD dwReserved)
|
||||||
|
{
|
||||||
|
// We do nothing, we don't have anything to save yet
|
||||||
|
TRACE("CloseDW called\n");
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::ResizeBorderDW(const RECT *prcBorder, IUnknown *punkToolbarSite, BOOL fReserved)
|
||||||
|
{
|
||||||
|
/* Must return E_NOTIMPL according to MSDN */
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::ShowDW(BOOL fShow)
|
||||||
|
{
|
||||||
|
fVisible = fShow;
|
||||||
|
ShowWindow(fShow);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// *** IDeskBand methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::GetBandInfo(DWORD dwBandID, DWORD dwViewMode, DESKBANDINFO *pdbi)
|
||||||
|
{
|
||||||
|
if (!pdbi)
|
||||||
|
{
|
||||||
|
return E_INVALIDARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pdbi->dwMask & DBIM_MINSIZE)
|
||||||
|
{
|
||||||
|
pdbi->ptMinSize.x = 200;
|
||||||
|
pdbi->ptMinSize.y = 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pdbi->dwMask & DBIM_MAXSIZE)
|
||||||
|
{
|
||||||
|
pdbi->ptMaxSize.y = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pdbi->dwMask & DBIM_INTEGRAL)
|
||||||
|
{
|
||||||
|
pdbi->ptIntegral.y = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pdbi->dwMask & DBIM_ACTUAL)
|
||||||
|
{
|
||||||
|
pdbi->ptActual.x = 200;
|
||||||
|
pdbi->ptActual.y = 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pdbi->dwMask & DBIM_TITLE)
|
||||||
|
{
|
||||||
|
if (!LoadStringW(_AtlBaseModule.GetResourceInstance(), IDS_SEARCHLABEL, pdbi->wszTitle, _countof(pdbi->wszTitle)))
|
||||||
|
return HRESULT_FROM_WIN32(GetLastError());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pdbi->dwMask & DBIM_MODEFLAGS)
|
||||||
|
{
|
||||||
|
pdbi->dwModeFlags = DBIMF_NORMAL | DBIMF_VARIABLEHEIGHT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pdbi->dwMask & DBIM_BKCOLOR)
|
||||||
|
{
|
||||||
|
pdbi->dwMask &= ~DBIM_BKCOLOR;
|
||||||
|
}
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
LRESULT CALLBACK MyWindowProc(
|
||||||
|
_In_ HWND hwnd,
|
||||||
|
_In_ UINT uMsg,
|
||||||
|
_In_ WPARAM wParam,
|
||||||
|
_In_ LPARAM lParam
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// *** IObjectWithSite methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::SetSite(IUnknown *pUnkSite)
|
||||||
|
{
|
||||||
|
HRESULT hr;
|
||||||
|
HWND parentWnd;
|
||||||
|
|
||||||
|
if (pUnkSite == pSite)
|
||||||
|
return S_OK;
|
||||||
|
|
||||||
|
TRACE("SetSite called \n");
|
||||||
|
if (!pUnkSite)
|
||||||
|
{
|
||||||
|
DestroyWindow();
|
||||||
|
m_hWnd = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pUnkSite != pSite)
|
||||||
|
{
|
||||||
|
pSite = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!pUnkSite)
|
||||||
|
return S_OK;
|
||||||
|
|
||||||
|
hr = IUnknown_GetWindow(pUnkSite, &parentWnd);
|
||||||
|
if (!SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
ERR("Could not get parent's window ! Status: %08lx\n", hr);
|
||||||
|
return E_INVALIDARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
pSite = pUnkSite;
|
||||||
|
|
||||||
|
if (m_hWnd)
|
||||||
|
{
|
||||||
|
// Change its parent
|
||||||
|
SetParent(parentWnd);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CWindowImpl::Create(parentWnd);
|
||||||
|
|
||||||
|
InitializeSearchBar();
|
||||||
|
}
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::GetSite(REFIID riid, void **ppvSite)
|
||||||
|
{
|
||||||
|
if (!ppvSite)
|
||||||
|
return E_POINTER;
|
||||||
|
*ppvSite = pSite;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// *** IOleCommandTarget methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds [], OLECMDTEXT *pCmdText)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// *** IServiceProvider methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::QueryService(REFGUID guidService, REFIID riid, void **ppvObject)
|
||||||
|
{
|
||||||
|
/* FIXME: we probably want to handle more services here */
|
||||||
|
return IUnknown_QueryService(pSite, SID_SShellBrowser, riid, ppvObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// *** IInputObject methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::UIActivateIO(BOOL fActivate, LPMSG lpMsg)
|
||||||
|
{
|
||||||
|
if (fActivate)
|
||||||
|
{
|
||||||
|
//SetFocus();
|
||||||
|
SetActiveWindow();
|
||||||
|
}
|
||||||
|
// TODO: handle message
|
||||||
|
if(lpMsg)
|
||||||
|
{
|
||||||
|
TranslateMessage(lpMsg);
|
||||||
|
DispatchMessage(lpMsg);
|
||||||
|
}
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::HasFocusIO()
|
||||||
|
{
|
||||||
|
return bFocused ? S_OK : S_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::TranslateAcceleratorIO(LPMSG lpMsg)
|
||||||
|
{
|
||||||
|
if (lpMsg->hwnd == m_hWnd)
|
||||||
|
{
|
||||||
|
TranslateMessage(lpMsg);
|
||||||
|
DispatchMessage(lpMsg);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
return S_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// *** IPersist methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::GetClassID(CLSID *pClassID)
|
||||||
|
{
|
||||||
|
if (!pClassID)
|
||||||
|
return E_POINTER;
|
||||||
|
memcpy(pClassID, &CLSID_FileSearchBand, sizeof(CLSID));
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// *** IPersistStream methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::IsDirty()
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::Load(IStream *pStm)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::Save(IStream *pStm, BOOL fClearDirty)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::GetSizeMax(ULARGE_INTEGER *pcbSize)
|
||||||
|
{
|
||||||
|
// TODO: calculate max size
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// *** IWinEventHandler methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
|
||||||
|
{
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::IsWindowOwner(HWND hWnd)
|
||||||
|
{
|
||||||
|
return (hWnd == m_hWnd) ? S_OK : S_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// *** IBandNavigate methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::Select(long paramC)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// *** INamespaceProxy ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::GetNavigateTarget(long paramC, long param10, long param14)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::Invoke(long paramC)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::OnSelectionChanged(long paramC)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::RefreshFlags(long paramC, long param10, long param14)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::CacheItem(long paramC)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// *** IDispatch methods ***
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::GetTypeInfoCount(UINT *pctinfo)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE CSearchBar::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
|
||||||
|
{
|
||||||
|
TRACE("Unknown dispid requested: %08x\n", dispIdMember);
|
||||||
|
return E_INVALIDARG;
|
||||||
|
}
|
138
dll/win32/browseui/shellfind/CSearchBar.h
Normal file
138
dll/win32/browseui/shellfind/CSearchBar.h
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
/*
|
||||||
|
* ReactOS Explorer
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "shellfind.h"
|
||||||
|
|
||||||
|
class CSearchBar :
|
||||||
|
public CComCoClass<CSearchBar, &CLSID_FileSearchBand>,
|
||||||
|
public CComObjectRootEx<CComMultiThreadModelNoCS>,
|
||||||
|
public IDeskBand,
|
||||||
|
public IObjectWithSite,
|
||||||
|
public IInputObject,
|
||||||
|
public IPersistStream,
|
||||||
|
public IOleCommandTarget,
|
||||||
|
public IServiceProvider,
|
||||||
|
public IBandNavigate,
|
||||||
|
public IWinEventHandler,
|
||||||
|
public INamespaceProxy,
|
||||||
|
public IDispatch,
|
||||||
|
public CWindowImpl<CSearchBar>
|
||||||
|
{
|
||||||
|
|
||||||
|
private:
|
||||||
|
// *** BaseBarSite information ***
|
||||||
|
CComPtr<IUnknown> pSite;
|
||||||
|
BOOL fVisible;
|
||||||
|
BOOL bFocused;
|
||||||
|
|
||||||
|
void InitializeSearchBar();
|
||||||
|
HRESULT ExecuteCommand(CComPtr<IContextMenu>& menu, UINT nCmd);
|
||||||
|
|
||||||
|
// *** ATL event handlers ***
|
||||||
|
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
|
||||||
|
|
||||||
|
public:
|
||||||
|
CSearchBar();
|
||||||
|
virtual ~CSearchBar();
|
||||||
|
|
||||||
|
// *** IOleWindow methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *lphwnd);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
|
||||||
|
|
||||||
|
// *** IDockingWindow methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE CloseDW(DWORD dwReserved);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(const RECT *prcBorder, IUnknown *punkToolbarSite, BOOL fReserved);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE ShowDW(BOOL fShow);
|
||||||
|
|
||||||
|
// *** IDeskBand methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetBandInfo(DWORD dwBandID, DWORD dwViewMode, DESKBANDINFO *pdbi);
|
||||||
|
|
||||||
|
// *** IObjectWithSite methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, void **ppvSite);
|
||||||
|
|
||||||
|
// *** IOleCommandTarget methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds [], OLECMDTEXT *pCmdText);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
|
||||||
|
|
||||||
|
// *** IServiceProvider methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject);
|
||||||
|
|
||||||
|
// *** IInputObject methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE UIActivateIO(BOOL fActivate, LPMSG lpMsg);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE HasFocusIO();
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(LPMSG lpMsg);
|
||||||
|
|
||||||
|
// *** IPersist methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID);
|
||||||
|
|
||||||
|
// *** IPersistStream methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE IsDirty();
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE Load(IStream *pStm);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE Save(IStream *pStm, BOOL fClearDirty);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetSizeMax(ULARGE_INTEGER *pcbSize);
|
||||||
|
|
||||||
|
// *** IWinEventHandler methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE IsWindowOwner(HWND hWnd);
|
||||||
|
|
||||||
|
// *** IBandNavigate methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE Select(long paramC);
|
||||||
|
|
||||||
|
// *** INamespaceProxy ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetNavigateTarget(long paramC, long param10, long param14);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE Invoke(long paramC);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE OnSelectionChanged(long paramC);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE RefreshFlags(long paramC, long param10, long param14);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE CacheItem(long paramC);
|
||||||
|
|
||||||
|
// *** IDispatch methods ***
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
|
||||||
|
|
||||||
|
DECLARE_REGISTRY_RESOURCEID(IDR_EXPLORERBAND)
|
||||||
|
DECLARE_NOT_AGGREGATABLE(CSearchBar)
|
||||||
|
|
||||||
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
||||||
|
|
||||||
|
BEGIN_COM_MAP(CSearchBar)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_IBandNavigate, IBandNavigate)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_INamespaceProxy, INamespaceProxy)
|
||||||
|
COM_INTERFACE_ENTRY2_IID(IID_IOleWindow, IOleWindow, IDeskBand)
|
||||||
|
COM_INTERFACE_ENTRY2_IID(IID_IDockingWindow, IDockingWindow, IDeskBand)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_IDeskBand, IDeskBand)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject)
|
||||||
|
COM_INTERFACE_ENTRY2_IID(IID_IPersist, IPersist, IPersistStream)
|
||||||
|
COM_INTERFACE_ENTRY_IID(IID_IPersistStream, IPersistStream)
|
||||||
|
END_COM_MAP()
|
||||||
|
|
||||||
|
DECLARE_WND_CLASS_EX(_T("SrchCompExplorerBar"), 0, COLOR_WINDOW)
|
||||||
|
|
||||||
|
BEGIN_MSG_MAP(CSearchBar)
|
||||||
|
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
|
||||||
|
END_MSG_MAP()
|
||||||
|
};
|
29
dll/win32/browseui/shellfind/shellfind.h
Normal file
29
dll/win32/browseui/shellfind/shellfind.h
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#ifndef _SHELLFIND_PCH_
|
||||||
|
#define _SHELLFIND_PCH_
|
||||||
|
|
||||||
|
#define WIN32_NO_STATUS
|
||||||
|
#define _INC_WINDOWS
|
||||||
|
#define COM_NO_WINDOWS_H
|
||||||
|
|
||||||
|
#include <windef.h>
|
||||||
|
#include <winbase.h>
|
||||||
|
#include <shlobj.h>
|
||||||
|
#include <shlobj_undoc.h>
|
||||||
|
#include <shlguid_undoc.h>
|
||||||
|
#include <shdeprecated.h>
|
||||||
|
#include <tchar.h>
|
||||||
|
#include <atlbase.h>
|
||||||
|
#include <atlcom.h>
|
||||||
|
#include <atlwin.h>
|
||||||
|
#include <atlsimpcoll.h>
|
||||||
|
#include <atlstr.h>
|
||||||
|
#include <shlwapi.h>
|
||||||
|
#include <shlwapi_undoc.h>
|
||||||
|
#include <undocshell.h>
|
||||||
|
#include <shellutils.h>
|
||||||
|
#include <strsafe.h>
|
||||||
|
#include <wine/debug.h>
|
||||||
|
|
||||||
|
#include "../resource.h"
|
||||||
|
|
||||||
|
#endif /* _SHELLFIND_PCH_ */
|
Loading…
Add table
Add a link
Reference in a new issue