windows-nt/Source/XPSP1/NT/inetsrv/query/apps/srch/srchwnd.hxx
2020-09-26 16:20:57 +08:00

150 lines
4.6 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1999.
//
// File: srchwnd.hxx
//
// Contents:
//
// History: 15 Aug 1996 DLee Created
//
//--------------------------------------------------------------------------
#pragma once
enum { idQueryChild = 10, idListChild, idQueryTitle, idHeader };
enum { idStatusMsg = 0, idStatusRatio, idStatusReliability };
// One of these exists for each search window
class CSearchControl
{
public:
CSearchControl(HWND hwnd,WCHAR *pwcScope);
~CSearchControl();
LRESULT wmSysColorChange(WPARAM wParam,LPARAM lParam)
{
_view.SysColorChange();
_PassOnMsg( WM_SYSCOLORCHANGE, wParam, lParam );
return 0;
}
LRESULT EditSubclassEvent(HWND hwnd,UINT msg,
WPARAM wParam,LPARAM lParam);
LRESULT wmListNotify (HWND hwnd, WPARAM wParam,LPARAM lParam);
LRESULT wmAccelerator(WPARAM wParam,LPARAM lParam);
LRESULT wmSize(WPARAM wParam,LPARAM lParam);
LRESULT wmCommand(WPARAM wParam,LPARAM lParam);
LRESULT wmNewFont(WPARAM wParam,LPARAM lParam);
LRESULT wmDrawItem(WPARAM wParam,LPARAM lParam);
LRESULT wmAppClosing(WPARAM wParam,LPARAM lParam);
LRESULT wmMenuCommand(WPARAM wParam,LPARAM lParam);
LRESULT wmSetFocus(WPARAM wParam,LPARAM lParam);
LRESULT wmClose(WPARAM wParam,LPARAM lParam);
LRESULT wmNotification(WPARAM wParam,LPARAM lParam);
LRESULT wmInitMenu(WPARAM wParam,LPARAM lParam);
LRESULT wmMeasureItem(WPARAM wParam,LPARAM lParam);
LRESULT wmDisplaySubwindows(WPARAM wParam,LPARAM lParam);
LRESULT wmActivate( HWND hwnd, WPARAM wParam, LPARAM lParam );
LRESULT wmRealDrawItem( HWND hwnd, WPARAM wParam, LPARAM lParam );
LRESULT wmColumnNotify(WPARAM wParam,LPARAM lParam);
LRESULT wmContextMenu( HWND hwnd, WPARAM wParam, LPARAM lParam );
void InitPanes();
BOOL & Depth() { return _fDeep; }
WCHAR * Scope() { return _awcScope; }
WCHAR * Catalog() { return _awcCatalog; }
WCHAR * CatalogOrNull() { return ( 0 == _awcCatalog[0] ) ? 0 : _awcCatalog; }
WCHAR * Machine() { return _awcMachine; }
void SetupDisplayProps( WCHAR *pwcProps );
CColumnList & GetColumnList() { return _columns; }
IColumnMapper & GetColumnMapper() { return _xColumnMapper.GetReference(); }
private:
void _DoBrowse( enumViewFile eViewType );
void _UpdateStatusWindow( WCHAR const * pwcMsg,
WCHAR const * pwcReliability );
void _PassOnMsg( UINT msg, WPARAM wParam, LPARAM lParam )
{
if ( 0 != _hwndQuery )
SendMessage( _hwndQuery, msg, wParam, lParam );
if ( 0 != _hwndList )
SendMessage( _hwndList, msg, wParam, lParam );
if ( 0 != _hwndQueryTitle )
SendMessage( _hwndQueryTitle, msg, wParam, lParam );
if ( 0 != _hwndHeader )
SendMessage( _hwndHeader, msg, wParam, lParam );
}
void ResetTitle();
void _UpdateCount();
void _AddColumnHeadings();
//-------------------
// Windows data
HINSTANCE _hInst;
// various panes
HWND _hwndSearch;
HWND _hwndQuery;
HWND _hwndList;
HWND _hwndQueryTitle;
HWND _hwndHeader;
HWND _hLastToHaveFocus;
// Original windows procedures
WNDPROC _lpOrgEditProc;
WCHAR _awcScope[MAX_PATH];
WCHAR _awcCatalog[MAX_PATH];
WCHAR _awcMachine[SRCH_COMPUTERNAME_LENGTH + 1];
XGrowable<WCHAR> _xCatList;
LCID _lcid; // locale id for query
BOOL _fDeep;
XInterface<IColumnMapper> _xColumnMapper;
CColumnList _columns;
CSortList _sort;
CSearchView _view; // the view
CSearchQuery* _pSearch; // the model
};
struct SStatusDlg
{
void SetCaption();
void Update();
SStatusDlg( CSearchControl & ctrl, HWND hdlg ) : _hdlg( hdlg )
{
wcscpy( _awcScope, ctrl.Scope() );
wcscpy( _awcCatalog, ctrl.Catalog() );
wcscpy( _awcMachine, ctrl.Machine() );
}
WCHAR * _Scope() { return _awcScope; }
WCHAR * _Catalog() { return _awcCatalog; }
WCHAR * _CatalogOrNull() { return ( 0 == _awcCatalog[0] ) ? 0 : _awcCatalog; }
WCHAR * _Machine() { return _awcMachine; }
WCHAR _awcScope[MAX_PATH];
WCHAR _awcCatalog[MAX_PATH];
WCHAR _awcMachine[SRCH_COMPUTERNAME_LENGTH + 1];
HWND _hdlg;
};