////////////////////////////////////// // Imports // import "oaidl.idl"; ////////////////////////////////////// // Typedefs and enums // // // FSRM object ID // typedef GUID FSRM_OBJECT_ID; // // Quota flags // typedef enum _FsrmQuotaFlags { // Persistent flags FsrmQuotaFlags_Enforce = 0x00000100, FsrmQuotaFlags_Disable = 0x00000200, // Quota status flags FsrmQuotaFlags_StatusIncomplete = 0x00010000, FsrmQuotaFlags_StatusRebuilding = 0x00020000 } FsrmQuotaFlags; // // File screen flags // typedef enum _FsrmFileScreenFlags { // Persistent flags FsrmFileScreenFlags_Enforce = 0x00000001 } FsrmFileScreenFlags; // // General Collection // typedef enum _FsrmCollectionState { FsrmCollectionState_Fetching = 1, FsrmCollectionState_Committing = 2, FsrmCollectionState_Complete = 3, FsrmCollectionState_Cancelled = 4 } FsrmCollectionState; typedef enum _FsrmEnumOptions { FsrmEnumOptions_None = 0x00000000, FsrmEnumOptions_Asynchronous = 0x00000001, FsrmEnumOptions_CheckRecycleBin = 0x00000002, FsrmEnumOptions_IncludeClusterNodes = 0x00000004 } FsrmEnumOptions; typedef enum _FsrmCommitOptions { FsrmCommitOptions_None = 0x00000000, FsrmCommitOptions_Asynchronous = 0x00000001 } FsrmCommitOptions; typedef enum _FsrmTemplateApplyOptions { FsrmTemplateApplyOptions_ApplyToDerivedMatching = 1, FsrmTemplateApplyOptions_ApplyToDerivedAll = 2 } FsrmTemplateApplyOptions; // // General Action // typedef enum _FsrmActionType { FsrmActionType_Unknown = 0, FsrmActionType_EventLog = 1, FsrmActionType_Email = 2, FsrmActionType_Command = 3, FsrmActionType_Report = 4 } FsrmActionType; // // EventLog Action // typedef enum _FsrmEventType { FsrmEventType_Unknown = 0, FsrmEventType_Information = 1, FsrmEventType_Warning = 2, FsrmEventType_Error = 3 } FsrmEventType; // // Command Action // typedef enum _FsrmAccountType { FsrmAccountType_Unknown = 0, FsrmAccountType_NetworkService = 1, FsrmAccountType_LocalService = 2, FsrmAccountType_LocalSystem = 3, FsrmAccountType_InProc = 4, FsrmAccountType_External = 5 } FsrmAccountType; // // Storage Reports // typedef enum _FsrmReportType { FsrmReportType_Unknown = 0, FsrmReportType_LargeFiles = 1, FsrmReportType_FilesByType = 2, FsrmReportType_LeastRecentlyAccessed = 3, FsrmReportType_MostRecentlyAccessed = 4, FsrmReportType_QuotaUsage = 5, FsrmReportType_FilesByOwner = 6, FsrmReportType_ExportReport = 7, FsrmReportType_DuplicateFiles = 8, FsrmReportType_FileScreenAudit = 9, FsrmReportType_FilesByProperty = 10, FsrmReportType_AutomaticClassification = 11, FsrmReportType_Expiration = 12 } FsrmReportType; typedef enum _FsrmReportFormat { FsrmReportFormat_Unknown = 0, FsrmReportFormat_DHtml = 1, FsrmReportFormat_Html = 2, FsrmReportFormat_Txt = 3, FsrmReportFormat_Csv = 4, FsrmReportFormat_Xml = 5 } FsrmReportFormat; typedef enum _FsrmReportRunningStatus { FsrmReportRunningStatus_Unknown = 0, FsrmReportRunningStatus_NotRunning = 1, FsrmReportRunningStatus_Queued = 2, FsrmReportRunningStatus_Running = 3 } FsrmReportRunningStatus; typedef enum _FsrmReportGenerationContext { FsrmReportGenerationContext_Undefined = 1, FsrmReportGenerationContext_ScheduledReport = 2, FsrmReportGenerationContext_InteractiveReport = 3, FsrmReportGenerationContext_IncidentReport = 4 } FsrmReportGenerationContext; // // Report filtering definitions // ============================ // // Filter Name Description Valid Reports Valid Value Types // -------------- ---------------------- -------------------------- ------------------------------------------ // MinSize Minimum size Large Files uint64 or string representation // // MinAgeDays Minimum age in days Least Recently Accessed uint32 or string representation // File Screen Audit // // MaxAgeDays Maximum age in days Most Recently Accessed uint32 or string representation // // MinQuotaUsage Minimum % quota usage Quota Usage uint32 or string representation // // FileGroups File group names Files by Type SAFEARRAY of strings (file group names) // // Owners Owners Files by Owner SAFEARRAY of strings (names or SIDs) // File Screen Audit // // NamePattern File name pattern Large Files string (DOS file name pattern) // Files by Type // Least Recently Accessed // Most Recently Accessed // Files by Owner // Export Report // Duplicate Files // typedef enum _FsrmReportFilter { FsrmReportFilter_MinSize = 1, FsrmReportFilter_MinAgeDays = 2, FsrmReportFilter_MaxAgeDays = 3, FsrmReportFilter_MinQuotaUsage = 4, FsrmReportFilter_FileGroups = 5, FsrmReportFilter_Owners = 6, FsrmReportFilter_NamePattern = 7, FsrmReportFilter_Property = 8 } FsrmReportFilter; typedef enum _FsrmReportLimit { FsrmReportLimit_MaxFiles = 1, FsrmReportLimit_MaxFileGroups = 2, FsrmReportLimit_MaxOwners = 3, FsrmReportLimit_MaxFilesPerFileGroup = 4, FsrmReportLimit_MaxFilesPerOwner = 5, FsrmReportLimit_MaxFilesPerDuplGroup = 6, FsrmReportLimit_MaxDuplicateGroups = 7, FsrmReportLimit_MaxQuotas = 8, FsrmReportLimit_MaxFileScreenEvents = 9, FsrmReportLimit_MaxPropertyValues = 10, FsrmReportLimit_MaxFilesPerPropertyValue = 11 } FsrmReportLimit; // // Pipeline // typedef enum _FsrmPropertyDefinitionType { FsrmPropertyDefinitionType_Unknown = 0, FsrmPropertyDefinitionType_OrderedList = 1, FsrmPropertyDefinitionType_MultiChoiceList = 2, FsrmPropertyDefinitionType_String = 4, FsrmPropertyDefinitionType_MultiString = 5, FsrmPropertyDefinitionType_Int = 6, FsrmPropertyDefinitionType_Bool = 7, FsrmPropertyDefinitionType_Date = 8 } FsrmPropertyDefinitionType; typedef enum _FsrmRuleType { FsrmRuleType_Unknown = 0, FsrmRuleType_Classification = 1, FsrmRuleType_Generic = 2 } FsrmRuleType; typedef enum _FsrmRuleFlags { FsrmRuleFlags_Disabled = 0x00000100, FsrmRuleFlags_Invalid = 0x00001000 } FsrmRuleFlags; typedef enum _FsrmClassificationLoggingFlags { FsrmClassificationLoggingFlags_None = 0x00000000, FsrmClassificationLoggingFlags_ClassificationsInLogFile = 0x00000001, FsrmClassificationLoggingFlags_ErrorsInLogFile = 0x00000002, FsrmClassificationLoggingFlags_ClassificationsInSystemLog = 0x00000004, FsrmClassificationLoggingFlags_ErrorsInSystemLog = 0x00000008 } FsrmClassificationLoggingFlags; typedef enum _FsrmExecutionOption { FsrmExecutionOption_Unknown = 0, FsrmExecutionOption_EvaluateUnset = 1, // Apply as a default value. FsrmExecutionOption_ReEvaluate_ConsiderExistingValue = 2, // Apply value but consider default and existing values. FsrmExecutionOption_ReEvaluate_IgnoreExistingValue = 3 // Apply value but ignore default and existing values. } FsrmExecutionOption; typedef enum _FsrmStorageModuleCaps { FsrmStorageModuleCaps_Unknown = 0x00000000, FsrmStorageModuleCaps_CanGet = 0x00000001, FsrmStorageModuleCaps_CanSet = 0x00000002 } FsrmStorageModuleCaps; typedef enum _FsrmStorageModuleType { FsrmStorageModuleType_Unknown = 0, FsrmStorageModuleType_Cache = 1, FsrmStorageModuleType_InFile = 2, FsrmStorageModuleType_Database = 3 } FsrmStorageModuleType; typedef enum _FsrmPropertyBagFlags { FsrmPropertyBagFlags_UpdatedByClassifier = 0x00000001, // The properties in the property bag were updated by a classifier. FsrmPropertyBagFlags_FailedLoadingProperties = 0x00000002, // The properties in the property bag may only be partially classified because a failure occurred while loading properties from storage. FsrmPropertyBagFlags_FailedSavingProperties = 0x00000004, // The properties in the property bag failed to be saved by the storage module with the highest precedence. FsrmPropertyBagFlags_FailedClassifyingProperties = 0x00000008, // The properties in the property bag may only be partially classified because a failure occurred while classifying properties. } FsrmPropertyBagFlags; typedef enum _FsrmPropertyFlags { FsrmPropertyFlags_Orphaned = 0x00000001, // The property does not have a corresponding definition in FSRM. FsrmPropertyFlags_RetrievedFromCache = 0x00000002, // The property value came from the cache. FsrmPropertyFlags_RetrievedFromStorage = 0x00000004, // The property value came from a storage module (other than the cache). FsrmPropertyFlags_SetByClassifier = 0x00000008, // The property value came from a classifier. FsrmPropertyFlags_Deleted = 0x00000010, // The property was deleted by a ClearFileProperty call. FsrmPropertyFlags_Reclassified = 0x00000020, // The property value from storage was changed to a different value by a classifier. FsrmPropertyFlags_AggregationFailed = 0x00000040, // There were values from multiple sources but they could not be aggregated together. FsrmPropertyFlags_Existing = 0x00000080, // The property already exists in storage. FsrmPropertyFlags_FailedLoadingProperties = 0x00000100, // The property may only be partially classified because a failure occurred while loading properties from storage. FsrmPropertyFlags_FailedClassifyingProperties = 0x00000200, // The property may only be partially classified because a failure occurred while classifying properties. FsrmPropertyFlags_PropertySourceMask = FsrmPropertyFlags_RetrievedFromCache | FsrmPropertyFlags_RetrievedFromStorage | FsrmPropertyFlags_SetByClassifier } FsrmPropertyFlags; typedef enum _FsrmPipelineModuleType { FsrmPipelineModuleType_Unknown = 0, FsrmPipelineModuleType_Storage = 1, FsrmPipelineModuleType_Classifier = 2, } FsrmPipelineModuleType; typedef enum _FsrmGetFilePropertyOptions { FsrmGetFilePropertyOptions_None = 0x00000000, FsrmGetFilePropertyOptions_NoRuleEvaluation = 0x00000001 } FsrmGetFilePropertyOptions; typedef enum _FsrmFileManagementType { FsrmFileManagementType_Unknown = 0, FsrmFileManagementType_Expiration = 1, FsrmFileManagementType_Custom = 2 } FsrmFileManagementType; typedef enum _FsrmFileManagementLoggingFlags { FsrmFileManagementLoggingFlags_None = 0x00000000, FsrmFileManagementLoggingFlags_Error = 0x00000001, FsrmFileManagementLoggingFlags_Information = 0x00000002, FsrmFileManagementLoggingFlags_Audit = 0x00000004 } FsrmFileManagementLoggingFlags; typedef enum _FsrmPropertyConditionType { FsrmPropertyConditionType_Unknown = 0, FsrmPropertyConditionType_Equal = 1, FsrmPropertyConditionType_NotEqual = 2, FsrmPropertyConditionType_GreaterThan = 3, FsrmPropertyConditionType_LessThan = 4, FsrmPropertyConditionType_Contain = 5, FsrmPropertyConditionType_Exist = 6, FsrmPropertyConditionType_NotExist = 7, FsrmPropertyConditionType_StartWith = 8, FsrmPropertyConditionType_EndWith = 9, FsrmPropertyConditionType_ContainedIn = 10, FsrmPropertyConditionType_PrefixOf = 11, FsrmPropertyConditionType_SuffixOf = 12 } FsrmPropertyConditionType; // // Streaming interface constants // typedef enum _FsrmFileStreamingMode { FsrmFileStreamingMode_Unknown = 0x00000000, FsrmFileStreamingMode_Read = 0x00000001, // Gets a streaming interface for reading file content FsrmFileStreamingMode_Write = 0x00000002, // Gets a streaming interface for writing file content } FsrmFileStreamingMode; typedef enum _FsrmFileStreamingInterfaceType { FsrmFileStreamingInterfaceType_Unknown = 0x00000000, // Gets an ILockBytes interface FsrmFileStreamingInterfaceType_ILockBytes = 0x00000001, // Gets an ILockBytes interface FsrmFileStreamingInterfaceType_IStream = 0x00000002, // Gets an IStream interface } FsrmFileStreamingInterfaceType;