/*++ Copyright (c) 1998 Microsoft Corporation Module Name: FTMan File Name: FTManDef.h Abstract: Types and constants definitions for application FTMan Author: Cristian Teodorescu October 22 1998 Notes: Revision History: --*/ #if !defined(AFX_FTMANDEF_H_INCLUDED_) #define AFX_FTMANDEF_H_INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 ///////////////////////////////////////////////////////////////////////////// class CItemID; // Macros /* My exception handling macros */ #define MY_TRY try{ // Catch and do nothing #define MY_CATCH }catch(CException* e){ e->Delete(); } // Catch and throw the exception to the superior try-catch block #define MY_CATCH_AND_THROW }catch(CException* e){ throw; } // Catch and report the exception #define MY_CATCH_AND_REPORT }catch(CException* e){ e->ReportError(MB_ICONSTOP); e->Delete(); } // A catch macro to be used in dialog methods #define MY_CATCH_REPORT_AND_CANCEL }catch(CException* e){ e->ReportError(MB_ICONSTOP); e->Delete(); OnCancel(); } // A catch macro to be used in functions that return BOOL #define MY_CATCH_REPORT_AND_RETURN_FALSE }catch(CException* e){ e->ReportError(MB_ICONSTOP); e->Delete(); return FALSE; } // A catch macro to be used in functions that return handle or pointer #define MY_CATCH_REPORT_AND_RETURN_NULL }catch(CException* e){ e->ReportError(MB_ICONSTOP); e->Delete(); return NULL; } // Some macros above are used in set.h so I include set.h here after the macro definitions #include "Set.h" // Constants / Enums /* MainFrame timer's event id */ #define ID_TIMER_EVENT 2103 /* MainFrame timer's elapse ( in milliseconds ) */ #define TIMER_ELAPSE 3000 /* Images index in all image lists */ enum tagImageIndex { II_Root = 0, II_FTPartition, II_VolumeSet, II_StripeSet, II_MirrorSet, II_StripeSetWithParity, II_PhysicalPartition, II_FreeSpace, II_RootExpanded, // Exclamation marks on the images II_FTPartition_Warning, II_VolumeSet_Warning, II_StripeSet_Warning, II_MirrorSet_Warning, II_StripeSetWithParity_Warning, II_PhysicalPartition_Warning, // Red X's on the images II_FTPartition_Error, II_VolumeSet_Error, II_StripeSet_Error, II_MirrorSet_Error, II_StripeSetWithParity_Error, II_PhysicalPartition_Error, IMAGES_NUMBER }; /* Types of refreshments performed on tree and list view items every TIME_ELAPSE milliseconds. Used by CTreeView::RefreshOnTimer */ enum tagRefreshOnTimerFlags { ROTT_GotDriveLetterAndVolumeName= 0x01, // Volume's drive letter and volume name was found ROTT_EndInitialization = 0x02, // A stripe set with parity finished its initializing process ROTT_EndRegeneration = 0x04 // A mirror set or stripe set with parity finished the regeneration process }; // Types /* Type ITEM_TYPE - Defines all possible types of items that may appear in the tree view and the list view */ typedef enum tagItemType { IT_RootVolumes, IT_LogicalVolume, IT_PhysicalPartition, IT_RootFreeSpaces, IT_FreeSpace } ITEM_TYPE; /* Type PARTITION_TYPE - Defines all possible types of physical partitions */ typedef enum tagPartitionType { PT_Primary, // Primary partition PT_InExtendedPartition // Partition inside an extended partition } PARTITION_TYPE; /* Type FREE_SPACE_TYPE - Defines all possible types of free spaces */ typedef enum tagFreeSpaceType { FST_Primary, // Primary free space ( not in extended partitions ) FST_InExtendedPartition, // Free space inside an extended partition whose table is not empty FST_EmptyExtendedPartition // Empty extended partition } FREE_SPACE_TYPE; /* Type LV_COLUMNS - Defines the indexes of columns in the list view */ typedef enum tagLVColumns { LVC_Name = 0, LVC_Type, LVC_DiskNumber, LVC_Size, LVC_Offset, LVC_VolumeID, COLUMNS_NUMBER } LV_COLUMNS; /* Type LV_COLUMN_CONFIG - Defines the configuration of a list-view column */ typedef struct tagLVColumnConfig { LV_COLUMNS iSubItem; // The index of the subitem DWORD dwTitleID; // The ID of the resource string to be title of this column int nFormat; // Alignment WORD wWidthPercent; // The percent of the list-view width to be used by this column } LV_COLUMN_CONFIG, *PLV_COLUMN_CONFIG; /* Type CULONGSet - A set of ULONG elements. */ typedef CSet CULONGSet; /* Type CItemIDSet - A set of CItemID elements */ typedef CSet CItemIDSet; /* Type TREE_SNAPSHOT - Defines the current status of the tree-view. It is used when refreshing the tree */ typedef struct tagTreeSnapshot { CItemIDSet setExpandedItems; // All expanded items CItemIDSet setSelectedItems; // All selected items ( should be only one ) } TREE_SNAPSHOT, *PTREE_SNAPSHOT; /* Type LIST_SNAPSHOT - Defines the current status of the list-view. It is used when refreshing the list */ typedef struct tagListSnapshot { CItemIDSet setSelectedItems; // All selected items } LIST_SNAPSHOT, *PLIST_SNAPSHOT; #endif // !defined(AFX_FTMANDEF_H_INCLUDED_)