|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation 1996-2001.
//
// File: ddwarn.h
//
// Contents: definition of CDlgDependencyWarn
//
//----------------------------------------------------------------------------
#if !defined(AFX_DDWARN_H__A405CAFD_800F_11D2_812B_00C04FD92F7B__INCLUDED_)
#define AFX_DDWARN_H__A405CAFD_800F_11D2_812B_00C04FD92F7B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "HelpDlg.h"
/////////////////////////////////////////////////////////////////////////////
// CDlgDependencyWarn dialog
//
// DPCHECK_OPERATOR tells how to compare the values.
//
enum DPCHECK_OPERATOR { DPCHECK_CONFIGURED = 1, // The dependent item must be configured.
// A default value must be specifide for the suggested item.
DPCHECK_NOTCONFIGURED, // The dependent item must be not configured,
// (only valid if the item itsel if not configured).
DPCHECK_LESSEQUAL, // The dependent item must be less than or equal.
DPCHECK_LESS, // The dependent item must be less than.
DPCHECK_GREATEREQUAL, // The dependent item must be greater than or eqaul.
DPCHECK_GREATER, // The dependent item must be greater.
//The next two case are special cases for retention Method
DPCHECK_RETENTION_METHOD_CONFIGURED, // The dependent item must be configured
DPCHECK_RETENTION_METHOD_NOTCONFIGURED, // The dependent item must not be configured
//The next two case are special cases for Retain *** Log for
DPCHECK_RETAIN_FOR_CONFIGURED, //The dependent item must be configured
DPCHECK_RETAIN_FOR_NOTCONFIGURED, //The dependent item must not be configured
};
//
// Flags for Depenecy checking.
// value is set to the items value.
// DPCHECK_VALIDFOR_NC - The test is valid for not configured [uDepends] items,
// by default checks are not valid for not configured items.
// DPCHECK_FOREVER - The item can be configured for FOREVER
// DPCHECK_NEVER - Treat configured to never (0) as not configured
// DPCHECK_INVERSE - Conversion is done by devision not multiplication.
// seconds - days would be an inverse where
//
#define DPCHECK_VALIDFOR_NC 0x10000000
#define DPCHECK_FOREVER 0x20000000
#define DPCHECK_INVERSE 0x40000000
#define DPCHECK_NEVER 0x80000000
//
// Used for creating a dependency list. For it to work correctly you must
// create the list so that
// uID - is a valid ID for the result item you are checking
// uDepends - is a valid ID for a result item in the same Folder.
// uDependencyCount - is the total dependencies for this item.
// uDefault - Only used if uOpFlags has DPCHECK_CONFIGURED
// uOpFlags - The test you want to perform and any other special flags.
// The low order word is the operation to perform.
// The high order word is used for special flags.
//
typedef struct _tag_DEPENDENCYLIST { UINT uID; // The ID we are checking
UINT uDepends; // The ID of the dependent item.
UINT uDependencyCount; // The number of sequential dependencies.
UINT uDefault; // The default value to use if there are no good values.
UINT uConversion; // Conversion number. The dependent values are converted
// items value.
UINT uOpFlags; // What kind of check to perfrom and other flags.
} DEPENDENCYLIST, *PDEPENDENCYLIST;
//
// Min max information for the dependency checks.
//
typedef struct _tag_DEPENDENCYMINMAX { UINT uID; // The ID of the item.
UINT uMin; // Minimum value.
UINT uMax; // Maximum value.
UINT uInc; // Increment value.
} DEPENDENCYMINMAX, *PDEPENDENCYMINMAX;
//
// This structure will be created by the Dependency check, The caller can
// enumerate through the dialog failed list to see which items failed.
// The [dwSuggested] member will be set to the value that should be set for the
// [pResult] item.
// GetFailedCount() - Returns number of items that failed the dependency check
// GetFailedInfo(int i) - Returns a pointer to this structure.
//
typedef struct _tag_DEPENDENCYFAILED { const DEPENDENCYLIST *pList; // The attributes of the item
CResult *pResult; // The CResult associated with this item.
LONG_PTR dwSuggested; // The suggested setting for this value.
}DEPENDENCYFAILED, *PDEPENDENCYFAILED;
///////////////////////////////////////////////////////////////////////////////////////////
// CDlgDependencyWarn Class declaration.
// Usage: First call CheckDendencies with some valid values. If CheckDendencies returns
// ERROR_MORE_DATA, then [m_aFailedList] has failed items. If you want to display the
// information to the user you can call DoModal() for the dialog box. DoModal will return
// IDOK if the user presses 'Auto set' or IDCANCEL if the user presses Cancel. You
// can then enumerate through the failed list through a for loop with the count of
// dependecies returned by GetFailedCount(), then get each failed item by calling
// GetFailedInfo() which returns a PDEPENDENCYFAILED item.
//
class CDlgDependencyWarn : public CHelpDialog { // Construction
public: CDlgDependencyWarn(CWnd* pParent = NULL); // standard constructor
virtual ~CDlgDependencyWarn(); // Destructor
DWORD InitializeDependencies( CSnapin *pSnapin, // The snapin who owns the CResult item.
CResult *pResult, // The CResult item we are checking
PDEPENDENCYLIST pList = NULL, int iCount = 0 );
DWORD CheckDependencies( DWORD dwValue // The value we are checking.
);
CResult * GetResultItem( CResult *pBase, // Need this to find the CFolder container
UINT uID // The ID to search for.
);
const PDEPENDENCYFAILED GetFailedInfo(int i) // Get a specifide failed dependcies.
{ return m_aFailedList[i]; }; int GetFailedCount() //
{ return (int)m_aFailedList.GetSize(); };
BOOL GetResultItemString( CString &str, int iCol, CResult *pResult, LONG_PTR dwValue = NULL ); // Dialog Data
//{{AFX_DATA(CDlgDependencyWarn)
enum { IDD = IDD_WARNING_DIALOG }; // NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDlgDependencyWarn)
protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CDlgDependencyWarn)
virtual BOOL OnInitDialog(); //}}AFX_MSG
DECLARE_MESSAGE_MAP()
WTL::CImageList m_imgList; CTypedPtrArray< CPtrArray, PDEPENDENCYFAILED> m_aFailedList; CTypedPtrArray< CPtrArray, CResult *> m_aDependsList; LONG_PTR m_dwValue; CResult *m_pResult; CSnapin *m_pSnapin; PDEPENDENCYLIST m_pList; int m_iCount;
public: static DEPENDENCYMINMAX m_aMinMaxInfo[]; static const DEPENDENCYMINMAX *LookupMinMaxInfo(UINT uID); };
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DDWARN_H__A405CAFD_800F_11D2_812B_00C04FD92F7B__INCLUDED_)
|