WindowsXP-SP1/admin/select/src/op.hxx
2020-09-30 16:53:49 +02:00

276 lines
6.2 KiB
C++

//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997 - 2000.
//
// File: op.hxx
//
// Contents: The object picker main class, contains member objects which
// perform all the work.
//
// Classes: CObjectPicker
//
// History: 06-01-2000 DavidMun Created
//
//---------------------------------------------------------------------------
#ifndef __OBJECT_PICKER_
#define __OBJECT_PICKER_
//+--------------------------------------------------------------------------
//
// Class: CObjectPicker (op)
//
// Purpose:
//
// History: 01-20-2000 davidmun Created
//
//---------------------------------------------------------------------------
class CObjectPicker: private CBitFlag
{
public:
// *** IUnknown methods ***
STDMETHOD(QueryInterface)(
REFIID riid,
LPVOID * ppv);
STDMETHOD_(ULONG,AddRef)();
STDMETHOD_(ULONG,Release)();
// *** IDsObjectPicker methods ***
// Sets scope, filter, etc. for use with next invocation of dialog
STDMETHOD(Initialize)(
PDSOP_INIT_INFO pInitInfo);
// Creates the modal DS Object Picker dialog.
STDMETHOD(InvokeDialog)(
HWND hwndParent,
IDataObject **ppdoSelections);
// *** IDsObjectPickerEx methods ***
STDMETHOD(InvokeDialogEx)(
HWND hwndParent,
ICustomizeDsBrowser *pCustomizer,
IDataObject **ppdoSelections);
// *** non-interface methods ***
CObjectPicker();
HRESULT
CloneForDnPicker(
const CObjectPicker &rop,
HWND hwndEmbeddingDlg);
~CObjectPicker();
BOOL
ProcessNames(
HWND hwndRichEdit,
const CEdsoGdiProvider *pEdsoGdiProvider,
BOOL fForceSingleSelect = FALSE) const;
//
// Accessor methods
//
HWND
GetParentHwnd() const
{
return m_hwndParent;
}
MACHINE_CONFIG
GetTargetComputerConfig() const
{
return m_mcTargetComputer;
}
const String &
GetTargetComputer() const
{
return m_strTargetComputer;
}
const String &
GetTargetDomainDc() const
{
return m_strTargetDomainDc;
}
const String &
GetTargetDomainDns() const
{
return m_strTargetDomainDns;
}
const String &
GetTargetForest() const
{
return m_strTargetForest;
}
BOOL
TargetComputerIsLocalComputer() const
{
return m_fTargetComputerIsLocal;
}
MACHINE_CONFIG
GetPreviousTargetComputerConfig() const
{
return m_mcPreviousTargetComputer;
}
const String &
GetPreviousTargetComputer() const
{
return m_strPreviousTargetComputer;
}
BOOL
PreviousTargetComputerIsLocalComputer() const
{
return m_fPreviousTargetComputerIsLocal;
}
ULONG
GetInitInfoOptions() const
{
return m_flInitInfoOptions;
}
//lint -save -e613
const CScopeManager &
GetScopeManager() const
{
ASSERT(_IsFlagSet(CDSOP_INIT_SUCCEEDED));
ASSERT(m_pScopeManager);
return *m_pScopeManager;
}
CQueryEngine &
GetQueryEngine() const
{
ASSERT(_IsFlagSet(CDSOP_INIT_SUCCEEDED));
ASSERT(m_pQueryEngine);
return *m_pQueryEngine;
}
const CFilterManager &
GetFilterManager() const
{
ASSERT(_IsFlagSet(CDSOP_INIT_SUCCEEDED));
ASSERT(m_pFilterManager);
return *m_pFilterManager;
}
const CAttributeManager &
GetAttributeManager() const
{
ASSERT(_IsFlagSet(CDSOP_INIT_SUCCEEDED));
ASSERT(m_pAttributeManager);
return *m_pAttributeManager;
}
const CAdminCustomizer &
GetDefaultCustomizer() const
{
ASSERT(_IsFlagSet(CDSOP_INIT_SUCCEEDED));
ASSERT(m_pAdminCustomizer);
return *m_pAdminCustomizer;
}
//lint -restore
const CRootDSE &
GetRootDSE() const
{
ASSERT(_IsFlagSet(CDSOP_INIT_SUCCEEDED));
return m_RootDSE;
}
ICustomizeDsBrowser *
GetExternalCustomizer() const
{
return m_pExternalCustomizer;
}
#ifdef QUERY_BUILDER
BOOL
IsQueryBuilderTabNonEmpty() const
{
ASSERT(m_pBaseDlg);
return m_pBaseDlg->IsQueryBuilderTabNonEmpty();
}
void
ClearQueryBuilderTab() const
{
ASSERT(m_pBaseDlg);
m_pBaseDlg->ClearQueryBuilderTab();
}
#endif
const vector<String> &
GetAttrToFetchVector() const
{
return m_vstrAttributesToFetch;
}
private:
#if (DBG == 1)
void
_DumpInitInfo(
PCDSOP_INIT_INFO pInitInfo);
#endif // (DBG == 1)
HRESULT
_InitializeMachineConfig();
ULONG m_cRefs;
CDllRef m_DllRef;
CRITICAL_SECTION m_csOleFreeThreading;
HWND m_hwndParent;
ICustomizeDsBrowser *m_pExternalCustomizer;
vector<String> m_vstrAttributesToFetch;
ULONG m_flInitInfoOptions;
String m_strTargetComputer;
BOOL m_fTargetComputerIsLocal;
String m_strTargetDomainDns;
String m_strTargetDomainDc;
String m_strTargetDomainFlat;
String m_strTargetForest;
MACHINE_CONFIG m_mcTargetComputer;
String m_strPreviousTargetComputer;
BOOL m_fPreviousTargetComputerIsLocal;
MACHINE_CONFIG m_mcPreviousTargetComputer;
CRootDSE m_RootDSE;
CScopeManager *m_pScopeManager;
CQueryEngine *m_pQueryEngine;
CFilterManager *m_pFilterManager;
CAttributeManager *m_pAttributeManager;
CAdminCustomizer *m_pAdminCustomizer;
CBaseDlg *m_pBaseDlg;
};
typedef RefCountPointer<CObjectPicker> RpCObjectPicker;
#endif // __OBJECT_PICKER_