Leaked source code of windows server 2003
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.
 
 
 
 
 
 

114 lines
2.9 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2002.
//
// File: FindDlgListCtrl.h
//
// Contents: Implementation for cert find dialog list control
//
//----------------------------------------------------------------------------
// FindDlgListCtrl.cpp : implementation file
//
#include "stdafx.h"
#include <winuser.h>
#include "certmgr.h"
#include "FindDlgListCtrl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFindDlgListCtrl
CFindDlgListCtrl::CFindDlgListCtrl() :
m_bSubclassed (false)
{
}
CFindDlgListCtrl::~CFindDlgListCtrl()
{
}
BEGIN_MESSAGE_MAP(CFindDlgListCtrl, CListCtrl)
//{{AFX_MSG_MAP(CFindDlgListCtrl)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFindDlgListCtrl message handlers
// Grab the Enter key. Let all others through
LRESULT OnMyGetDlgCode (HWND hWnd, WPARAM /*wParam*/, LPARAM lParam)
{
if ( hWnd )
{
MSG* pMsg = (MSG*)lParam;
if ( pMsg )
{
if ( ( WM_KEYDOWN == pMsg->message ) &&
( VK_RETURN == LOWORD (pMsg->wParam)) )
{
return DLGC_WANTALLKEYS;
}
}
}
return 0;
}
WNDPROC g_wpOrigEditProc = 0;
// Subclass procedure
LRESULT APIENTRY EditSubclassProc(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
if ( WM_GETDLGCODE == uMsg )
{
LRESULT lResult = OnMyGetDlgCode (hWnd, wParam, lParam);
if ( lResult )
return lResult; // otherwise, call the def proc
}
return ::CallWindowProc (g_wpOrigEditProc, hWnd, uMsg,
wParam, lParam);
}
void CFindDlgListCtrl::OnDestroy()
{
::SetWindowLongPtr (m_hWnd, GWLP_WNDPROC,
(LONG_PTR) g_wpOrigEditProc);
CListCtrl::OnDestroy();
}
// Subclass the edit control so that we can overload processing for
// WM_GETDLGCODE
// We want to trap this message in the edit control and request all codes when
// the Enter key is pressed and allow default processing at all other times.
LRESULT CFindDlgListCtrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if ( 0x1003 == message ) // I can't find a #define for this message
{
if ( m_hWnd && !m_bSubclassed )
{
// Subclass the edit control.
g_wpOrigEditProc = (WNDPROC) ::SetWindowLongPtr (m_hWnd,
GWLP_WNDPROC, reinterpret_cast <LONG_PTR>(EditSubclassProc));
m_bSubclassed = true;
}
}
return CListCtrl::WindowProc(message, wParam, lParam);
}