You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
360 lines
7.0 KiB
360 lines
7.0 KiB
//+--------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1996 - 1997.
|
|
//
|
|
// File: find.hxx
|
|
//
|
|
// Contents: Definitions of classes for the find event record feature.
|
|
//
|
|
// Classes: CFindInfo
|
|
// CFindDlg
|
|
//
|
|
// History: 3-19-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
#ifndef __FIND_HXX_
|
|
#define __FIND_HXX_
|
|
|
|
|
|
class CFindInfo;
|
|
|
|
|
|
//===========================================================================
|
|
//
|
|
// CFindDlg class
|
|
//
|
|
//===========================================================================
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Class: CFindDlg
|
|
//
|
|
// Purpose: Support a dialog specifying criteria for searching for a
|
|
// record.
|
|
//
|
|
// History: 3-19-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class CFindDlg: public CDlg
|
|
{
|
|
public:
|
|
|
|
CFindDlg();
|
|
|
|
VOID
|
|
SetParent(
|
|
CFindInfo *pfi);
|
|
|
|
~CFindDlg();
|
|
|
|
HRESULT
|
|
DoModelessDlg(
|
|
CSnapin *pSnapin);
|
|
|
|
HWND
|
|
GetDlgWindow();
|
|
|
|
protected:
|
|
|
|
//
|
|
// CDlg overrides
|
|
//
|
|
|
|
virtual VOID
|
|
_OnHelp(
|
|
UINT message,
|
|
WPARAM wParam,
|
|
LPARAM lParam);
|
|
|
|
virtual HRESULT
|
|
_OnInit(
|
|
BOOL *pfSetFocus);
|
|
|
|
virtual BOOL
|
|
_OnCommand(
|
|
WPARAM wParam,
|
|
LPARAM lParam);
|
|
|
|
virtual VOID
|
|
_OnDestroy();
|
|
|
|
//
|
|
// non-override members
|
|
//
|
|
|
|
VOID
|
|
_OnClear();
|
|
|
|
VOID
|
|
_OnNext();
|
|
|
|
private:
|
|
|
|
static DWORD WINAPI
|
|
_ThreadFunc(
|
|
LPVOID pvThis);
|
|
|
|
BOOL _fNonDescDirty;
|
|
BOOL _fDescDirty;
|
|
CFindInfo *_pfi; // back pointer to parent
|
|
IStream *_pstm; // unmarshal to get _prpa
|
|
IResultPrshtActions *_prpa;
|
|
};
|
|
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Member: CFindDlg::SetParent
|
|
//
|
|
// Synopsis: Set backpointer to parent (containing) object
|
|
//
|
|
// History: 4-22-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
inline VOID
|
|
CFindDlg::SetParent(
|
|
CFindInfo *pfi)
|
|
{
|
|
ASSERT(pfi);
|
|
_pfi = pfi;
|
|
}
|
|
|
|
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Member: CFindDlg::GetDlgWindow
|
|
//
|
|
// Synopsis: Return dialog window, or if none is open, NULL.
|
|
//
|
|
// History: 4-22-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
inline HWND
|
|
CFindDlg::GetDlgWindow()
|
|
{
|
|
return _hwnd;
|
|
}
|
|
|
|
|
|
//===========================================================================
|
|
//
|
|
// CFindInfo class
|
|
//
|
|
//===========================================================================
|
|
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Class: CFindInfo
|
|
//
|
|
// Purpose: Encapsulate information associated with a find dialog for
|
|
// a cloginfo/csnapin pair.
|
|
//
|
|
// History: 3-19-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class CFindInfo:
|
|
public CFindFilterBase,
|
|
public CDLink
|
|
{
|
|
public:
|
|
|
|
CFindInfo(
|
|
CSnapin *pSnapin,
|
|
CLogInfo *pli);
|
|
|
|
virtual
|
|
~CFindInfo();
|
|
|
|
virtual BOOL
|
|
Passes(
|
|
CFFProvider *pFFP);
|
|
|
|
VOID
|
|
Reset();
|
|
|
|
HWND
|
|
GetDlgWindow();
|
|
|
|
CLogInfo *
|
|
GetLogInfo();
|
|
|
|
DIRECTION
|
|
GetDirection();
|
|
|
|
VOID
|
|
SetDirection(
|
|
DIRECTION FindDirection);
|
|
|
|
LPCWSTR
|
|
GetDescription();
|
|
|
|
HRESULT
|
|
OnFind();
|
|
|
|
VOID
|
|
SetDescription(
|
|
LPWSTR pwszDescription);
|
|
|
|
VOID
|
|
Shutdown();
|
|
|
|
#if (DBG == 1)
|
|
VOID
|
|
Dump();
|
|
#endif // (DBG == 1)
|
|
|
|
//
|
|
// CDLink overrides
|
|
//
|
|
|
|
CFindInfo *
|
|
Next();
|
|
|
|
private:
|
|
|
|
CSnapin *_pSnapin; // backpointer to parent snapin
|
|
CLogInfo *_pli; // log to perform find on
|
|
CFindDlg _FindDlg; // manages modeless find dialog
|
|
LPWSTR _pwszDescription;
|
|
DIRECTION _FindDirection;
|
|
};
|
|
|
|
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Member: CFindInfo::GetDescription
|
|
//
|
|
// Synopsis: Access function for description
|
|
//
|
|
// History: 3-24-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
inline LPCWSTR
|
|
CFindInfo::GetDescription()
|
|
{
|
|
return _pwszDescription;
|
|
}
|
|
|
|
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Member: CFindInfo::GetDirection
|
|
//
|
|
// Synopsis: Access function for search direction
|
|
//
|
|
// History: 3-24-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
inline DIRECTION
|
|
CFindInfo::GetDirection()
|
|
{
|
|
return _FindDirection;
|
|
}
|
|
|
|
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Member: CFindInfo::GetDlgWindow
|
|
//
|
|
// Synopsis: Access func for dialog hwnd
|
|
//
|
|
// History: 3-21-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
inline HWND
|
|
CFindInfo::GetDlgWindow()
|
|
{
|
|
return _FindDlg.GetDlgWindow();
|
|
}
|
|
|
|
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Member: CFindInfo::GetLogInfo
|
|
//
|
|
// Synopsis: Access func for log info to which this applies
|
|
//
|
|
// History: 3-24-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
inline CLogInfo *
|
|
CFindInfo::GetLogInfo()
|
|
{
|
|
return _pli;
|
|
}
|
|
|
|
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Member: CFindInfo::SetDirection
|
|
//
|
|
// Synopsis: Access func for direction
|
|
//
|
|
// History: 3-25-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
inline VOID
|
|
CFindInfo::SetDirection(
|
|
DIRECTION FindDirection)
|
|
{
|
|
if (FindDirection == FORWARD)
|
|
{
|
|
_FindDirection = FindDirection;
|
|
}
|
|
else
|
|
{
|
|
_FindDirection = BACKWARD;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
//+--------------------------------------------------------------------------
|
|
//
|
|
// Member: CFindInfo::Next
|
|
//
|
|
// Synopsis: CDLink override to save typing.
|
|
//
|
|
// History: 3-21-1997 DavidMun Created
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
inline CFindInfo *
|
|
CFindInfo::Next()
|
|
{
|
|
return (CFindInfo *)CDLink::Next();
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif // __FIND_HXX_
|
|
|