Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

132 lines
4.9 KiB

/*--------------------------------------------------------------------------*
*
* Microsoft Windows
* Copyright (C) Microsoft Corporation, 1999 - 1999
*
* File: viewset.h
*
* Contents: Declares a class that holds the settings needed to re-create a view.
*
* History: 21-April-99 vivekj Created
* 03-Feb-2000 AnandhaG Added CResultViewType member
*
*--------------------------------------------------------------------------*/
#ifndef _VIEWSET_H_
#define _VIEWSET_H_
//+-------------------------------------------------------------------
//
// Class: CViewSettings
//
// Purpose: The view information for a node (bookmark).
// Stores result-view-type, taskpad-id and view mode.
//
// History: 01-27-1999 AnandhaG Created
// 02-08-2000 AnandhaG Modified to include new result-view-type
//
//--------------------------------------------------------------------
class CViewSettings : public CSerialObject, public CXMLObject
{
private:
typedef std::wstring wstring;
///////////////////////////////////////////////////////////////////////////////////////////
// View Types (These are meant for decoding MMC1.2 consoles, do not use them for MMC2.0. //
///////////////////////////////////////////////////////////////////////////////////////////
typedef enum _VIEW_TYPE
{
VIEW_TYPE_OCX = MMCLV_VIEWSTYLE_ICON - 3, // -3 custom ocx view
VIEW_TYPE_WEB = MMCLV_VIEWSTYLE_ICON - 2, // -2 custom web view
VIEW_TYPE_DEFAULT = MMCLV_VIEWSTYLE_ICON - 1, // -1
VIEW_TYPE_LARGE_ICON = MMCLV_VIEWSTYLE_ICON,
VIEW_TYPE_REPORT = MMCLV_VIEWSTYLE_REPORT,
VIEW_TYPE_SMALL_ICON = MMCLV_VIEWSTYLE_SMALLICON,
VIEW_TYPE_LIST = MMCLV_VIEWSTYLE_LIST,
VIEW_TYPE_FILTERED = MMCLV_VIEWSTYLE_FILTERED,
} VIEW_TYPE;
///////////////////////////////////////////////////////////////////////////////////////////
// CViewSetting Mask tells which members are valid. //
///////////////////////////////////////////////////////////////////////////////////////////
static const DWORD VIEWSET_MASK_NONE = 0x0000;
static const DWORD VIEWSET_MASK_VIEWMODE = 0x0001; // The ViewMode member is valid.
static const DWORD VIEWSET_MASK_RVTYPE = 0x0002; // The CResultViewType is valid.
static const DWORD VIEWSET_MASK_TASKPADID = 0x0004; // The taskpad id is valid.
protected:
virtual UINT GetVersion() { return 4;}
virtual HRESULT ReadSerialObject(IStream &stm, UINT nVersion);
public:
virtual void Persist(CPersistor &persistor);
DEFINE_XML_TYPE(XML_TAG_VIEW_SETTINGS);
public:
CViewSettings();
bool operator == (const CViewSettings& viewSettings);
bool operator != (const CViewSettings& viewSettings)
{
return (!operator==(viewSettings));
}
SC ScGetViewMode(ULONG& ulViewMode);
SC ScSetViewMode(const ULONG ulViewMode);
SC ScGetTaskpadID(GUID& guidTaskpad);
SC ScSetTaskpadID(const GUID& guidTaskpad);
SC ScGetResultViewType(CResultViewType& rvt);
SC ScSetResultViewType(const CResultViewType& rvt);
bool IsViewModeValid() const;
bool IsTaskpadIDValid() const { return (m_dwMask & VIEWSET_MASK_TASKPADID);}
bool IsResultViewTypeValid()const { return (m_dwMask & VIEWSET_MASK_RVTYPE);}
void SetResultViewTypeValid(bool bSet = true) { SetMask(VIEWSET_MASK_RVTYPE, bSet);}
void SetTaskpadIDValid(bool bSet = true) { SetMask(VIEWSET_MASK_TASKPADID, bSet);}
void SetViewModeValid(bool bSet = true) { SetMask(VIEWSET_MASK_VIEWMODE, bSet);}
bool operator<(const CViewSettings& viewSettings){ return (m_dwRank < viewSettings.m_dwRank);}
SC ScInitialize(bool bViewTypeValid,
const VIEW_TYPE& viewType,
const long lViewOptions,
const wstring& wstrViewName);
private:
void SetMask(DWORD dwMask, bool bSet = true)
{
if (bSet)
m_dwMask |= dwMask;
else
m_dwMask &=(~dwMask);
}
private:
CResultViewType m_RVType;
ULONG m_ulViewMode;
GUID m_guidTaskpad; // the guid of the taskpad, if any.
DWORD m_dwMask; // VIEWSET_MASK
// Book keeping members.
public:
DWORD GetUsageRank() const { return m_dwRank;}
void SetUsageRank(DWORD dw) { m_dwRank = dw;}
BOOL IsObjInvalid() const { return m_bInvalid;}
void SetObjInvalid(BOOL b = TRUE) { m_bInvalid = b;}
private:
// Needed for book keeping.
DWORD m_dwRank; // Usage rank.
BOOL m_bInvalid; // For garbage collection.
};
#endif _VIEWSET_H_