windows-nt/Source/XPSP1/NT/net/mmc/mprsnap/dlggen.cpp
2020-09-26 16:20:57 +08:00

158 lines
3.1 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1998
//
// File: dlggen.cpp
//
//--------------------------------------------------------------------------
// DlgGen.cpp : implementation file
//
#include "stdafx.h"
#include "DlgGen.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgGeneral dialog
CDlgGeneral::CDlgGeneral(CWnd* pParent /*=NULL*/)
: CQryDialog(CDlgGeneral::IDD, pParent)
{
Init();
}
void CDlgGeneral::Init()
{
//{{AFX_DATA_INIT(CDlgGeneral)
m_bRAS = FALSE;
m_bLANtoLAN = FALSE;
m_bDemandDial = FALSE;
//}}AFX_DATA_INIT
}
void CDlgGeneral::DoDataExchange(CDataExchange* pDX)
{
CQryDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgGeneral)
DDX_Check(pDX, IDC_QRY_CHECK_RAS, m_bRAS);
DDX_Check(pDX, IDC_QRY_CHECK_LANTOLAN, m_bLANtoLAN);
DDX_Check(pDX, IDC_QRY_CHECK_DEMANDDIAL, m_bDemandDial);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgGeneral, CQryDialog)
//{{AFX_MSG_MAP(CDlgGeneral)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgGeneral message handlers
// Query handle will call these functions through page proc
HRESULT CDlgGeneral::GetQueryParams(LPDSQUERYPARAMS* ppDsQueryParams)
{
HRESULT hr = S_OK;
UpdateData(TRUE);
CString filter;
CString subFilter;
try
{
filter = FILTER_PREFIX;
#if 0 // name field is removed
// Name Field
if(m_strName.GetLength() != 0)
{
subFilter += FILTER_PREFIX;
subFilter += ATTR_NAME_DN;
subFilter += _T("=");
subFilter += DNPREFIX_ROUTERID;
subFilter += m_strName;
subFilter += _T(",*");
subFilter += FILTER_POSTFIX;
}
#endif
if(m_bRAS)
{
subFilter += FILTER_PREFIX;
subFilter += ATTR_NAME_RRASATTRIBUTE;
subFilter += _T("=");
subFilter += ATTR_VAL_RAS;
subFilter += FILTER_POSTFIX;
}
if(m_bLANtoLAN)
{
subFilter += FILTER_PREFIX;
subFilter += ATTR_NAME_RRASATTRIBUTE;
subFilter += _T("=");
subFilter += ATTR_VAL_LANtoLAN;
subFilter += FILTER_POSTFIX;
}
if(m_bDemandDial)
{
subFilter += FILTER_PREFIX;
subFilter += ATTR_NAME_RRASATTRIBUTE;
subFilter += _T("=");
subFilter += ATTR_VAL_DEMANDDIAL;
subFilter += FILTER_POSTFIX;
}
if(subFilter.GetLength())
{
filter += _T("&");
filter += FILTER_PREFIX;
filter += ATTR_NAME_OBJECTCLASS;
filter += _T("=");
filter += ATTR_CLASS_RRASID;
filter += FILTER_POSTFIX;
filter += FILTER_PREFIX;
filter += _T("|");
filter += subFilter;
filter += FILTER_POSTFIX;
}
else
{
filter += ATTR_NAME_OBJECTCLASS;
filter += _T("=");
filter += ATTR_CLASS_RRASID;
}
filter += FILTER_POSTFIX;
USES_CONVERSION;
LPWSTR pQuery = T2W((LPTSTR)(LPCTSTR)filter);
hr = ::BuildQueryParams(ppDsQueryParams, pQuery);
}
catch(CMemoryException&)
{
hr = E_OUTOFMEMORY;
}
return hr;
}