Rewrite FSRM-API headers fsrm.h and fsrmenums.h as IDL.


git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6550 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index ed4ba5e..62dab90 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -75,6 +75,8 @@
   include/downloadmgr.idl \
   include/dxva2api.idl \
   include/endpointvolume.idl \
+  include/fsrm.idl \
+  include/fsrmenums.idl \
   include/fusion.idl \
   include/fwptypes.idl \
   include/hstring.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
index 00caf8d..683b02e 100644
--- a/mingw-w64-headers/Makefile.in
+++ b/mingw-w64-headers/Makefile.in
@@ -299,6 +299,8 @@
 @HAVE_WIDL_TRUE@  include/downloadmgr.idl \
 @HAVE_WIDL_TRUE@  include/dxva2api.idl \
 @HAVE_WIDL_TRUE@  include/endpointvolume.idl \
+@HAVE_WIDL_TRUE@  include/fsrm.idl \
+@HAVE_WIDL_TRUE@  include/fsrmenums.idl \
 @HAVE_WIDL_TRUE@  include/fusion.idl \
 @HAVE_WIDL_TRUE@  include/fwptypes.idl \
 @HAVE_WIDL_TRUE@  include/hstring.idl \
diff --git a/mingw-w64-headers/include/fsrm.h b/mingw-w64-headers/include/fsrm.h
index 4fc8663..d5abab4 100644
--- a/mingw-w64-headers/include/fsrm.h
+++ b/mingw-w64-headers/include/fsrm.h
@@ -1,403 +1,1020 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _INC_FSRM
-#define _INC_FSRM
-#if (_WIN32_WINNT >= 0x0600)
-#include <fsrmenums.h>
+/*** Autogenerated by WIDL 1.6 from fsrm.idl - Do not edit ***/
 
-#ifndef __IFsrmAction_FWD_DEFINED__
-#define __IFsrmAction_FWD_DEFINED__
-typedef struct IFsrmAction IFsrmAction;
-#endif /* __IFsrmAction_FWD_DEFINED__ */
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
 
-#ifndef __IFsrmActionCommand_FWD_DEFINED__
-#define __IFsrmActionCommand_FWD_DEFINED__
-typedef struct IFsrmActionCommand IFsrmActionCommand;
-#endif /* __IFsrmActionCommand_FWD_DEFINED__ */
+#include <rpc.h>
+#include <rpcndr.h>
 
-#ifndef __IFsrmActionEmail_FWD_DEFINED__
-#define __IFsrmActionEmail_FWD_DEFINED__
-typedef struct IFsrmActionEmail IFsrmActionEmail;
-#endif /* __IFsrmActionEmail_FWD_DEFINED__ */
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
 
-#ifndef __IFsrmActionEmail2_FWD_DEFINED__
-#define __IFsrmActionEmail2_FWD_DEFINED__
-typedef struct IFsrmActionEmail2 IFsrmActionEmail2;
-#endif /* __IFsrmActionEmail2_FWD_DEFINED__ */
+#ifndef __fsrm_h__
+#define __fsrm_h__
 
-#ifndef __IFsrmActionEventLog_FWD_DEFINED__
-#define __IFsrmActionEventLog_FWD_DEFINED__
-typedef struct IFsrmActionEventLog IFsrmActionEventLog;
-#endif /* __IFsrmActionEventLog_FWD_DEFINED__ */
-
-#ifndef __IFsrmActionReport_FWD_DEFINED__
-#define __IFsrmActionReport_FWD_DEFINED__
-typedef struct IFsrmActionReport IFsrmActionReport;
-#endif /* __IFsrmActionReport_FWD_DEFINED__ */
-
-#ifndef __IFsrmAutoApplyQuota_FWD_DEFINED__
-#define __IFsrmAutoApplyQuota_FWD_DEFINED__
-typedef struct IFsrmAutoApplyQuota IFsrmAutoApplyQuota;
-#endif /* __IFsrmAutoApplyQuota_FWD_DEFINED__ */
-
-#ifndef __IFsrmClassificationManager_FWD_DEFINED__
-#define __IFsrmClassificationManager_FWD_DEFINED__
-typedef struct IFsrmClassificationManager IFsrmClassificationManager;
-#endif /* __IFsrmClassificationManager_FWD_DEFINED__ */
-
-#ifndef __IFsrmClassificationRule_FWD_DEFINED__
-#define __IFsrmClassificationRule_FWD_DEFINED__
-typedef struct IFsrmClassificationRule IFsrmClassificationRule;
-#endif /* __IFsrmClassificationRule_FWD_DEFINED__ */
-
-#ifndef __IFsrmClassifierModuleDefinition_FWD_DEFINED__
-#define __IFsrmClassifierModuleDefinition_FWD_DEFINED__
-typedef struct IFsrmClassifierModuleDefinition IFsrmClassifierModuleDefinition;
-#endif /* __IFsrmClassifierModuleDefinition_FWD_DEFINED__ */
-
-#ifndef __IFsrmClassifierModuleImplementation_FWD_DEFINED__
-#define __IFsrmClassifierModuleImplementation_FWD_DEFINED__
-typedef struct IFsrmClassifierModuleImplementation IFsrmClassifierModuleImplementation;
-#endif /* __IFsrmClassifierModuleImplementation_FWD_DEFINED__ */
-
-#ifndef __IFsrmCollection_FWD_DEFINED__
-#define __IFsrmCollection_FWD_DEFINED__
-typedef struct IFsrmCollection IFsrmCollection;
-#endif /* __IFsrmCollection_FWD_DEFINED__ */
+/* Forward declarations */
 
 #ifndef __IFsrmCommittableCollection_FWD_DEFINED__
 #define __IFsrmCommittableCollection_FWD_DEFINED__
-typedef struct IFsrmCommittableCollection IFsrmCommittableCollection;
-#endif /* __IFsrmCommittableCollection_FWD_DEFINED__ */
+typedef interface IFsrmCommittableCollection IFsrmCommittableCollection;
+#endif
+
+#ifndef __IFsrmAccessDeniedRemediationClient_FWD_DEFINED__
+#define __IFsrmAccessDeniedRemediationClient_FWD_DEFINED__
+typedef interface IFsrmAccessDeniedRemediationClient IFsrmAccessDeniedRemediationClient;
+#endif
+
+#ifndef __IFsrmAction_FWD_DEFINED__
+#define __IFsrmAction_FWD_DEFINED__
+typedef interface IFsrmAction IFsrmAction;
+#endif
+
+#ifndef __IFsrmActionCommand_FWD_DEFINED__
+#define __IFsrmActionCommand_FWD_DEFINED__
+typedef interface IFsrmActionCommand IFsrmActionCommand;
+#endif
+
+#ifndef __IFsrmActionEventLog_FWD_DEFINED__
+#define __IFsrmActionEventLog_FWD_DEFINED__
+typedef interface IFsrmActionEventLog IFsrmActionEventLog;
+#endif
+
+#ifndef __IFsrmActionReport_FWD_DEFINED__
+#define __IFsrmActionReport_FWD_DEFINED__
+typedef interface IFsrmActionReport IFsrmActionReport;
+#endif
+
+#ifndef __IFsrmCollection_FWD_DEFINED__
+#define __IFsrmCollection_FWD_DEFINED__
+typedef interface IFsrmCollection IFsrmCollection;
+#endif
 
 #ifndef __IFsrmDerivedObjectsResult_FWD_DEFINED__
 #define __IFsrmDerivedObjectsResult_FWD_DEFINED__
-typedef struct IFsrmDerivedObjectsResult IFsrmDerivedObjectsResult;
-#endif /* __IFsrmDerivedObjectsResult_FWD_DEFINED__ */
+typedef interface IFsrmDerivedObjectsResult IFsrmDerivedObjectsResult;
+#endif
 
 #ifndef __IFsrmExportImport_FWD_DEFINED__
 #define __IFsrmExportImport_FWD_DEFINED__
-typedef struct IFsrmExportImport IFsrmExportImport;
-#endif /* __IFsrmExportImport_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileGroup_FWD_DEFINED__
-#define __IFsrmFileGroup_FWD_DEFINED__
-typedef struct IFsrmFileGroup IFsrmFileGroup;
-#endif /* __IFsrmFileGroup_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileGroupImported_FWD_DEFINED__
-#define __IFsrmFileGroupImported_FWD_DEFINED__
-typedef struct IFsrmFileGroupImported IFsrmFileGroupImported;
-#endif /* __IFsrmFileGroupImported_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileGroupManager_FWD_DEFINED__
-#define __IFsrmFileGroupManager_FWD_DEFINED__
-typedef struct IFsrmFileGroupManager IFsrmFileGroupManager;
-#endif /* __IFsrmFileGroupManager_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileManagementJob_FWD_DEFINED__
-#define __IFsrmFileManagementJob_FWD_DEFINED__
-typedef struct IFsrmFileManagementJob IFsrmFileManagementJob;
-#endif /* __IFsrmFileManagementJob_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileManagementJobManager_FWD_DEFINED__
-#define __IFsrmFileManagementJobManager_FWD_DEFINED__
-typedef struct IFsrmFileManagementJobManager IFsrmFileManagementJobManager;
-#endif /* __IFsrmFileManagementJobManager_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileScreen_FWD_DEFINED__
-#define __IFsrmFileScreen_FWD_DEFINED__
-typedef struct IFsrmFileScreen IFsrmFileScreen;
-#endif /* __IFsrmFileScreen_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileScreenBase_FWD_DEFINED__
-#define __IFsrmFileScreenBase_FWD_DEFINED__
-typedef struct IFsrmFileScreenBase IFsrmFileScreenBase;
-#endif /* __IFsrmFileScreenBase_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileScreenException_FWD_DEFINED__
-#define __IFsrmFileScreenException_FWD_DEFINED__
-typedef struct IFsrmFileScreenException IFsrmFileScreenException;
-#endif /* __IFsrmFileScreenException_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileScreenManager_FWD_DEFINED__
-#define __IFsrmFileScreenManager_FWD_DEFINED__
-typedef struct IFsrmFileScreenManager IFsrmFileScreenManager;
-#endif /* __IFsrmFileScreenManager_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileScreenTemplate_FWD_DEFINED__
-#define __IFsrmFileScreenTemplate_FWD_DEFINED__
-typedef struct IFsrmFileScreenTemplate IFsrmFileScreenTemplate;
-#endif /* __IFsrmFileScreenTemplate_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileScreenTemplateImported_FWD_DEFINED__
-#define __IFsrmFileScreenTemplateImported_FWD_DEFINED__
-typedef struct IFsrmFileScreenTemplateImported IFsrmFileScreenTemplateImported;
-#endif /* __IFsrmFileScreenTemplateImported_FWD_DEFINED__ */
-
-#ifndef __IFsrmFileScreenTemplateManager_FWD_DEFINED__
-#define __IFsrmFileScreenTemplateManager_FWD_DEFINED__
-typedef struct IFsrmFileScreenTemplateManager IFsrmFileScreenTemplateManager;
-#endif /* __IFsrmFileScreenTemplateManager_FWD_DEFINED__ */
-
-#ifndef __IFsrmMutableCollection_FWD_DEFINED__
-#define __IFsrmMutableCollection_FWD_DEFINED__
-typedef struct IFsrmMutableCollection IFsrmMutableCollection;
-#endif /* __IFsrmMutableCollection_FWD_DEFINED__ */
+typedef interface IFsrmExportImport IFsrmExportImport;
+#endif
 
 #ifndef __IFsrmObject_FWD_DEFINED__
 #define __IFsrmObject_FWD_DEFINED__
-typedef struct IFsrmObject IFsrmObject;
-#endif /* __IFsrmObject_FWD_DEFINED__ */
+typedef interface IFsrmObject IFsrmObject;
+#endif
 
 #ifndef __IFsrmPathMapper_FWD_DEFINED__
 #define __IFsrmPathMapper_FWD_DEFINED__
-typedef struct IFsrmPathMapper IFsrmPathMapper;
-#endif /* __IFsrmPathMapper_FWD_DEFINED__ */
-
-#ifndef __IFsrmPipelineModuleConnector_FWD_DEFINED__
-#define __IFsrmPipelineModuleConnector_FWD_DEFINED__
-typedef struct IFsrmPipelineModuleConnector IFsrmPipelineModuleConnector;
-#endif /* __IFsrmPipelineModuleConnector_FWD_DEFINED__ */
-
-#ifndef __IFsrmPipelineModuleDefinition_FWD_DEFINED__
-#define __IFsrmPipelineModuleDefinition_FWD_DEFINED__
-typedef struct IFsrmPipelineModuleDefinition IFsrmPipelineModuleDefinition;
-#endif /* __IFsrmPipelineModuleDefinition_FWD_DEFINED__ */
-
-#ifndef __IFsrmPipelineModuleImplementation_FWD_DEFINED__
-#define __IFsrmPipelineModuleImplementation_FWD_DEFINED__
-typedef struct IFsrmPipelineModuleImplementation IFsrmPipelineModuleImplementation;
-#endif /* __IFsrmPipelineModuleImplementation_FWD_DEFINED__ */
-
-#ifndef __IFsrmProperty_FWD_DEFINED__
-#define __IFsrmProperty_FWD_DEFINED__
-typedef struct IFsrmProperty IFsrmProperty;
-#endif /* __IFsrmProperty_FWD_DEFINED__ */
-
-#ifndef __IFsrmPropertyBag_FWD_DEFINED__
-#define __IFsrmPropertyBag_FWD_DEFINED__
-typedef struct IFsrmPropertyBag IFsrmPropertyBag;
-#endif /* __IFsrmPropertyBag_FWD_DEFINED__ */
-
-#ifndef __IFsrmPropertyCondition_FWD_DEFINED__
-#define __IFsrmPropertyCondition_FWD_DEFINED__
-typedef struct IFsrmPropertyCondition IFsrmPropertyCondition;
-#endif /* __IFsrmPropertyCondition_FWD_DEFINED__ */
-
-#ifndef __IFsrmPropertyDefinition_FWD_DEFINED__
-#define __IFsrmPropertyDefinition_FWD_DEFINED__
-typedef struct IFsrmPropertyDefinition IFsrmPropertyDefinition;
-#endif /* __IFsrmPropertyDefinition_FWD_DEFINED__ */
-
-#ifndef __IFsrmQuota_FWD_DEFINED__
-#define __IFsrmQuota_FWD_DEFINED__
-typedef struct IFsrmQuota IFsrmQuota;
-#endif /* __IFsrmQuota_FWD_DEFINED__ */
-
-#ifndef __IFsrmQuotaBase_FWD_DEFINED__
-#define __IFsrmQuotaBase_FWD_DEFINED__
-typedef struct IFsrmQuotaBase IFsrmQuotaBase;
-#endif /* __IFsrmQuotaBase_FWD_DEFINED__ */
-
-#ifndef __IFsrmQuotaManager_FWD_DEFINED__
-#define __IFsrmQuotaManager_FWD_DEFINED__
-typedef struct IFsrmQuotaManager IFsrmQuotaManager;
-#endif /* __IFsrmQuotaManager_FWD_DEFINED__ */
-
-#ifndef __IFsrmQuotaManagerEx_FWD_DEFINED__
-#define __IFsrmQuotaManagerEx_FWD_DEFINED__
-typedef struct IFsrmQuotaManagerEx IFsrmQuotaManagerEx;
-#endif /* __IFsrmQuotaManagerEx_FWD_DEFINED__ */
-
-#ifndef __IFsrmQuotaObject_FWD_DEFINED__
-#define __IFsrmQuotaObject_FWD_DEFINED__
-typedef struct IFsrmQuotaObject IFsrmQuotaObject;
-#endif /* __IFsrmQuotaObject_FWD_DEFINED__ */
-
-#ifndef __IFsrmQuotaTemplate_FWD_DEFINED__
-#define __IFsrmQuotaTemplate_FWD_DEFINED__
-typedef struct IFsrmQuotaTemplate IFsrmQuotaTemplate;
-#endif /* __IFsrmQuotaTemplate_FWD_DEFINED__ */
-
-#ifndef __IFsrmQuotaTemplateImported_FWD_DEFINED__
-#define __IFsrmQuotaTemplateImported_FWD_DEFINED__
-typedef struct IFsrmQuotaTemplateImported IFsrmQuotaTemplateImported;
-#endif /* __IFsrmQuotaTemplateImported_FWD_DEFINED__ */
-
-#ifndef __IFsrmQuotaTemplateManager_FWD_DEFINED__
-#define __IFsrmQuotaTemplateManager_FWD_DEFINED__
-typedef struct IFsrmQuotaTemplateManager IFsrmQuotaTemplateManager;
-#endif /* __IFsrmQuotaTemplateManager_FWD_DEFINED__ */
-
-#ifndef __IFsrmReport_FWD_DEFINED__
-#define __IFsrmReport_FWD_DEFINED__
-typedef struct IFsrmReport IFsrmReport;
-#endif /* __IFsrmReport_FWD_DEFINED__ */
-
-#ifndef __IFsrmReportJob_FWD_DEFINED__
-#define __IFsrmReportJob_FWD_DEFINED__
-typedef struct IFsrmReportJob IFsrmReportJob;
-#endif /* __IFsrmReportJob_FWD_DEFINED__ */
-
-#ifndef __IFsrmReportManager_FWD_DEFINED__
-#define __IFsrmReportManager_FWD_DEFINED__
-typedef struct IFsrmReportManager IFsrmReportManager;
-#endif /* __IFsrmReportManager_FWD_DEFINED__ */
-
-#ifndef __IFsrmReportScheduler_FWD_DEFINED__
-#define __IFsrmReportScheduler_FWD_DEFINED__
-typedef struct IFsrmReportScheduler IFsrmReportScheduler;
-#endif /* __IFsrmReportScheduler_FWD_DEFINED__ */
-
-#ifndef __IFsrmRule_FWD_DEFINED__
-#define __IFsrmRule_FWD_DEFINED__
-typedef struct IFsrmRule IFsrmRule;
-#endif /* __IFsrmRule_FWD_DEFINED__ */
+typedef interface IFsrmPathMapper IFsrmPathMapper;
+#endif
 
 #ifndef __IFsrmSetting_FWD_DEFINED__
 #define __IFsrmSetting_FWD_DEFINED__
-typedef struct IFsrmSetting IFsrmSetting;
-#endif /* __IFsrmSetting_FWD_DEFINED__ */
+typedef interface IFsrmSetting IFsrmSetting;
+#endif
 
-#ifndef __IFsrmStorageModuleDefinition_FWD_DEFINED__
-#define __IFsrmStorageModuleDefinition_FWD_DEFINED__
-typedef struct IFsrmStorageModuleDefinition IFsrmStorageModuleDefinition;
-#endif /* __IFsrmStorageModuleDefinition_FWD_DEFINED__ */
+#ifndef __IFsrmActionEmail_FWD_DEFINED__
+#define __IFsrmActionEmail_FWD_DEFINED__
+typedef interface IFsrmActionEmail IFsrmActionEmail;
+#endif
 
-#ifndef __IFsrmStorageModuleImplementation_FWD_DEFINED__
-#define __IFsrmStorageModuleImplementation_FWD_DEFINED__
-typedef struct IFsrmStorageModuleImplementation IFsrmStorageModuleImplementation;
-#endif /* __IFsrmStorageModuleImplementation_FWD_DEFINED__ */
+#ifndef __IFsrmActionEmail2_FWD_DEFINED__
+#define __IFsrmActionEmail2_FWD_DEFINED__
+typedef interface IFsrmActionEmail2 IFsrmActionEmail2;
+#endif
+
+#ifndef __IFsrmMutableCollection_FWD_DEFINED__
+#define __IFsrmMutableCollection_FWD_DEFINED__
+typedef interface IFsrmMutableCollection IFsrmMutableCollection;
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <fsrmenums.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#define FsrmNeverModified  0x0000000000000000
-#define FsrmAlwaysModified 0xFFFFFFFFFFFFFFFF
+#include <winapifamily.h>
 
-typedef GUID FSRM_OBJECT_ID;
-typedef __LONG32 FSRM_QUOTA_THRESHOLD;
-
-typedef enum _FsrmGetFilePropertyOptions {
-  FsrmGetFilePropertyOptions_None               = 0x00000000,
-  FsrmGetFilePropertyOptions_NoRuleEvaluation   = 0x00000001 
-} FsrmGetFilePropertyOptions;
-
-#ifdef __cplusplus
-}
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __IFsrmObject_FWD_DEFINED__
+#define __IFsrmObject_FWD_DEFINED__
+typedef interface IFsrmObject IFsrmObject;
 #endif
 
-#undef  INTERFACE
-#define INTERFACE IFsrmAction
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#ifndef __IFsrmCollection_FWD_DEFINED__
+#define __IFsrmCollection_FWD_DEFINED__
+typedef interface IFsrmCollection IFsrmCollection;
 #endif
-DECLARE_INTERFACE_(IFsrmAction,IDispatch)
+
+#ifndef __IFsrmMutableCollection_FWD_DEFINED__
+#define __IFsrmMutableCollection_FWD_DEFINED__
+typedef interface IFsrmMutableCollection IFsrmMutableCollection;
+#endif
+
+#ifndef __IFsrmCommittableCollection_FWD_DEFINED__
+#define __IFsrmCommittableCollection_FWD_DEFINED__
+typedef interface IFsrmCommittableCollection IFsrmCommittableCollection;
+#endif
+
+#ifndef __IFsrmAction_FWD_DEFINED__
+#define __IFsrmAction_FWD_DEFINED__
+typedef interface IFsrmAction IFsrmAction;
+#endif
+
+#ifndef __IFsrmActionEmail_FWD_DEFINED__
+#define __IFsrmActionEmail_FWD_DEFINED__
+typedef interface IFsrmActionEmail IFsrmActionEmail;
+#endif
+
+#ifndef __IFsrmActionReport_FWD_DEFINED__
+#define __IFsrmActionReport_FWD_DEFINED__
+typedef interface IFsrmActionReport IFsrmActionReport;
+#endif
+
+#ifndef __IFsrmActionEventLog_FWD_DEFINED__
+#define __IFsrmActionEventLog_FWD_DEFINED__
+typedef interface IFsrmActionEventLog IFsrmActionEventLog;
+#endif
+
+#ifndef __IFsrmActionCommand_FWD_DEFINED__
+#define __IFsrmActionCommand_FWD_DEFINED__
+typedef interface IFsrmActionCommand IFsrmActionCommand;
+#endif
+
+#ifndef __IFsrmSetting_FWD_DEFINED__
+#define __IFsrmSetting_FWD_DEFINED__
+typedef interface IFsrmSetting IFsrmSetting;
+#endif
+
+#ifndef __IFsrmPathMapper_FWD_DEFINED__
+#define __IFsrmPathMapper_FWD_DEFINED__
+typedef interface IFsrmPathMapper IFsrmPathMapper;
+#endif
+
+#ifndef __IFsrmExportImport_FWD_DEFINED__
+#define __IFsrmExportImport_FWD_DEFINED__
+typedef interface IFsrmExportImport IFsrmExportImport;
+#endif
+
+#define FSRM_DISPID_FEATURE_MASK (0xf000000)
+
+#define FSRM_DISPID_INTERFACE_A_MASK (0xf00000)
+
+#define FSRM_DISPID_INTERFACE_B_MASK (0xf0000)
+
+#define FSRM_DISPID_INTERFACE_C_MASK (0xf000)
+
+#define FSRM_DISPID_INTERFACE_D_MASK (0xf00)
+
+#define FSRM_DISPID_INTERFACE_MASK (0xffff00)
+
+#define FSRM_DISPID_IS_PROPERTY (0x80)
+
+#define FSRM_DISPID_METHOD_NUM_MASK (0x7f)
+
+#define FSRM_DISPID_METHOD_MASK (0xff)
+
+#define FSRM_DISPID_FEATURE_GENERAL (0x1000000)
+
+#define FSRM_DISPID_FEATURE_QUOTA (0x2000000)
+
+#define FSRM_DISPID_FEATURE_FILESCREEN (0x3000000)
+
+#define FSRM_DISPID_FEATURE_REPORTS (0x4000000)
+
+#define FSRM_DISPID_FEATURE_CLASSIFICATION (0x5000000)
+
+#define FSRM_DISPID_FEATURE_PIPELINE (0x6000000)
+
+#define FSRM_DISPID_OBJECT (FSRM_DISPID_FEATURE_GENERAL | 0x100000)
+
+#define FSRM_DISPID_COLLECTION (FSRM_DISPID_FEATURE_GENERAL | 0x200000)
+
+#define FSRM_DISPID_COLLECTION_MUTABLE (FSRM_DISPID_COLLECTION | 0x10000)
+
+#define FSRM_DISPID_COLLECTION_COMMITTABLE (FSRM_DISPID_COLLECTION_MUTABLE | 0x1000)
+
+#define FSRM_DISPID_ACTION (FSRM_DISPID_FEATURE_GENERAL | 0x300000)
+
+#define FSRM_DISPID_ACTION_EMAIL (FSRM_DISPID_ACTION | 0x10000)
+
+#define FSRM_DISPID_ACTION_REPORT (FSRM_DISPID_ACTION | 0x20000)
+
+#define FSRM_DISPID_ACTION_EVENTLOG (FSRM_DISPID_ACTION | 0x30000)
+
+#define FSRM_DISPID_ACTION_COMMAND (FSRM_DISPID_ACTION | 0x40000)
+
+#define FSRM_DISPID_ACTION_EMAIL2 (FSRM_DISPID_ACTION | 0x50000)
+
+#define FSRM_DISPID_SETTING (FSRM_DISPID_FEATURE_GENERAL | 0x400000)
+
+#define FSRM_DISPID_PATHMAPPER (FSRM_DISPID_FEATURE_GENERAL | 0x500000)
+
+#define FSRM_DISPID_EXPORTIMPORT (FSRM_DISPID_FEATURE_GENERAL | 0x600000)
+
+#define FSRM_DISPID_DERIVEDOBJECTSRESULT (FSRM_DISPID_FEATURE_GENERAL | 0x700000)
+
+#define FSRM_DISPID_ADR (FSRM_DISPID_FEATURE_GENERAL | 0x800000)
+
+/*****************************************************************************
+ * IFsrmCommittableCollection interface
+ */
+#ifndef __IFsrmCommittableCollection_INTERFACE_DEFINED__
+#define __IFsrmCommittableCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmCommittableCollection, 0x96deb3b5, 0x8b91, 0x4a2a, 0x9d,0x93, 0x80,0xa3,0x5d,0x8a,0xa8,0x47);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("96deb3b5-8b91-4a2a-9d93-80a35d8aa847")
+IFsrmCommittableCollection : public IFsrmMutableCollection
 {
+    virtual HRESULT STDMETHODCALLTYPE Commit(
+        FsrmCommitOptions options,
+        IFsrmCollection **results) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmCommittableCollection, 0x96deb3b5, 0x8b91, 0x4a2a, 0x9d,0x93, 0x80,0xa3,0x5d,0x8a,0xa8,0x47)
+#endif
+#else
+typedef struct IFsrmCommittableCollectionVtbl {
     BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmCommittableCollection* This,
+        REFIID riid,
+        void **ppvObject);
 
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmCommittableCollection* This);
 
-    /* IFsrmAction methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_ActionType)(THIS_ FsrmActionType *actionType) PURE;
-    STDMETHOD_(HRESULT,put_RunLimitInterval)(THIS_ __LONG32 minutes) PURE;
-    STDMETHOD_(HRESULT,get_RunLimitInterval)(THIS_ __LONG32 *minutes) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmCommittableCollection* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmCommittableCollection* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmCommittableCollection* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmCommittableCollection* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmCommittableCollection* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IFsrmCommittableCollection* This,
+        IUnknown **unknown);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IFsrmCommittableCollection* This,
+        LONG index,
+        VARIANT *item);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        IFsrmCommittableCollection* This,
+        LONG *count);
+
+    HRESULT (STDMETHODCALLTYPE *get_State)(
+        IFsrmCommittableCollection* This,
+        FsrmCollectionState *state);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IFsrmCommittableCollection* This);
+
+    HRESULT (STDMETHODCALLTYPE *WaitForCompletion)(
+        IFsrmCommittableCollection* This,
+        LONG waitSeconds,
+        VARIANT_BOOL *completed);
+
+    HRESULT (STDMETHODCALLTYPE *GetById)(
+        IFsrmCommittableCollection* This,
+        FSRM_OBJECT_ID id,
+        VARIANT *entry);
+
+    /*** IFsrmMutableCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        IFsrmCommittableCollection* This,
+        VARIANT item);
+
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        IFsrmCommittableCollection* This,
+        LONG index);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveById)(
+        IFsrmCommittableCollection* This,
+        FSRM_OBJECT_ID id);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IFsrmCommittableCollection* This,
+        IFsrmMutableCollection **collection);
+
+    /*** IFsrmCommittableCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *Commit)(
+        IFsrmCommittableCollection* This,
+        FsrmCommitOptions options,
+        IFsrmCollection **results);
 
     END_INTERFACE
+} IFsrmCommittableCollectionVtbl;
+interface IFsrmCommittableCollection {
+    CONST_VTBL IFsrmCommittableCollectionVtbl* lpVtbl;
 };
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmCommittableCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmCommittableCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmCommittableCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmCommittableCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmCommittableCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmCommittableCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmCommittableCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmCollection methods ***/
+#define IFsrmCommittableCollection_get__NewEnum(This,unknown) (This)->lpVtbl->get__NewEnum(This,unknown)
+#define IFsrmCommittableCollection_get_Item(This,index,item) (This)->lpVtbl->get_Item(This,index,item)
+#define IFsrmCommittableCollection_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
+#define IFsrmCommittableCollection_get_State(This,state) (This)->lpVtbl->get_State(This,state)
+#define IFsrmCommittableCollection_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define IFsrmCommittableCollection_WaitForCompletion(This,waitSeconds,completed) (This)->lpVtbl->WaitForCompletion(This,waitSeconds,completed)
+#define IFsrmCommittableCollection_GetById(This,id,entry) (This)->lpVtbl->GetById(This,id,entry)
+/*** IFsrmMutableCollection methods ***/
+#define IFsrmCommittableCollection_Add(This,item) (This)->lpVtbl->Add(This,item)
+#define IFsrmCommittableCollection_Remove(This,index) (This)->lpVtbl->Remove(This,index)
+#define IFsrmCommittableCollection_RemoveById(This,id) (This)->lpVtbl->RemoveById(This,id)
+#define IFsrmCommittableCollection_Clone(This,collection) (This)->lpVtbl->Clone(This,collection)
+/*** IFsrmCommittableCollection methods ***/
+#define IFsrmCommittableCollection_Commit(This,options,results) (This)->lpVtbl->Commit(This,options,results)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmCommittableCollection_QueryInterface(IFsrmCommittableCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmCommittableCollection_AddRef(IFsrmCommittableCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmCommittableCollection_Release(IFsrmCommittableCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmCommittableCollection_GetTypeInfoCount(IFsrmCommittableCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_GetTypeInfo(IFsrmCommittableCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_GetIDsOfNames(IFsrmCommittableCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_Invoke(IFsrmCommittableCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmCollection methods ***/
+static FORCEINLINE HRESULT IFsrmCommittableCollection_get__NewEnum(IFsrmCommittableCollection* This,IUnknown **unknown) {
+    return This->lpVtbl->get__NewEnum(This,unknown);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_get_Item(IFsrmCommittableCollection* This,LONG index,VARIANT *item) {
+    return This->lpVtbl->get_Item(This,index,item);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_get_Count(IFsrmCommittableCollection* This,LONG *count) {
+    return This->lpVtbl->get_Count(This,count);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_get_State(IFsrmCommittableCollection* This,FsrmCollectionState *state) {
+    return This->lpVtbl->get_State(This,state);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_Cancel(IFsrmCommittableCollection* This) {
+    return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_WaitForCompletion(IFsrmCommittableCollection* This,LONG waitSeconds,VARIANT_BOOL *completed) {
+    return This->lpVtbl->WaitForCompletion(This,waitSeconds,completed);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_GetById(IFsrmCommittableCollection* This,FSRM_OBJECT_ID id,VARIANT *entry) {
+    return This->lpVtbl->GetById(This,id,entry);
+}
+/*** IFsrmMutableCollection methods ***/
+static FORCEINLINE HRESULT IFsrmCommittableCollection_Add(IFsrmCommittableCollection* This,VARIANT item) {
+    return This->lpVtbl->Add(This,item);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_Remove(IFsrmCommittableCollection* This,LONG index) {
+    return This->lpVtbl->Remove(This,index);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_RemoveById(IFsrmCommittableCollection* This,FSRM_OBJECT_ID id) {
+    return This->lpVtbl->RemoveById(This,id);
+}
+static FORCEINLINE HRESULT IFsrmCommittableCollection_Clone(IFsrmCommittableCollection* This,IFsrmMutableCollection **collection) {
+    return This->lpVtbl->Clone(This,collection);
+}
+/*** IFsrmCommittableCollection methods ***/
+static FORCEINLINE HRESULT IFsrmCommittableCollection_Commit(IFsrmCommittableCollection* This,FsrmCommitOptions options,IFsrmCollection **results) {
+    return This->lpVtbl->Commit(This,options,results);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmCommittableCollection_Commit_Proxy(
+    IFsrmCommittableCollection* This,
+    FsrmCommitOptions options,
+    IFsrmCollection **results);
+void __RPC_STUB IFsrmCommittableCollection_Commit_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmCommittableCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmAccessDeniedRemediationClient interface
+ */
+#ifndef __IFsrmAccessDeniedRemediationClient_INTERFACE_DEFINED__
+#define __IFsrmAccessDeniedRemediationClient_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmAccessDeniedRemediationClient, 0x40002314, 0x590b, 0x45a5, 0x8e,0x1b, 0x8c,0x05,0xda,0x52,0x7e,0x52);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("40002314-590b-45a5-8e1b-8c05da527e52")
+IFsrmAccessDeniedRemediationClient : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE Show(
+        ULONG_PTR parentWnd,
+        BSTR accessPath,
+        AdrClientErrorType errorType,
+        LONG flags,
+        BSTR windowTitle = L"",
+        BSTR windowMessage = L"",
+        LONG *result) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmAccessDeniedRemediationClient, 0x40002314, 0x590b, 0x45a5, 0x8e,0x1b, 0x8c,0x05,0xda,0x52,0x7e,0x52)
+#endif
+#else
+typedef struct IFsrmAccessDeniedRemediationClientVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmAccessDeniedRemediationClient* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmAccessDeniedRemediationClient* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmAccessDeniedRemediationClient* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmAccessDeniedRemediationClient* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmAccessDeniedRemediationClient* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmAccessDeniedRemediationClient* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmAccessDeniedRemediationClient* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmAccessDeniedRemediationClient methods ***/
+    HRESULT (STDMETHODCALLTYPE *Show)(
+        IFsrmAccessDeniedRemediationClient* This,
+        ULONG_PTR parentWnd,
+        BSTR accessPath,
+        AdrClientErrorType errorType,
+        LONG flags,
+        BSTR windowTitle,
+        BSTR windowMessage,
+        LONG *result);
+
+    END_INTERFACE
+} IFsrmAccessDeniedRemediationClientVtbl;
+interface IFsrmAccessDeniedRemediationClient {
+    CONST_VTBL IFsrmAccessDeniedRemediationClientVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmAccessDeniedRemediationClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmAccessDeniedRemediationClient_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmAccessDeniedRemediationClient_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmAccessDeniedRemediationClient_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmAccessDeniedRemediationClient_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmAccessDeniedRemediationClient_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmAccessDeniedRemediationClient_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmAccessDeniedRemediationClient methods ***/
+#define IFsrmAccessDeniedRemediationClient_Show(This,parentWnd,accessPath,errorType,flags,windowTitle,windowMessage,result) (This)->lpVtbl->Show(This,parentWnd,accessPath,errorType,flags,windowTitle,windowMessage,result)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmAccessDeniedRemediationClient_QueryInterface(IFsrmAccessDeniedRemediationClient* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmAccessDeniedRemediationClient_AddRef(IFsrmAccessDeniedRemediationClient* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmAccessDeniedRemediationClient_Release(IFsrmAccessDeniedRemediationClient* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmAccessDeniedRemediationClient_GetTypeInfoCount(IFsrmAccessDeniedRemediationClient* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmAccessDeniedRemediationClient_GetTypeInfo(IFsrmAccessDeniedRemediationClient* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmAccessDeniedRemediationClient_GetIDsOfNames(IFsrmAccessDeniedRemediationClient* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmAccessDeniedRemediationClient_Invoke(IFsrmAccessDeniedRemediationClient* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmAccessDeniedRemediationClient methods ***/
+static FORCEINLINE HRESULT IFsrmAccessDeniedRemediationClient_Show(IFsrmAccessDeniedRemediationClient* This,ULONG_PTR parentWnd,BSTR accessPath,AdrClientErrorType errorType,LONG flags,BSTR windowTitle,BSTR windowMessage,LONG *result) {
+    return This->lpVtbl->Show(This,parentWnd,accessPath,errorType,flags,windowTitle,windowMessage,result);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmAccessDeniedRemediationClient_Show_Proxy(
+    IFsrmAccessDeniedRemediationClient* This,
+    ULONG_PTR parentWnd,
+    BSTR accessPath,
+    AdrClientErrorType errorType,
+    LONG flags,
+    BSTR windowTitle,
+    BSTR windowMessage,
+    LONG *result);
+void __RPC_STUB IFsrmAccessDeniedRemediationClient_Show_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmAccessDeniedRemediationClient_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmAction interface
+ */
+#ifndef __IFsrmAction_INTERFACE_DEFINED__
+#define __IFsrmAction_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmAction, 0x6cd6408a, 0xae60, 0x463b, 0x9e,0xf1, 0xe1,0x17,0x53,0x4d,0x69,0xdc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6cd6408a-ae60-463b-9ef1-e117534d69dc")
+IFsrmAction : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Id(
+        FSRM_OBJECT_ID *id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ActionType(
+        FsrmActionType *actionType) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RunLimitInterval(
+        LONG *minutes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_RunLimitInterval(
+        LONG minutes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Delete(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmAction, 0x6cd6408a, 0xae60, 0x463b, 0x9e,0xf1, 0xe1,0x17,0x53,0x4d,0x69,0xdc)
+#endif
+#else
+typedef struct IFsrmActionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmAction* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmAction* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmAction* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmAction* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmAction* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmAction* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmAction* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmAction methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IFsrmAction* This,
+        FSRM_OBJECT_ID *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_ActionType)(
+        IFsrmAction* This,
+        FsrmActionType *actionType);
+
+    HRESULT (STDMETHODCALLTYPE *get_RunLimitInterval)(
+        IFsrmAction* This,
+        LONG *minutes);
+
+    HRESULT (STDMETHODCALLTYPE *put_RunLimitInterval)(
+        IFsrmAction* This,
+        LONG minutes);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IFsrmAction* This);
+
+    END_INTERFACE
+} IFsrmActionVtbl;
+interface IFsrmAction {
+    CONST_VTBL IFsrmActionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IFsrmAction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IFsrmAction_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IFsrmAction_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IFsrmAction_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IFsrmAction_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IFsrmAction_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IFsrmAction_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmAction methods ***/
 #define IFsrmAction_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
 #define IFsrmAction_get_ActionType(This,actionType) (This)->lpVtbl->get_ActionType(This,actionType)
-#define IFsrmAction_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
 #define IFsrmAction_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
-#define IFsrmAction_Delete() (This)->lpVtbl->Delete(This)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmActionCommand
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#define IFsrmAction_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
+#define IFsrmAction_Delete(This) (This)->lpVtbl->Delete(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmAction_QueryInterface(IFsrmAction* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmAction_AddRef(IFsrmAction* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmAction_Release(IFsrmAction* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmAction_GetTypeInfoCount(IFsrmAction* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmAction_GetTypeInfo(IFsrmAction* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmAction_GetIDsOfNames(IFsrmAction* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmAction_Invoke(IFsrmAction* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmAction methods ***/
+static FORCEINLINE HRESULT IFsrmAction_get_Id(IFsrmAction* This,FSRM_OBJECT_ID *id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IFsrmAction_get_ActionType(IFsrmAction* This,FsrmActionType *actionType) {
+    return This->lpVtbl->get_ActionType(This,actionType);
+}
+static FORCEINLINE HRESULT IFsrmAction_get_RunLimitInterval(IFsrmAction* This,LONG *minutes) {
+    return This->lpVtbl->get_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmAction_put_RunLimitInterval(IFsrmAction* This,LONG minutes) {
+    return This->lpVtbl->put_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmAction_Delete(IFsrmAction* This) {
+    return This->lpVtbl->Delete(This);
+}
 #endif
-DECLARE_INTERFACE_(IFsrmActionCommand,IFsrmAction)
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmAction_get_Id_Proxy(
+    IFsrmAction* This,
+    FSRM_OBJECT_ID *id);
+void __RPC_STUB IFsrmAction_get_Id_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmAction_get_ActionType_Proxy(
+    IFsrmAction* This,
+    FsrmActionType *actionType);
+void __RPC_STUB IFsrmAction_get_ActionType_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmAction_get_RunLimitInterval_Proxy(
+    IFsrmAction* This,
+    LONG *minutes);
+void __RPC_STUB IFsrmAction_get_RunLimitInterval_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmAction_put_RunLimitInterval_Proxy(
+    IFsrmAction* This,
+    LONG minutes);
+void __RPC_STUB IFsrmAction_put_RunLimitInterval_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmAction_Delete_Proxy(
+    IFsrmAction* This);
+void __RPC_STUB IFsrmAction_Delete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmAction_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmActionCommand interface
+ */
+#ifndef __IFsrmActionCommand_INTERFACE_DEFINED__
+#define __IFsrmActionCommand_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmActionCommand, 0x12937789, 0xe247, 0x4917, 0x9c,0x20, 0xf3,0xee,0x9c,0x7e,0xe7,0x83);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("12937789-e247-4917-9c20-f3ee9c7ee783")
+IFsrmActionCommand : public IFsrmAction
 {
+    virtual HRESULT STDMETHODCALLTYPE get_ExecutablePath(
+        BSTR *executablePath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ExecutablePath(
+        BSTR executablePath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Arguments(
+        BSTR *arguments) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Arguments(
+        BSTR arguments) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Account(
+        FsrmAccountType *account) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Account(
+        FsrmAccountType account) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_WorkingDirectory(
+        BSTR *workingDirectory) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_WorkingDirectory(
+        BSTR workingDirectory) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MonitorCommand(
+        VARIANT_BOOL *monitorCommand) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MonitorCommand(
+        VARIANT_BOOL monitorCommand) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_KillTimeOut(
+        LONG *minutes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_KillTimeOut(
+        LONG minutes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_LogResult(
+        VARIANT_BOOL *logResults) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_LogResult(
+        VARIANT_BOOL logResults) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmActionCommand, 0x12937789, 0xe247, 0x4917, 0x9c,0x20, 0xf3,0xee,0x9c,0x7e,0xe7,0x83)
+#endif
+#else
+typedef struct IFsrmActionCommandVtbl {
     BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmActionCommand* This,
+        REFIID riid,
+        void **ppvObject);
 
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmActionCommand* This);
 
-    /* IFsrmAction methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_ActionType)(THIS_ FsrmActionType *actionType) PURE;
-    STDMETHOD_(HRESULT,put_RunLimitInterval)(THIS_ __LONG32 minutes) PURE;
-    STDMETHOD_(HRESULT,get_RunLimitInterval)(THIS_ __LONG32 *minutes) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmActionCommand* This);
 
-    /* IFsrmActionCommand methods */
-    STDMETHOD_(HRESULT,get_ExecutablePath)(THIS_ BSTR *executablePath) PURE;
-    STDMETHOD_(HRESULT,put_ExecutablePath)(THIS_ BSTR executablePath) PURE;
-    STDMETHOD_(HRESULT,get_Arguments)(THIS_ BSTR *arguments) PURE;
-    STDMETHOD_(HRESULT,put_Arguments)(THIS_ BSTR arguments) PURE;
-    STDMETHOD_(HRESULT,get_Account)(THIS_ FsrmAccountType *account) PURE;
-    STDMETHOD_(HRESULT,put_Account)(THIS_ FsrmAccountType account) PURE;
-    STDMETHOD_(HRESULT,get_WorkingDirectory)(THIS_ BSTR *workingDirectory) PURE;
-    STDMETHOD_(HRESULT,put_WorkingDirectory)(THIS_ BSTR workingDirectory) PURE;
-    STDMETHOD_(HRESULT,get_MonitorCommand)(THIS_ VARIANT_BOOL *monitorCommand) PURE;
-    STDMETHOD_(HRESULT,put_MonitorCommand)(THIS_ VARIANT_BOOL monitorCommand) PURE;
-    STDMETHOD_(HRESULT,get_KillTimeOut)(THIS_ __LONG32 *minutes) PURE;
-    STDMETHOD_(HRESULT,put_KillTimeOut)(THIS_ __LONG32 minutes) PURE;
-    STDMETHOD_(HRESULT,get_LogResult)(THIS_ VARIANT_BOOL *logResults) PURE;
-    STDMETHOD_(HRESULT,put_LogResult)(THIS_ VARIANT_BOOL logResults) PURE;
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmActionCommand* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmActionCommand* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmActionCommand* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmActionCommand* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmAction methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IFsrmActionCommand* This,
+        FSRM_OBJECT_ID *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_ActionType)(
+        IFsrmActionCommand* This,
+        FsrmActionType *actionType);
+
+    HRESULT (STDMETHODCALLTYPE *get_RunLimitInterval)(
+        IFsrmActionCommand* This,
+        LONG *minutes);
+
+    HRESULT (STDMETHODCALLTYPE *put_RunLimitInterval)(
+        IFsrmActionCommand* This,
+        LONG minutes);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IFsrmActionCommand* This);
+
+    /*** IFsrmActionCommand methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ExecutablePath)(
+        IFsrmActionCommand* This,
+        BSTR *executablePath);
+
+    HRESULT (STDMETHODCALLTYPE *put_ExecutablePath)(
+        IFsrmActionCommand* This,
+        BSTR executablePath);
+
+    HRESULT (STDMETHODCALLTYPE *get_Arguments)(
+        IFsrmActionCommand* This,
+        BSTR *arguments);
+
+    HRESULT (STDMETHODCALLTYPE *put_Arguments)(
+        IFsrmActionCommand* This,
+        BSTR arguments);
+
+    HRESULT (STDMETHODCALLTYPE *get_Account)(
+        IFsrmActionCommand* This,
+        FsrmAccountType *account);
+
+    HRESULT (STDMETHODCALLTYPE *put_Account)(
+        IFsrmActionCommand* This,
+        FsrmAccountType account);
+
+    HRESULT (STDMETHODCALLTYPE *get_WorkingDirectory)(
+        IFsrmActionCommand* This,
+        BSTR *workingDirectory);
+
+    HRESULT (STDMETHODCALLTYPE *put_WorkingDirectory)(
+        IFsrmActionCommand* This,
+        BSTR workingDirectory);
+
+    HRESULT (STDMETHODCALLTYPE *get_MonitorCommand)(
+        IFsrmActionCommand* This,
+        VARIANT_BOOL *monitorCommand);
+
+    HRESULT (STDMETHODCALLTYPE *put_MonitorCommand)(
+        IFsrmActionCommand* This,
+        VARIANT_BOOL monitorCommand);
+
+    HRESULT (STDMETHODCALLTYPE *get_KillTimeOut)(
+        IFsrmActionCommand* This,
+        LONG *minutes);
+
+    HRESULT (STDMETHODCALLTYPE *put_KillTimeOut)(
+        IFsrmActionCommand* This,
+        LONG minutes);
+
+    HRESULT (STDMETHODCALLTYPE *get_LogResult)(
+        IFsrmActionCommand* This,
+        VARIANT_BOOL *logResults);
+
+    HRESULT (STDMETHODCALLTYPE *put_LogResult)(
+        IFsrmActionCommand* This,
+        VARIANT_BOOL logResults);
 
     END_INTERFACE
+} IFsrmActionCommandVtbl;
+interface IFsrmActionCommand {
+    CONST_VTBL IFsrmActionCommandVtbl* lpVtbl;
 };
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IFsrmActionCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IFsrmActionCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IFsrmActionCommand_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IFsrmActionCommand_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IFsrmActionCommand_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IFsrmActionCommand_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IFsrmActionCommand_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmAction methods ***/
 #define IFsrmActionCommand_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
 #define IFsrmActionCommand_get_ActionType(This,actionType) (This)->lpVtbl->get_ActionType(This,actionType)
-#define IFsrmActionCommand_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
 #define IFsrmActionCommand_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
-#define IFsrmActionCommand_Delete() (This)->lpVtbl->Delete(This)
+#define IFsrmActionCommand_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
+#define IFsrmActionCommand_Delete(This) (This)->lpVtbl->Delete(This)
+/*** IFsrmActionCommand methods ***/
 #define IFsrmActionCommand_get_ExecutablePath(This,executablePath) (This)->lpVtbl->get_ExecutablePath(This,executablePath)
 #define IFsrmActionCommand_put_ExecutablePath(This,executablePath) (This)->lpVtbl->put_ExecutablePath(This,executablePath)
 #define IFsrmActionCommand_get_Arguments(This,arguments) (This)->lpVtbl->get_Arguments(This,arguments)
@@ -412,68 +1029,2256 @@
 #define IFsrmActionCommand_put_KillTimeOut(This,minutes) (This)->lpVtbl->put_KillTimeOut(This,minutes)
 #define IFsrmActionCommand_get_LogResult(This,logResults) (This)->lpVtbl->get_LogResult(This,logResults)
 #define IFsrmActionCommand_put_LogResult(This,logResults) (This)->lpVtbl->put_LogResult(This,logResults)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmActionEmail
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmActionCommand_QueryInterface(IFsrmActionCommand* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmActionCommand_AddRef(IFsrmActionCommand* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmActionCommand_Release(IFsrmActionCommand* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmActionCommand_GetTypeInfoCount(IFsrmActionCommand* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_GetTypeInfo(IFsrmActionCommand* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_GetIDsOfNames(IFsrmActionCommand* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_Invoke(IFsrmActionCommand* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmAction methods ***/
+static FORCEINLINE HRESULT IFsrmActionCommand_get_Id(IFsrmActionCommand* This,FSRM_OBJECT_ID *id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_get_ActionType(IFsrmActionCommand* This,FsrmActionType *actionType) {
+    return This->lpVtbl->get_ActionType(This,actionType);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_get_RunLimitInterval(IFsrmActionCommand* This,LONG *minutes) {
+    return This->lpVtbl->get_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_put_RunLimitInterval(IFsrmActionCommand* This,LONG minutes) {
+    return This->lpVtbl->put_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_Delete(IFsrmActionCommand* This) {
+    return This->lpVtbl->Delete(This);
+}
+/*** IFsrmActionCommand methods ***/
+static FORCEINLINE HRESULT IFsrmActionCommand_get_ExecutablePath(IFsrmActionCommand* This,BSTR *executablePath) {
+    return This->lpVtbl->get_ExecutablePath(This,executablePath);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_put_ExecutablePath(IFsrmActionCommand* This,BSTR executablePath) {
+    return This->lpVtbl->put_ExecutablePath(This,executablePath);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_get_Arguments(IFsrmActionCommand* This,BSTR *arguments) {
+    return This->lpVtbl->get_Arguments(This,arguments);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_put_Arguments(IFsrmActionCommand* This,BSTR arguments) {
+    return This->lpVtbl->put_Arguments(This,arguments);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_get_Account(IFsrmActionCommand* This,FsrmAccountType *account) {
+    return This->lpVtbl->get_Account(This,account);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_put_Account(IFsrmActionCommand* This,FsrmAccountType account) {
+    return This->lpVtbl->put_Account(This,account);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_get_WorkingDirectory(IFsrmActionCommand* This,BSTR *workingDirectory) {
+    return This->lpVtbl->get_WorkingDirectory(This,workingDirectory);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_put_WorkingDirectory(IFsrmActionCommand* This,BSTR workingDirectory) {
+    return This->lpVtbl->put_WorkingDirectory(This,workingDirectory);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_get_MonitorCommand(IFsrmActionCommand* This,VARIANT_BOOL *monitorCommand) {
+    return This->lpVtbl->get_MonitorCommand(This,monitorCommand);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_put_MonitorCommand(IFsrmActionCommand* This,VARIANT_BOOL monitorCommand) {
+    return This->lpVtbl->put_MonitorCommand(This,monitorCommand);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_get_KillTimeOut(IFsrmActionCommand* This,LONG *minutes) {
+    return This->lpVtbl->get_KillTimeOut(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_put_KillTimeOut(IFsrmActionCommand* This,LONG minutes) {
+    return This->lpVtbl->put_KillTimeOut(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_get_LogResult(IFsrmActionCommand* This,VARIANT_BOOL *logResults) {
+    return This->lpVtbl->get_LogResult(This,logResults);
+}
+static FORCEINLINE HRESULT IFsrmActionCommand_put_LogResult(IFsrmActionCommand* This,VARIANT_BOOL logResults) {
+    return This->lpVtbl->put_LogResult(This,logResults);
+}
 #endif
-DECLARE_INTERFACE_(IFsrmActionEmail,IFsrmAction)
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_get_ExecutablePath_Proxy(
+    IFsrmActionCommand* This,
+    BSTR *executablePath);
+void __RPC_STUB IFsrmActionCommand_get_ExecutablePath_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_put_ExecutablePath_Proxy(
+    IFsrmActionCommand* This,
+    BSTR executablePath);
+void __RPC_STUB IFsrmActionCommand_put_ExecutablePath_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_get_Arguments_Proxy(
+    IFsrmActionCommand* This,
+    BSTR *arguments);
+void __RPC_STUB IFsrmActionCommand_get_Arguments_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_put_Arguments_Proxy(
+    IFsrmActionCommand* This,
+    BSTR arguments);
+void __RPC_STUB IFsrmActionCommand_put_Arguments_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_get_Account_Proxy(
+    IFsrmActionCommand* This,
+    FsrmAccountType *account);
+void __RPC_STUB IFsrmActionCommand_get_Account_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_put_Account_Proxy(
+    IFsrmActionCommand* This,
+    FsrmAccountType account);
+void __RPC_STUB IFsrmActionCommand_put_Account_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_get_WorkingDirectory_Proxy(
+    IFsrmActionCommand* This,
+    BSTR *workingDirectory);
+void __RPC_STUB IFsrmActionCommand_get_WorkingDirectory_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_put_WorkingDirectory_Proxy(
+    IFsrmActionCommand* This,
+    BSTR workingDirectory);
+void __RPC_STUB IFsrmActionCommand_put_WorkingDirectory_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_get_MonitorCommand_Proxy(
+    IFsrmActionCommand* This,
+    VARIANT_BOOL *monitorCommand);
+void __RPC_STUB IFsrmActionCommand_get_MonitorCommand_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_put_MonitorCommand_Proxy(
+    IFsrmActionCommand* This,
+    VARIANT_BOOL monitorCommand);
+void __RPC_STUB IFsrmActionCommand_put_MonitorCommand_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_get_KillTimeOut_Proxy(
+    IFsrmActionCommand* This,
+    LONG *minutes);
+void __RPC_STUB IFsrmActionCommand_get_KillTimeOut_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_put_KillTimeOut_Proxy(
+    IFsrmActionCommand* This,
+    LONG minutes);
+void __RPC_STUB IFsrmActionCommand_put_KillTimeOut_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_get_LogResult_Proxy(
+    IFsrmActionCommand* This,
+    VARIANT_BOOL *logResults);
+void __RPC_STUB IFsrmActionCommand_get_LogResult_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionCommand_put_LogResult_Proxy(
+    IFsrmActionCommand* This,
+    VARIANT_BOOL logResults);
+void __RPC_STUB IFsrmActionCommand_put_LogResult_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmActionCommand_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmActionEventLog interface
+ */
+#ifndef __IFsrmActionEventLog_INTERFACE_DEFINED__
+#define __IFsrmActionEventLog_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmActionEventLog, 0x4c8f96c3, 0x5d94, 0x4f37, 0xa4,0xf4, 0xf5,0x6a,0xb4,0x63,0x54,0x6f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4c8f96c3-5d94-4f37-a4f4-f56ab463546f")
+IFsrmActionEventLog : public IFsrmAction
 {
+    virtual HRESULT STDMETHODCALLTYPE get_EventType(
+        FsrmEventType *eventType) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_EventType(
+        FsrmEventType eventType) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MessageText(
+        BSTR *messageText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MessageText(
+        BSTR messageText) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmActionEventLog, 0x4c8f96c3, 0x5d94, 0x4f37, 0xa4,0xf4, 0xf5,0x6a,0xb4,0x63,0x54,0x6f)
+#endif
+#else
+typedef struct IFsrmActionEventLogVtbl {
     BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmActionEventLog* This,
+        REFIID riid,
+        void **ppvObject);
 
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmActionEventLog* This);
 
-    /* IFsrmAction methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_ActionType)(THIS_ FsrmActionType *actionType) PURE;
-    STDMETHOD_(HRESULT,put_RunLimitInterval)(THIS_ __LONG32 minutes) PURE;
-    STDMETHOD_(HRESULT,get_RunLimitInterval)(THIS_ __LONG32 *minutes) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmActionEventLog* This);
 
-    /* IFsrmActionEmail methods */
-    STDMETHOD_(HRESULT,get_MailFrom)(THIS_ BSTR *mailFrom) PURE;
-    STDMETHOD_(HRESULT,put_MailFrom)(THIS_ BSTR mailFrom) PURE;
-    STDMETHOD_(HRESULT,get_MailReplyTo)(THIS_ BSTR *mailReplyTo) PURE;
-    STDMETHOD_(HRESULT,put_MailReplyTo)(THIS_ BSTR mailReplyTo) PURE;
-    STDMETHOD_(HRESULT,get_MailTo)(THIS_ BSTR *mailTo) PURE;
-    STDMETHOD_(HRESULT,put_MailTo)(THIS_ BSTR mailTo) PURE;
-    STDMETHOD_(HRESULT,get_MailCc)(THIS_ BSTR *mailCc) PURE;
-    STDMETHOD_(HRESULT,put_MailCc)(THIS_ BSTR mailCc) PURE;
-    STDMETHOD_(HRESULT,get_MailBcc)(THIS_ BSTR *mailBcc) PURE;
-    STDMETHOD_(HRESULT,put_MailBcc)(THIS_ BSTR mailBcc) PURE;
-    STDMETHOD_(HRESULT,get_MailSubject)(THIS_ BSTR *mailSubject) PURE;
-    STDMETHOD_(HRESULT,put_MailSubject)(THIS_ BSTR mailSubject) PURE;
-    STDMETHOD_(HRESULT,get_MessageText)(THIS_ BSTR *messageText) PURE;
-    STDMETHOD_(HRESULT,put_MessageText)(THIS_ BSTR messageText) PURE;
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmActionEventLog* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmActionEventLog* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmActionEventLog* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmActionEventLog* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmAction methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IFsrmActionEventLog* This,
+        FSRM_OBJECT_ID *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_ActionType)(
+        IFsrmActionEventLog* This,
+        FsrmActionType *actionType);
+
+    HRESULT (STDMETHODCALLTYPE *get_RunLimitInterval)(
+        IFsrmActionEventLog* This,
+        LONG *minutes);
+
+    HRESULT (STDMETHODCALLTYPE *put_RunLimitInterval)(
+        IFsrmActionEventLog* This,
+        LONG minutes);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IFsrmActionEventLog* This);
+
+    /*** IFsrmActionEventLog methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_EventType)(
+        IFsrmActionEventLog* This,
+        FsrmEventType *eventType);
+
+    HRESULT (STDMETHODCALLTYPE *put_EventType)(
+        IFsrmActionEventLog* This,
+        FsrmEventType eventType);
+
+    HRESULT (STDMETHODCALLTYPE *get_MessageText)(
+        IFsrmActionEventLog* This,
+        BSTR *messageText);
+
+    HRESULT (STDMETHODCALLTYPE *put_MessageText)(
+        IFsrmActionEventLog* This,
+        BSTR messageText);
 
     END_INTERFACE
+} IFsrmActionEventLogVtbl;
+interface IFsrmActionEventLog {
+    CONST_VTBL IFsrmActionEventLogVtbl* lpVtbl;
 };
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmActionEventLog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmActionEventLog_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmActionEventLog_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmActionEventLog_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmActionEventLog_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmActionEventLog_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmActionEventLog_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmAction methods ***/
+#define IFsrmActionEventLog_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
+#define IFsrmActionEventLog_get_ActionType(This,actionType) (This)->lpVtbl->get_ActionType(This,actionType)
+#define IFsrmActionEventLog_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
+#define IFsrmActionEventLog_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
+#define IFsrmActionEventLog_Delete(This) (This)->lpVtbl->Delete(This)
+/*** IFsrmActionEventLog methods ***/
+#define IFsrmActionEventLog_get_EventType(This,eventType) (This)->lpVtbl->get_EventType(This,eventType)
+#define IFsrmActionEventLog_put_EventType(This,eventType) (This)->lpVtbl->put_EventType(This,eventType)
+#define IFsrmActionEventLog_get_MessageText(This,messageText) (This)->lpVtbl->get_MessageText(This,messageText)
+#define IFsrmActionEventLog_put_MessageText(This,messageText) (This)->lpVtbl->put_MessageText(This,messageText)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmActionEventLog_QueryInterface(IFsrmActionEventLog* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmActionEventLog_AddRef(IFsrmActionEventLog* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmActionEventLog_Release(IFsrmActionEventLog* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmActionEventLog_GetTypeInfoCount(IFsrmActionEventLog* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_GetTypeInfo(IFsrmActionEventLog* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_GetIDsOfNames(IFsrmActionEventLog* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_Invoke(IFsrmActionEventLog* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmAction methods ***/
+static FORCEINLINE HRESULT IFsrmActionEventLog_get_Id(IFsrmActionEventLog* This,FSRM_OBJECT_ID *id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_get_ActionType(IFsrmActionEventLog* This,FsrmActionType *actionType) {
+    return This->lpVtbl->get_ActionType(This,actionType);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_get_RunLimitInterval(IFsrmActionEventLog* This,LONG *minutes) {
+    return This->lpVtbl->get_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_put_RunLimitInterval(IFsrmActionEventLog* This,LONG minutes) {
+    return This->lpVtbl->put_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_Delete(IFsrmActionEventLog* This) {
+    return This->lpVtbl->Delete(This);
+}
+/*** IFsrmActionEventLog methods ***/
+static FORCEINLINE HRESULT IFsrmActionEventLog_get_EventType(IFsrmActionEventLog* This,FsrmEventType *eventType) {
+    return This->lpVtbl->get_EventType(This,eventType);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_put_EventType(IFsrmActionEventLog* This,FsrmEventType eventType) {
+    return This->lpVtbl->put_EventType(This,eventType);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_get_MessageText(IFsrmActionEventLog* This,BSTR *messageText) {
+    return This->lpVtbl->get_MessageText(This,messageText);
+}
+static FORCEINLINE HRESULT IFsrmActionEventLog_put_MessageText(IFsrmActionEventLog* This,BSTR messageText) {
+    return This->lpVtbl->put_MessageText(This,messageText);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmActionEventLog_get_EventType_Proxy(
+    IFsrmActionEventLog* This,
+    FsrmEventType *eventType);
+void __RPC_STUB IFsrmActionEventLog_get_EventType_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEventLog_put_EventType_Proxy(
+    IFsrmActionEventLog* This,
+    FsrmEventType eventType);
+void __RPC_STUB IFsrmActionEventLog_put_EventType_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEventLog_get_MessageText_Proxy(
+    IFsrmActionEventLog* This,
+    BSTR *messageText);
+void __RPC_STUB IFsrmActionEventLog_get_MessageText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEventLog_put_MessageText_Proxy(
+    IFsrmActionEventLog* This,
+    BSTR messageText);
+void __RPC_STUB IFsrmActionEventLog_put_MessageText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmActionEventLog_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmActionReport interface
+ */
+#ifndef __IFsrmActionReport_INTERFACE_DEFINED__
+#define __IFsrmActionReport_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmActionReport, 0x2dbe63c4, 0xb340, 0x48a0, 0xa5,0xb0, 0x15,0x8e,0x07,0xfc,0x56,0x7e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2dbe63c4-b340-48a0-a5b0-158e07fc567e")
+IFsrmActionReport : public IFsrmAction
+{
+    virtual HRESULT STDMETHODCALLTYPE get_ReportTypes(
+        SAFEARRAY **reportTypes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ReportTypes(
+        SAFEARRAY *reportTypes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MailTo(
+        BSTR *mailTo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MailTo(
+        BSTR mailTo) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmActionReport, 0x2dbe63c4, 0xb340, 0x48a0, 0xa5,0xb0, 0x15,0x8e,0x07,0xfc,0x56,0x7e)
+#endif
+#else
+typedef struct IFsrmActionReportVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmActionReport* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmActionReport* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmActionReport* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmActionReport* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmActionReport* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmActionReport* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmActionReport* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmAction methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IFsrmActionReport* This,
+        FSRM_OBJECT_ID *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_ActionType)(
+        IFsrmActionReport* This,
+        FsrmActionType *actionType);
+
+    HRESULT (STDMETHODCALLTYPE *get_RunLimitInterval)(
+        IFsrmActionReport* This,
+        LONG *minutes);
+
+    HRESULT (STDMETHODCALLTYPE *put_RunLimitInterval)(
+        IFsrmActionReport* This,
+        LONG minutes);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IFsrmActionReport* This);
+
+    /*** IFsrmActionReport methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ReportTypes)(
+        IFsrmActionReport* This,
+        SAFEARRAY **reportTypes);
+
+    HRESULT (STDMETHODCALLTYPE *put_ReportTypes)(
+        IFsrmActionReport* This,
+        SAFEARRAY *reportTypes);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailTo)(
+        IFsrmActionReport* This,
+        BSTR *mailTo);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailTo)(
+        IFsrmActionReport* This,
+        BSTR mailTo);
+
+    END_INTERFACE
+} IFsrmActionReportVtbl;
+interface IFsrmActionReport {
+    CONST_VTBL IFsrmActionReportVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmActionReport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmActionReport_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmActionReport_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmActionReport_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmActionReport_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmActionReport_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmActionReport_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmAction methods ***/
+#define IFsrmActionReport_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
+#define IFsrmActionReport_get_ActionType(This,actionType) (This)->lpVtbl->get_ActionType(This,actionType)
+#define IFsrmActionReport_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
+#define IFsrmActionReport_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
+#define IFsrmActionReport_Delete(This) (This)->lpVtbl->Delete(This)
+/*** IFsrmActionReport methods ***/
+#define IFsrmActionReport_get_ReportTypes(This,reportTypes) (This)->lpVtbl->get_ReportTypes(This,reportTypes)
+#define IFsrmActionReport_put_ReportTypes(This,reportTypes) (This)->lpVtbl->put_ReportTypes(This,reportTypes)
+#define IFsrmActionReport_get_MailTo(This,mailTo) (This)->lpVtbl->get_MailTo(This,mailTo)
+#define IFsrmActionReport_put_MailTo(This,mailTo) (This)->lpVtbl->put_MailTo(This,mailTo)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmActionReport_QueryInterface(IFsrmActionReport* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmActionReport_AddRef(IFsrmActionReport* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmActionReport_Release(IFsrmActionReport* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmActionReport_GetTypeInfoCount(IFsrmActionReport* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_GetTypeInfo(IFsrmActionReport* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_GetIDsOfNames(IFsrmActionReport* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_Invoke(IFsrmActionReport* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmAction methods ***/
+static FORCEINLINE HRESULT IFsrmActionReport_get_Id(IFsrmActionReport* This,FSRM_OBJECT_ID *id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_get_ActionType(IFsrmActionReport* This,FsrmActionType *actionType) {
+    return This->lpVtbl->get_ActionType(This,actionType);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_get_RunLimitInterval(IFsrmActionReport* This,LONG *minutes) {
+    return This->lpVtbl->get_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_put_RunLimitInterval(IFsrmActionReport* This,LONG minutes) {
+    return This->lpVtbl->put_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_Delete(IFsrmActionReport* This) {
+    return This->lpVtbl->Delete(This);
+}
+/*** IFsrmActionReport methods ***/
+static FORCEINLINE HRESULT IFsrmActionReport_get_ReportTypes(IFsrmActionReport* This,SAFEARRAY **reportTypes) {
+    return This->lpVtbl->get_ReportTypes(This,reportTypes);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_put_ReportTypes(IFsrmActionReport* This,SAFEARRAY *reportTypes) {
+    return This->lpVtbl->put_ReportTypes(This,reportTypes);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_get_MailTo(IFsrmActionReport* This,BSTR *mailTo) {
+    return This->lpVtbl->get_MailTo(This,mailTo);
+}
+static FORCEINLINE HRESULT IFsrmActionReport_put_MailTo(IFsrmActionReport* This,BSTR mailTo) {
+    return This->lpVtbl->put_MailTo(This,mailTo);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmActionReport_get_ReportTypes_Proxy(
+    IFsrmActionReport* This,
+    SAFEARRAY **reportTypes);
+void __RPC_STUB IFsrmActionReport_get_ReportTypes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionReport_put_ReportTypes_Proxy(
+    IFsrmActionReport* This,
+    SAFEARRAY *reportTypes);
+void __RPC_STUB IFsrmActionReport_put_ReportTypes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionReport_get_MailTo_Proxy(
+    IFsrmActionReport* This,
+    BSTR *mailTo);
+void __RPC_STUB IFsrmActionReport_get_MailTo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionReport_put_MailTo_Proxy(
+    IFsrmActionReport* This,
+    BSTR mailTo);
+void __RPC_STUB IFsrmActionReport_put_MailTo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmActionReport_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmCollection interface
+ */
+#ifndef __IFsrmCollection_INTERFACE_DEFINED__
+#define __IFsrmCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmCollection, 0xf76fbf3b, 0x8ddd, 0x4b42, 0xb0,0x5a, 0xcb,0x1c,0x3f,0xf1,0xfe,0xe8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f76fbf3b-8ddd-4b42-b05a-cb1c3ff1fee8")
+IFsrmCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **unknown) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG index,
+        VARIANT *item) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_State(
+        FsrmCollectionState *state) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Cancel(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WaitForCompletion(
+        LONG waitSeconds,
+        VARIANT_BOOL *completed) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetById(
+        FSRM_OBJECT_ID id,
+        VARIANT *entry) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmCollection, 0xf76fbf3b, 0x8ddd, 0x4b42, 0xb0,0x5a, 0xcb,0x1c,0x3f,0xf1,0xfe,0xe8)
+#endif
+#else
+typedef struct IFsrmCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmCollection* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmCollection* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmCollection* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmCollection* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmCollection* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmCollection* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmCollection* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IFsrmCollection* This,
+        IUnknown **unknown);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IFsrmCollection* This,
+        LONG index,
+        VARIANT *item);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        IFsrmCollection* This,
+        LONG *count);
+
+    HRESULT (STDMETHODCALLTYPE *get_State)(
+        IFsrmCollection* This,
+        FsrmCollectionState *state);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IFsrmCollection* This);
+
+    HRESULT (STDMETHODCALLTYPE *WaitForCompletion)(
+        IFsrmCollection* This,
+        LONG waitSeconds,
+        VARIANT_BOOL *completed);
+
+    HRESULT (STDMETHODCALLTYPE *GetById)(
+        IFsrmCollection* This,
+        FSRM_OBJECT_ID id,
+        VARIANT *entry);
+
+    END_INTERFACE
+} IFsrmCollectionVtbl;
+interface IFsrmCollection {
+    CONST_VTBL IFsrmCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmCollection methods ***/
+#define IFsrmCollection_get__NewEnum(This,unknown) (This)->lpVtbl->get__NewEnum(This,unknown)
+#define IFsrmCollection_get_Item(This,index,item) (This)->lpVtbl->get_Item(This,index,item)
+#define IFsrmCollection_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
+#define IFsrmCollection_get_State(This,state) (This)->lpVtbl->get_State(This,state)
+#define IFsrmCollection_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define IFsrmCollection_WaitForCompletion(This,waitSeconds,completed) (This)->lpVtbl->WaitForCompletion(This,waitSeconds,completed)
+#define IFsrmCollection_GetById(This,id,entry) (This)->lpVtbl->GetById(This,id,entry)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmCollection_QueryInterface(IFsrmCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmCollection_AddRef(IFsrmCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmCollection_Release(IFsrmCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmCollection_GetTypeInfoCount(IFsrmCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmCollection_GetTypeInfo(IFsrmCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmCollection_GetIDsOfNames(IFsrmCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmCollection_Invoke(IFsrmCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmCollection methods ***/
+static FORCEINLINE HRESULT IFsrmCollection_get__NewEnum(IFsrmCollection* This,IUnknown **unknown) {
+    return This->lpVtbl->get__NewEnum(This,unknown);
+}
+static FORCEINLINE HRESULT IFsrmCollection_get_Item(IFsrmCollection* This,LONG index,VARIANT *item) {
+    return This->lpVtbl->get_Item(This,index,item);
+}
+static FORCEINLINE HRESULT IFsrmCollection_get_Count(IFsrmCollection* This,LONG *count) {
+    return This->lpVtbl->get_Count(This,count);
+}
+static FORCEINLINE HRESULT IFsrmCollection_get_State(IFsrmCollection* This,FsrmCollectionState *state) {
+    return This->lpVtbl->get_State(This,state);
+}
+static FORCEINLINE HRESULT IFsrmCollection_Cancel(IFsrmCollection* This) {
+    return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IFsrmCollection_WaitForCompletion(IFsrmCollection* This,LONG waitSeconds,VARIANT_BOOL *completed) {
+    return This->lpVtbl->WaitForCompletion(This,waitSeconds,completed);
+}
+static FORCEINLINE HRESULT IFsrmCollection_GetById(IFsrmCollection* This,FSRM_OBJECT_ID id,VARIANT *entry) {
+    return This->lpVtbl->GetById(This,id,entry);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmCollection_get__NewEnum_Proxy(
+    IFsrmCollection* This,
+    IUnknown **unknown);
+void __RPC_STUB IFsrmCollection_get__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmCollection_get_Item_Proxy(
+    IFsrmCollection* This,
+    LONG index,
+    VARIANT *item);
+void __RPC_STUB IFsrmCollection_get_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmCollection_get_Count_Proxy(
+    IFsrmCollection* This,
+    LONG *count);
+void __RPC_STUB IFsrmCollection_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmCollection_get_State_Proxy(
+    IFsrmCollection* This,
+    FsrmCollectionState *state);
+void __RPC_STUB IFsrmCollection_get_State_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmCollection_Cancel_Proxy(
+    IFsrmCollection* This);
+void __RPC_STUB IFsrmCollection_Cancel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmCollection_WaitForCompletion_Proxy(
+    IFsrmCollection* This,
+    LONG waitSeconds,
+    VARIANT_BOOL *completed);
+void __RPC_STUB IFsrmCollection_WaitForCompletion_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmCollection_GetById_Proxy(
+    IFsrmCollection* This,
+    FSRM_OBJECT_ID id,
+    VARIANT *entry);
+void __RPC_STUB IFsrmCollection_GetById_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmDerivedObjectsResult interface
+ */
+#ifndef __IFsrmDerivedObjectsResult_INTERFACE_DEFINED__
+#define __IFsrmDerivedObjectsResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmDerivedObjectsResult, 0x39322a2d, 0x38ee, 0x4d0d, 0x80,0x95, 0x42,0x1a,0x80,0x84,0x9a,0x82);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("39322a2d-38ee-4d0d-8095-421a80849a82")
+IFsrmDerivedObjectsResult : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_DerivedObjects(
+        IFsrmCollection **derivedObjects) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Results(
+        IFsrmCollection **results) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmDerivedObjectsResult, 0x39322a2d, 0x38ee, 0x4d0d, 0x80,0x95, 0x42,0x1a,0x80,0x84,0x9a,0x82)
+#endif
+#else
+typedef struct IFsrmDerivedObjectsResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmDerivedObjectsResult* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmDerivedObjectsResult* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmDerivedObjectsResult* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmDerivedObjectsResult* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmDerivedObjectsResult* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmDerivedObjectsResult* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmDerivedObjectsResult* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmDerivedObjectsResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_DerivedObjects)(
+        IFsrmDerivedObjectsResult* This,
+        IFsrmCollection **derivedObjects);
+
+    HRESULT (STDMETHODCALLTYPE *get_Results)(
+        IFsrmDerivedObjectsResult* This,
+        IFsrmCollection **results);
+
+    END_INTERFACE
+} IFsrmDerivedObjectsResultVtbl;
+interface IFsrmDerivedObjectsResult {
+    CONST_VTBL IFsrmDerivedObjectsResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmDerivedObjectsResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmDerivedObjectsResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmDerivedObjectsResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmDerivedObjectsResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmDerivedObjectsResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmDerivedObjectsResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmDerivedObjectsResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmDerivedObjectsResult methods ***/
+#define IFsrmDerivedObjectsResult_get_DerivedObjects(This,derivedObjects) (This)->lpVtbl->get_DerivedObjects(This,derivedObjects)
+#define IFsrmDerivedObjectsResult_get_Results(This,results) (This)->lpVtbl->get_Results(This,results)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmDerivedObjectsResult_QueryInterface(IFsrmDerivedObjectsResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmDerivedObjectsResult_AddRef(IFsrmDerivedObjectsResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmDerivedObjectsResult_Release(IFsrmDerivedObjectsResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmDerivedObjectsResult_GetTypeInfoCount(IFsrmDerivedObjectsResult* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmDerivedObjectsResult_GetTypeInfo(IFsrmDerivedObjectsResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmDerivedObjectsResult_GetIDsOfNames(IFsrmDerivedObjectsResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmDerivedObjectsResult_Invoke(IFsrmDerivedObjectsResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmDerivedObjectsResult methods ***/
+static FORCEINLINE HRESULT IFsrmDerivedObjectsResult_get_DerivedObjects(IFsrmDerivedObjectsResult* This,IFsrmCollection **derivedObjects) {
+    return This->lpVtbl->get_DerivedObjects(This,derivedObjects);
+}
+static FORCEINLINE HRESULT IFsrmDerivedObjectsResult_get_Results(IFsrmDerivedObjectsResult* This,IFsrmCollection **results) {
+    return This->lpVtbl->get_Results(This,results);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmDerivedObjectsResult_get_DerivedObjects_Proxy(
+    IFsrmDerivedObjectsResult* This,
+    IFsrmCollection **derivedObjects);
+void __RPC_STUB IFsrmDerivedObjectsResult_get_DerivedObjects_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmDerivedObjectsResult_get_Results_Proxy(
+    IFsrmDerivedObjectsResult* This,
+    IFsrmCollection **results);
+void __RPC_STUB IFsrmDerivedObjectsResult_get_Results_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmDerivedObjectsResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmExportImport interface
+ */
+#ifndef __IFsrmExportImport_INTERFACE_DEFINED__
+#define __IFsrmExportImport_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmExportImport, 0xefcb0ab1, 0x16c4, 0x4a79, 0x81,0x2c, 0x72,0x56,0x14,0xc3,0x30,0x6b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("efcb0ab1-16c4-4a79-812c-725614c3306b")
+IFsrmExportImport : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE ExportFileGroups(
+        BSTR filePath,
+        VARIANT *fileGroupNamesSafeArray = 0,
+        BSTR remoteHost = L"") = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ImportFileGroups(
+        BSTR filePath,
+        VARIANT *fileGroupNamesSafeArray = 0,
+        BSTR remoteHost = L"",
+        IFsrmCommittableCollection **fileGroups) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExportFileScreenTemplates(
+        BSTR filePath,
+        VARIANT *templateNamesSafeArray = 0,
+        BSTR remoteHost = L"") = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ImportFileScreenTemplates(
+        BSTR filePath,
+        VARIANT *templateNamesSafeArray = 0,
+        BSTR remoteHost = L"",
+        IFsrmCommittableCollection **templates) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExportQuotaTemplates(
+        BSTR filePath,
+        VARIANT *templateNamesSafeArray = 0,
+        BSTR remoteHost = L"") = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ImportQuotaTemplates(
+        BSTR filePath,
+        VARIANT *templateNamesSafeArray = 0,
+        BSTR remoteHost = L"",
+        IFsrmCommittableCollection **templates) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmExportImport, 0xefcb0ab1, 0x16c4, 0x4a79, 0x81,0x2c, 0x72,0x56,0x14,0xc3,0x30,0x6b)
+#endif
+#else
+typedef struct IFsrmExportImportVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmExportImport* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmExportImport* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmExportImport* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmExportImport* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmExportImport* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmExportImport* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmExportImport* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmExportImport methods ***/
+    HRESULT (STDMETHODCALLTYPE *ExportFileGroups)(
+        IFsrmExportImport* This,
+        BSTR filePath,
+        VARIANT *fileGroupNamesSafeArray,
+        BSTR remoteHost);
+
+    HRESULT (STDMETHODCALLTYPE *ImportFileGroups)(
+        IFsrmExportImport* This,
+        BSTR filePath,
+        VARIANT *fileGroupNamesSafeArray,
+        BSTR remoteHost,
+        IFsrmCommittableCollection **fileGroups);
+
+    HRESULT (STDMETHODCALLTYPE *ExportFileScreenTemplates)(
+        IFsrmExportImport* This,
+        BSTR filePath,
+        VARIANT *templateNamesSafeArray,
+        BSTR remoteHost);
+
+    HRESULT (STDMETHODCALLTYPE *ImportFileScreenTemplates)(
+        IFsrmExportImport* This,
+        BSTR filePath,
+        VARIANT *templateNamesSafeArray,
+        BSTR remoteHost,
+        IFsrmCommittableCollection **templates);
+
+    HRESULT (STDMETHODCALLTYPE *ExportQuotaTemplates)(
+        IFsrmExportImport* This,
+        BSTR filePath,
+        VARIANT *templateNamesSafeArray,
+        BSTR remoteHost);
+
+    HRESULT (STDMETHODCALLTYPE *ImportQuotaTemplates)(
+        IFsrmExportImport* This,
+        BSTR filePath,
+        VARIANT *templateNamesSafeArray,
+        BSTR remoteHost,
+        IFsrmCommittableCollection **templates);
+
+    END_INTERFACE
+} IFsrmExportImportVtbl;
+interface IFsrmExportImport {
+    CONST_VTBL IFsrmExportImportVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmExportImport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmExportImport_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmExportImport_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmExportImport_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmExportImport_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmExportImport_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmExportImport_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmExportImport methods ***/
+#define IFsrmExportImport_ExportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost) (This)->lpVtbl->ExportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost)
+#define IFsrmExportImport_ImportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost,fileGroups) (This)->lpVtbl->ImportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost,fileGroups)
+#define IFsrmExportImport_ExportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost) (This)->lpVtbl->ExportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost)
+#define IFsrmExportImport_ImportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates) (This)->lpVtbl->ImportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates)
+#define IFsrmExportImport_ExportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost) (This)->lpVtbl->ExportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost)
+#define IFsrmExportImport_ImportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates) (This)->lpVtbl->ImportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmExportImport_QueryInterface(IFsrmExportImport* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmExportImport_AddRef(IFsrmExportImport* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmExportImport_Release(IFsrmExportImport* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmExportImport_GetTypeInfoCount(IFsrmExportImport* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmExportImport_GetTypeInfo(IFsrmExportImport* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmExportImport_GetIDsOfNames(IFsrmExportImport* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmExportImport_Invoke(IFsrmExportImport* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmExportImport methods ***/
+static FORCEINLINE HRESULT IFsrmExportImport_ExportFileGroups(IFsrmExportImport* This,BSTR filePath,VARIANT *fileGroupNamesSafeArray,BSTR remoteHost) {
+    return This->lpVtbl->ExportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost);
+}
+static FORCEINLINE HRESULT IFsrmExportImport_ImportFileGroups(IFsrmExportImport* This,BSTR filePath,VARIANT *fileGroupNamesSafeArray,BSTR remoteHost,IFsrmCommittableCollection **fileGroups) {
+    return This->lpVtbl->ImportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost,fileGroups);
+}
+static FORCEINLINE HRESULT IFsrmExportImport_ExportFileScreenTemplates(IFsrmExportImport* This,BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost) {
+    return This->lpVtbl->ExportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost);
+}
+static FORCEINLINE HRESULT IFsrmExportImport_ImportFileScreenTemplates(IFsrmExportImport* This,BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost,IFsrmCommittableCollection **templates) {
+    return This->lpVtbl->ImportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates);
+}
+static FORCEINLINE HRESULT IFsrmExportImport_ExportQuotaTemplates(IFsrmExportImport* This,BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost) {
+    return This->lpVtbl->ExportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost);
+}
+static FORCEINLINE HRESULT IFsrmExportImport_ImportQuotaTemplates(IFsrmExportImport* This,BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost,IFsrmCommittableCollection **templates) {
+    return This->lpVtbl->ImportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmExportImport_ExportFileGroups_Proxy(
+    IFsrmExportImport* This,
+    BSTR filePath,
+    VARIANT *fileGroupNamesSafeArray,
+    BSTR remoteHost);
+void __RPC_STUB IFsrmExportImport_ExportFileGroups_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmExportImport_ImportFileGroups_Proxy(
+    IFsrmExportImport* This,
+    BSTR filePath,
+    VARIANT *fileGroupNamesSafeArray,
+    BSTR remoteHost,
+    IFsrmCommittableCollection **fileGroups);
+void __RPC_STUB IFsrmExportImport_ImportFileGroups_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmExportImport_ExportFileScreenTemplates_Proxy(
+    IFsrmExportImport* This,
+    BSTR filePath,
+    VARIANT *templateNamesSafeArray,
+    BSTR remoteHost);
+void __RPC_STUB IFsrmExportImport_ExportFileScreenTemplates_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmExportImport_ImportFileScreenTemplates_Proxy(
+    IFsrmExportImport* This,
+    BSTR filePath,
+    VARIANT *templateNamesSafeArray,
+    BSTR remoteHost,
+    IFsrmCommittableCollection **templates);
+void __RPC_STUB IFsrmExportImport_ImportFileScreenTemplates_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmExportImport_ExportQuotaTemplates_Proxy(
+    IFsrmExportImport* This,
+    BSTR filePath,
+    VARIANT *templateNamesSafeArray,
+    BSTR remoteHost);
+void __RPC_STUB IFsrmExportImport_ExportQuotaTemplates_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmExportImport_ImportQuotaTemplates_Proxy(
+    IFsrmExportImport* This,
+    BSTR filePath,
+    VARIANT *templateNamesSafeArray,
+    BSTR remoteHost,
+    IFsrmCommittableCollection **templates);
+void __RPC_STUB IFsrmExportImport_ImportQuotaTemplates_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmExportImport_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmObject interface
+ */
+#ifndef __IFsrmObject_INTERFACE_DEFINED__
+#define __IFsrmObject_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmObject, 0x22bcef93, 0x4a3f, 0x4183, 0x89,0xf9, 0x2f,0x8b,0x8a,0x62,0x8a,0xee);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("22bcef93-4a3f-4183-89f9-2f8b8a628aee")
+IFsrmObject : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Id(
+        FSRM_OBJECT_ID *id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Description(
+        BSTR *description) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Description(
+        BSTR description) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Delete(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Commit(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmObject, 0x22bcef93, 0x4a3f, 0x4183, 0x89,0xf9, 0x2f,0x8b,0x8a,0x62,0x8a,0xee)
+#endif
+#else
+typedef struct IFsrmObjectVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmObject* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmObject* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmObject* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmObject* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmObject* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmObject* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmObject* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IFsrmObject* This,
+        FSRM_OBJECT_ID *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_Description)(
+        IFsrmObject* This,
+        BSTR *description);
+
+    HRESULT (STDMETHODCALLTYPE *put_Description)(
+        IFsrmObject* This,
+        BSTR description);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IFsrmObject* This);
+
+    HRESULT (STDMETHODCALLTYPE *Commit)(
+        IFsrmObject* This);
+
+    END_INTERFACE
+} IFsrmObjectVtbl;
+interface IFsrmObject {
+    CONST_VTBL IFsrmObjectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmObject_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmObject_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmObject_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmObject_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmObject_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmObject methods ***/
+#define IFsrmObject_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
+#define IFsrmObject_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
+#define IFsrmObject_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
+#define IFsrmObject_Delete(This) (This)->lpVtbl->Delete(This)
+#define IFsrmObject_Commit(This) (This)->lpVtbl->Commit(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmObject_QueryInterface(IFsrmObject* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmObject_AddRef(IFsrmObject* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmObject_Release(IFsrmObject* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmObject_GetTypeInfoCount(IFsrmObject* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmObject_GetTypeInfo(IFsrmObject* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmObject_GetIDsOfNames(IFsrmObject* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmObject_Invoke(IFsrmObject* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmObject methods ***/
+static FORCEINLINE HRESULT IFsrmObject_get_Id(IFsrmObject* This,FSRM_OBJECT_ID *id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IFsrmObject_get_Description(IFsrmObject* This,BSTR *description) {
+    return This->lpVtbl->get_Description(This,description);
+}
+static FORCEINLINE HRESULT IFsrmObject_put_Description(IFsrmObject* This,BSTR description) {
+    return This->lpVtbl->put_Description(This,description);
+}
+static FORCEINLINE HRESULT IFsrmObject_Delete(IFsrmObject* This) {
+    return This->lpVtbl->Delete(This);
+}
+static FORCEINLINE HRESULT IFsrmObject_Commit(IFsrmObject* This) {
+    return This->lpVtbl->Commit(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmObject_get_Id_Proxy(
+    IFsrmObject* This,
+    FSRM_OBJECT_ID *id);
+void __RPC_STUB IFsrmObject_get_Id_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmObject_get_Description_Proxy(
+    IFsrmObject* This,
+    BSTR *description);
+void __RPC_STUB IFsrmObject_get_Description_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmObject_put_Description_Proxy(
+    IFsrmObject* This,
+    BSTR description);
+void __RPC_STUB IFsrmObject_put_Description_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmObject_Delete_Proxy(
+    IFsrmObject* This);
+void __RPC_STUB IFsrmObject_Delete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmObject_Commit_Proxy(
+    IFsrmObject* This);
+void __RPC_STUB IFsrmObject_Commit_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmObject_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmPathMapper interface
+ */
+#ifndef __IFsrmPathMapper_INTERFACE_DEFINED__
+#define __IFsrmPathMapper_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmPathMapper, 0x6f4dbfff, 0x6920, 0x4821, 0xa6,0xc3, 0xb7,0xe9,0x4c,0x1f,0xd6,0x0c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6f4dbfff-6920-4821-a6c3-b7e94c1fd60c")
+IFsrmPathMapper : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE GetSharePathsForLocalPath(
+        BSTR localPath,
+        SAFEARRAY **sharePaths) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmPathMapper, 0x6f4dbfff, 0x6920, 0x4821, 0xa6,0xc3, 0xb7,0xe9,0x4c,0x1f,0xd6,0x0c)
+#endif
+#else
+typedef struct IFsrmPathMapperVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmPathMapper* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmPathMapper* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmPathMapper* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmPathMapper* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmPathMapper* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmPathMapper* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmPathMapper* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmPathMapper methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSharePathsForLocalPath)(
+        IFsrmPathMapper* This,
+        BSTR localPath,
+        SAFEARRAY **sharePaths);
+
+    END_INTERFACE
+} IFsrmPathMapperVtbl;
+interface IFsrmPathMapper {
+    CONST_VTBL IFsrmPathMapperVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmPathMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmPathMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmPathMapper_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmPathMapper_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmPathMapper_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmPathMapper_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmPathMapper_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmPathMapper methods ***/
+#define IFsrmPathMapper_GetSharePathsForLocalPath(This,localPath,sharePaths) (This)->lpVtbl->GetSharePathsForLocalPath(This,localPath,sharePaths)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmPathMapper_QueryInterface(IFsrmPathMapper* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmPathMapper_AddRef(IFsrmPathMapper* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmPathMapper_Release(IFsrmPathMapper* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmPathMapper_GetTypeInfoCount(IFsrmPathMapper* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmPathMapper_GetTypeInfo(IFsrmPathMapper* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmPathMapper_GetIDsOfNames(IFsrmPathMapper* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmPathMapper_Invoke(IFsrmPathMapper* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmPathMapper methods ***/
+static FORCEINLINE HRESULT IFsrmPathMapper_GetSharePathsForLocalPath(IFsrmPathMapper* This,BSTR localPath,SAFEARRAY **sharePaths) {
+    return This->lpVtbl->GetSharePathsForLocalPath(This,localPath,sharePaths);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmPathMapper_GetSharePathsForLocalPath_Proxy(
+    IFsrmPathMapper* This,
+    BSTR localPath,
+    SAFEARRAY **sharePaths);
+void __RPC_STUB IFsrmPathMapper_GetSharePathsForLocalPath_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmPathMapper_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmSetting interface
+ */
+#ifndef __IFsrmSetting_INTERFACE_DEFINED__
+#define __IFsrmSetting_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmSetting, 0xf411d4fd, 0x14be, 0x4260, 0x8c,0x40, 0x03,0xb7,0xc9,0x5e,0x60,0x8a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f411d4fd-14be-4260-8c40-03b7c95e608a")
+IFsrmSetting : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_SmtpServer(
+        BSTR *smtpServer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_SmtpServer(
+        BSTR smtpServer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MailFrom(
+        BSTR *mailFrom) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MailFrom(
+        BSTR mailFrom) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_AdminEmail(
+        BSTR *adminEmail) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_AdminEmail(
+        BSTR adminEmail) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DisableCommandLine(
+        VARIANT_BOOL *disableCommandLine) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_DisableCommandLine(
+        VARIANT_BOOL disableCommandLine) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_EnableScreeningAudit(
+        VARIANT_BOOL *enableScreeningAudit) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_EnableScreeningAudit(
+        VARIANT_BOOL enableScreeningAudit) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EmailTest(
+        BSTR mailTo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetActionRunLimitInterval(
+        FsrmActionType actionType,
+        LONG delayTimeMinutes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetActionRunLimitInterval(
+        FsrmActionType actionType,
+        LONG *delayTimeMinutes) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmSetting, 0xf411d4fd, 0x14be, 0x4260, 0x8c,0x40, 0x03,0xb7,0xc9,0x5e,0x60,0x8a)
+#endif
+#else
+typedef struct IFsrmSettingVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmSetting* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmSetting* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmSetting* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmSetting* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmSetting* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmSetting* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmSetting* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmSetting methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_SmtpServer)(
+        IFsrmSetting* This,
+        BSTR *smtpServer);
+
+    HRESULT (STDMETHODCALLTYPE *put_SmtpServer)(
+        IFsrmSetting* This,
+        BSTR smtpServer);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailFrom)(
+        IFsrmSetting* This,
+        BSTR *mailFrom);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailFrom)(
+        IFsrmSetting* This,
+        BSTR mailFrom);
+
+    HRESULT (STDMETHODCALLTYPE *get_AdminEmail)(
+        IFsrmSetting* This,
+        BSTR *adminEmail);
+
+    HRESULT (STDMETHODCALLTYPE *put_AdminEmail)(
+        IFsrmSetting* This,
+        BSTR adminEmail);
+
+    HRESULT (STDMETHODCALLTYPE *get_DisableCommandLine)(
+        IFsrmSetting* This,
+        VARIANT_BOOL *disableCommandLine);
+
+    HRESULT (STDMETHODCALLTYPE *put_DisableCommandLine)(
+        IFsrmSetting* This,
+        VARIANT_BOOL disableCommandLine);
+
+    HRESULT (STDMETHODCALLTYPE *get_EnableScreeningAudit)(
+        IFsrmSetting* This,
+        VARIANT_BOOL *enableScreeningAudit);
+
+    HRESULT (STDMETHODCALLTYPE *put_EnableScreeningAudit)(
+        IFsrmSetting* This,
+        VARIANT_BOOL enableScreeningAudit);
+
+    HRESULT (STDMETHODCALLTYPE *EmailTest)(
+        IFsrmSetting* This,
+        BSTR mailTo);
+
+    HRESULT (STDMETHODCALLTYPE *SetActionRunLimitInterval)(
+        IFsrmSetting* This,
+        FsrmActionType actionType,
+        LONG delayTimeMinutes);
+
+    HRESULT (STDMETHODCALLTYPE *GetActionRunLimitInterval)(
+        IFsrmSetting* This,
+        FsrmActionType actionType,
+        LONG *delayTimeMinutes);
+
+    END_INTERFACE
+} IFsrmSettingVtbl;
+interface IFsrmSetting {
+    CONST_VTBL IFsrmSettingVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IFsrmSetting_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IFsrmSetting_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IFsrmSetting_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IFsrmSetting_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IFsrmSetting_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IFsrmSetting_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IFsrmSetting_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmSetting methods ***/
+#define IFsrmSetting_get_SmtpServer(This,smtpServer) (This)->lpVtbl->get_SmtpServer(This,smtpServer)
+#define IFsrmSetting_put_SmtpServer(This,smtpServer) (This)->lpVtbl->put_SmtpServer(This,smtpServer)
+#define IFsrmSetting_get_MailFrom(This,mailFrom) (This)->lpVtbl->get_MailFrom(This,mailFrom)
+#define IFsrmSetting_put_MailFrom(This,mailFrom) (This)->lpVtbl->put_MailFrom(This,mailFrom)
+#define IFsrmSetting_get_AdminEmail(This,adminEmail) (This)->lpVtbl->get_AdminEmail(This,adminEmail)
+#define IFsrmSetting_put_AdminEmail(This,adminEmail) (This)->lpVtbl->put_AdminEmail(This,adminEmail)
+#define IFsrmSetting_get_DisableCommandLine(This,disableCommandLine) (This)->lpVtbl->get_DisableCommandLine(This,disableCommandLine)
+#define IFsrmSetting_put_DisableCommandLine(This,disableCommandLine) (This)->lpVtbl->put_DisableCommandLine(This,disableCommandLine)
+#define IFsrmSetting_get_EnableScreeningAudit(This,enableScreeningAudit) (This)->lpVtbl->get_EnableScreeningAudit(This,enableScreeningAudit)
+#define IFsrmSetting_put_EnableScreeningAudit(This,enableScreeningAudit) (This)->lpVtbl->put_EnableScreeningAudit(This,enableScreeningAudit)
+#define IFsrmSetting_EmailTest(This,mailTo) (This)->lpVtbl->EmailTest(This,mailTo)
+#define IFsrmSetting_SetActionRunLimitInterval(This,actionType,delayTimeMinutes) (This)->lpVtbl->SetActionRunLimitInterval(This,actionType,delayTimeMinutes)
+#define IFsrmSetting_GetActionRunLimitInterval(This,actionType,delayTimeMinutes) (This)->lpVtbl->GetActionRunLimitInterval(This,actionType,delayTimeMinutes)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmSetting_QueryInterface(IFsrmSetting* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmSetting_AddRef(IFsrmSetting* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmSetting_Release(IFsrmSetting* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmSetting_GetTypeInfoCount(IFsrmSetting* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmSetting_GetTypeInfo(IFsrmSetting* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmSetting_GetIDsOfNames(IFsrmSetting* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmSetting_Invoke(IFsrmSetting* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmSetting methods ***/
+static FORCEINLINE HRESULT IFsrmSetting_get_SmtpServer(IFsrmSetting* This,BSTR *smtpServer) {
+    return This->lpVtbl->get_SmtpServer(This,smtpServer);
+}
+static FORCEINLINE HRESULT IFsrmSetting_put_SmtpServer(IFsrmSetting* This,BSTR smtpServer) {
+    return This->lpVtbl->put_SmtpServer(This,smtpServer);
+}
+static FORCEINLINE HRESULT IFsrmSetting_get_MailFrom(IFsrmSetting* This,BSTR *mailFrom) {
+    return This->lpVtbl->get_MailFrom(This,mailFrom);
+}
+static FORCEINLINE HRESULT IFsrmSetting_put_MailFrom(IFsrmSetting* This,BSTR mailFrom) {
+    return This->lpVtbl->put_MailFrom(This,mailFrom);
+}
+static FORCEINLINE HRESULT IFsrmSetting_get_AdminEmail(IFsrmSetting* This,BSTR *adminEmail) {
+    return This->lpVtbl->get_AdminEmail(This,adminEmail);
+}
+static FORCEINLINE HRESULT IFsrmSetting_put_AdminEmail(IFsrmSetting* This,BSTR adminEmail) {
+    return This->lpVtbl->put_AdminEmail(This,adminEmail);
+}
+static FORCEINLINE HRESULT IFsrmSetting_get_DisableCommandLine(IFsrmSetting* This,VARIANT_BOOL *disableCommandLine) {
+    return This->lpVtbl->get_DisableCommandLine(This,disableCommandLine);
+}
+static FORCEINLINE HRESULT IFsrmSetting_put_DisableCommandLine(IFsrmSetting* This,VARIANT_BOOL disableCommandLine) {
+    return This->lpVtbl->put_DisableCommandLine(This,disableCommandLine);
+}
+static FORCEINLINE HRESULT IFsrmSetting_get_EnableScreeningAudit(IFsrmSetting* This,VARIANT_BOOL *enableScreeningAudit) {
+    return This->lpVtbl->get_EnableScreeningAudit(This,enableScreeningAudit);
+}
+static FORCEINLINE HRESULT IFsrmSetting_put_EnableScreeningAudit(IFsrmSetting* This,VARIANT_BOOL enableScreeningAudit) {
+    return This->lpVtbl->put_EnableScreeningAudit(This,enableScreeningAudit);
+}
+static FORCEINLINE HRESULT IFsrmSetting_EmailTest(IFsrmSetting* This,BSTR mailTo) {
+    return This->lpVtbl->EmailTest(This,mailTo);
+}
+static FORCEINLINE HRESULT IFsrmSetting_SetActionRunLimitInterval(IFsrmSetting* This,FsrmActionType actionType,LONG delayTimeMinutes) {
+    return This->lpVtbl->SetActionRunLimitInterval(This,actionType,delayTimeMinutes);
+}
+static FORCEINLINE HRESULT IFsrmSetting_GetActionRunLimitInterval(IFsrmSetting* This,FsrmActionType actionType,LONG *delayTimeMinutes) {
+    return This->lpVtbl->GetActionRunLimitInterval(This,actionType,delayTimeMinutes);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmSetting_get_SmtpServer_Proxy(
+    IFsrmSetting* This,
+    BSTR *smtpServer);
+void __RPC_STUB IFsrmSetting_get_SmtpServer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_put_SmtpServer_Proxy(
+    IFsrmSetting* This,
+    BSTR smtpServer);
+void __RPC_STUB IFsrmSetting_put_SmtpServer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_get_MailFrom_Proxy(
+    IFsrmSetting* This,
+    BSTR *mailFrom);
+void __RPC_STUB IFsrmSetting_get_MailFrom_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_put_MailFrom_Proxy(
+    IFsrmSetting* This,
+    BSTR mailFrom);
+void __RPC_STUB IFsrmSetting_put_MailFrom_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_get_AdminEmail_Proxy(
+    IFsrmSetting* This,
+    BSTR *adminEmail);
+void __RPC_STUB IFsrmSetting_get_AdminEmail_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_put_AdminEmail_Proxy(
+    IFsrmSetting* This,
+    BSTR adminEmail);
+void __RPC_STUB IFsrmSetting_put_AdminEmail_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_get_DisableCommandLine_Proxy(
+    IFsrmSetting* This,
+    VARIANT_BOOL *disableCommandLine);
+void __RPC_STUB IFsrmSetting_get_DisableCommandLine_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_put_DisableCommandLine_Proxy(
+    IFsrmSetting* This,
+    VARIANT_BOOL disableCommandLine);
+void __RPC_STUB IFsrmSetting_put_DisableCommandLine_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_get_EnableScreeningAudit_Proxy(
+    IFsrmSetting* This,
+    VARIANT_BOOL *enableScreeningAudit);
+void __RPC_STUB IFsrmSetting_get_EnableScreeningAudit_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_put_EnableScreeningAudit_Proxy(
+    IFsrmSetting* This,
+    VARIANT_BOOL enableScreeningAudit);
+void __RPC_STUB IFsrmSetting_put_EnableScreeningAudit_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_EmailTest_Proxy(
+    IFsrmSetting* This,
+    BSTR mailTo);
+void __RPC_STUB IFsrmSetting_EmailTest_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_SetActionRunLimitInterval_Proxy(
+    IFsrmSetting* This,
+    FsrmActionType actionType,
+    LONG delayTimeMinutes);
+void __RPC_STUB IFsrmSetting_SetActionRunLimitInterval_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmSetting_GetActionRunLimitInterval_Proxy(
+    IFsrmSetting* This,
+    FsrmActionType actionType,
+    LONG *delayTimeMinutes);
+void __RPC_STUB IFsrmSetting_GetActionRunLimitInterval_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmSetting_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmActionEmail interface
+ */
+#ifndef __IFsrmActionEmail_INTERFACE_DEFINED__
+#define __IFsrmActionEmail_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmActionEmail, 0xd646567d, 0x26ae, 0x4caa, 0x9f,0x84, 0x4e,0x0a,0xad,0x20,0x7f,0xca);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d646567d-26ae-4caa-9f84-4e0aad207fca")
+IFsrmActionEmail : public IFsrmAction
+{
+    virtual HRESULT STDMETHODCALLTYPE get_MailFrom(
+        BSTR *mailFrom) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MailFrom(
+        BSTR mailFrom) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MailReplyTo(
+        BSTR *mailReplyTo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MailReplyTo(
+        BSTR mailReplyTo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MailTo(
+        BSTR *mailTo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MailTo(
+        BSTR mailTo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MailCc(
+        BSTR *mailCc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MailCc(
+        BSTR mailCc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MailBcc(
+        BSTR *mailBcc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MailBcc(
+        BSTR mailBcc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MailSubject(
+        BSTR *mailSubject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MailSubject(
+        BSTR mailSubject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MessageText(
+        BSTR *messageText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MessageText(
+        BSTR messageText) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmActionEmail, 0xd646567d, 0x26ae, 0x4caa, 0x9f,0x84, 0x4e,0x0a,0xad,0x20,0x7f,0xca)
+#endif
+#else
+typedef struct IFsrmActionEmailVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmActionEmail* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmActionEmail* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmActionEmail* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmActionEmail* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmActionEmail* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmActionEmail* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmActionEmail* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmAction methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IFsrmActionEmail* This,
+        FSRM_OBJECT_ID *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_ActionType)(
+        IFsrmActionEmail* This,
+        FsrmActionType *actionType);
+
+    HRESULT (STDMETHODCALLTYPE *get_RunLimitInterval)(
+        IFsrmActionEmail* This,
+        LONG *minutes);
+
+    HRESULT (STDMETHODCALLTYPE *put_RunLimitInterval)(
+        IFsrmActionEmail* This,
+        LONG minutes);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IFsrmActionEmail* This);
+
+    /*** IFsrmActionEmail methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_MailFrom)(
+        IFsrmActionEmail* This,
+        BSTR *mailFrom);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailFrom)(
+        IFsrmActionEmail* This,
+        BSTR mailFrom);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailReplyTo)(
+        IFsrmActionEmail* This,
+        BSTR *mailReplyTo);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailReplyTo)(
+        IFsrmActionEmail* This,
+        BSTR mailReplyTo);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailTo)(
+        IFsrmActionEmail* This,
+        BSTR *mailTo);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailTo)(
+        IFsrmActionEmail* This,
+        BSTR mailTo);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailCc)(
+        IFsrmActionEmail* This,
+        BSTR *mailCc);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailCc)(
+        IFsrmActionEmail* This,
+        BSTR mailCc);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailBcc)(
+        IFsrmActionEmail* This,
+        BSTR *mailBcc);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailBcc)(
+        IFsrmActionEmail* This,
+        BSTR mailBcc);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailSubject)(
+        IFsrmActionEmail* This,
+        BSTR *mailSubject);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailSubject)(
+        IFsrmActionEmail* This,
+        BSTR mailSubject);
+
+    HRESULT (STDMETHODCALLTYPE *get_MessageText)(
+        IFsrmActionEmail* This,
+        BSTR *messageText);
+
+    HRESULT (STDMETHODCALLTYPE *put_MessageText)(
+        IFsrmActionEmail* This,
+        BSTR messageText);
+
+    END_INTERFACE
+} IFsrmActionEmailVtbl;
+interface IFsrmActionEmail {
+    CONST_VTBL IFsrmActionEmailVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IFsrmActionEmail_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IFsrmActionEmail_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IFsrmActionEmail_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IFsrmActionEmail_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IFsrmActionEmail_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IFsrmActionEmail_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IFsrmActionEmail_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmAction methods ***/
 #define IFsrmActionEmail_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
 #define IFsrmActionEmail_get_ActionType(This,actionType) (This)->lpVtbl->get_ActionType(This,actionType)
-#define IFsrmActionEmail_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
 #define IFsrmActionEmail_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
-#define IFsrmActionEmail_Delete() (This)->lpVtbl->Delete(This)
+#define IFsrmActionEmail_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
+#define IFsrmActionEmail_Delete(This) (This)->lpVtbl->Delete(This)
+/*** IFsrmActionEmail methods ***/
 #define IFsrmActionEmail_get_MailFrom(This,mailFrom) (This)->lpVtbl->get_MailFrom(This,mailFrom)
 #define IFsrmActionEmail_put_MailFrom(This,mailFrom) (This)->lpVtbl->put_MailFrom(This,mailFrom)
 #define IFsrmActionEmail_get_MailReplyTo(This,mailReplyTo) (This)->lpVtbl->get_MailReplyTo(This,mailReplyTo)
@@ -488,72 +3293,386 @@
 #define IFsrmActionEmail_put_MailSubject(This,mailSubject) (This)->lpVtbl->put_MailSubject(This,mailSubject)
 #define IFsrmActionEmail_get_MessageText(This,messageText) (This)->lpVtbl->get_MessageText(This,messageText)
 #define IFsrmActionEmail_put_MessageText(This,messageText) (This)->lpVtbl->put_MessageText(This,messageText)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmActionEmail2
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmActionEmail_QueryInterface(IFsrmActionEmail* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmActionEmail_AddRef(IFsrmActionEmail* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmActionEmail_Release(IFsrmActionEmail* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmActionEmail_GetTypeInfoCount(IFsrmActionEmail* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_GetTypeInfo(IFsrmActionEmail* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_GetIDsOfNames(IFsrmActionEmail* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_Invoke(IFsrmActionEmail* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmAction methods ***/
+static FORCEINLINE HRESULT IFsrmActionEmail_get_Id(IFsrmActionEmail* This,FSRM_OBJECT_ID *id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_get_ActionType(IFsrmActionEmail* This,FsrmActionType *actionType) {
+    return This->lpVtbl->get_ActionType(This,actionType);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_get_RunLimitInterval(IFsrmActionEmail* This,LONG *minutes) {
+    return This->lpVtbl->get_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_put_RunLimitInterval(IFsrmActionEmail* This,LONG minutes) {
+    return This->lpVtbl->put_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_Delete(IFsrmActionEmail* This) {
+    return This->lpVtbl->Delete(This);
+}
+/*** IFsrmActionEmail methods ***/
+static FORCEINLINE HRESULT IFsrmActionEmail_get_MailFrom(IFsrmActionEmail* This,BSTR *mailFrom) {
+    return This->lpVtbl->get_MailFrom(This,mailFrom);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_put_MailFrom(IFsrmActionEmail* This,BSTR mailFrom) {
+    return This->lpVtbl->put_MailFrom(This,mailFrom);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_get_MailReplyTo(IFsrmActionEmail* This,BSTR *mailReplyTo) {
+    return This->lpVtbl->get_MailReplyTo(This,mailReplyTo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_put_MailReplyTo(IFsrmActionEmail* This,BSTR mailReplyTo) {
+    return This->lpVtbl->put_MailReplyTo(This,mailReplyTo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_get_MailTo(IFsrmActionEmail* This,BSTR *mailTo) {
+    return This->lpVtbl->get_MailTo(This,mailTo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_put_MailTo(IFsrmActionEmail* This,BSTR mailTo) {
+    return This->lpVtbl->put_MailTo(This,mailTo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_get_MailCc(IFsrmActionEmail* This,BSTR *mailCc) {
+    return This->lpVtbl->get_MailCc(This,mailCc);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_put_MailCc(IFsrmActionEmail* This,BSTR mailCc) {
+    return This->lpVtbl->put_MailCc(This,mailCc);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_get_MailBcc(IFsrmActionEmail* This,BSTR *mailBcc) {
+    return This->lpVtbl->get_MailBcc(This,mailBcc);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_put_MailBcc(IFsrmActionEmail* This,BSTR mailBcc) {
+    return This->lpVtbl->put_MailBcc(This,mailBcc);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_get_MailSubject(IFsrmActionEmail* This,BSTR *mailSubject) {
+    return This->lpVtbl->get_MailSubject(This,mailSubject);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_put_MailSubject(IFsrmActionEmail* This,BSTR mailSubject) {
+    return This->lpVtbl->put_MailSubject(This,mailSubject);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_get_MessageText(IFsrmActionEmail* This,BSTR *messageText) {
+    return This->lpVtbl->get_MessageText(This,messageText);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail_put_MessageText(IFsrmActionEmail* This,BSTR messageText) {
+    return This->lpVtbl->put_MessageText(This,messageText);
+}
 #endif
-DECLARE_INTERFACE_(IFsrmActionEmail2,IFsrmActionEmail)
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_get_MailFrom_Proxy(
+    IFsrmActionEmail* This,
+    BSTR *mailFrom);
+void __RPC_STUB IFsrmActionEmail_get_MailFrom_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_put_MailFrom_Proxy(
+    IFsrmActionEmail* This,
+    BSTR mailFrom);
+void __RPC_STUB IFsrmActionEmail_put_MailFrom_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_get_MailReplyTo_Proxy(
+    IFsrmActionEmail* This,
+    BSTR *mailReplyTo);
+void __RPC_STUB IFsrmActionEmail_get_MailReplyTo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_put_MailReplyTo_Proxy(
+    IFsrmActionEmail* This,
+    BSTR mailReplyTo);
+void __RPC_STUB IFsrmActionEmail_put_MailReplyTo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_get_MailTo_Proxy(
+    IFsrmActionEmail* This,
+    BSTR *mailTo);
+void __RPC_STUB IFsrmActionEmail_get_MailTo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_put_MailTo_Proxy(
+    IFsrmActionEmail* This,
+    BSTR mailTo);
+void __RPC_STUB IFsrmActionEmail_put_MailTo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_get_MailCc_Proxy(
+    IFsrmActionEmail* This,
+    BSTR *mailCc);
+void __RPC_STUB IFsrmActionEmail_get_MailCc_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_put_MailCc_Proxy(
+    IFsrmActionEmail* This,
+    BSTR mailCc);
+void __RPC_STUB IFsrmActionEmail_put_MailCc_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_get_MailBcc_Proxy(
+    IFsrmActionEmail* This,
+    BSTR *mailBcc);
+void __RPC_STUB IFsrmActionEmail_get_MailBcc_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_put_MailBcc_Proxy(
+    IFsrmActionEmail* This,
+    BSTR mailBcc);
+void __RPC_STUB IFsrmActionEmail_put_MailBcc_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_get_MailSubject_Proxy(
+    IFsrmActionEmail* This,
+    BSTR *mailSubject);
+void __RPC_STUB IFsrmActionEmail_get_MailSubject_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_put_MailSubject_Proxy(
+    IFsrmActionEmail* This,
+    BSTR mailSubject);
+void __RPC_STUB IFsrmActionEmail_put_MailSubject_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_get_MessageText_Proxy(
+    IFsrmActionEmail* This,
+    BSTR *messageText);
+void __RPC_STUB IFsrmActionEmail_get_MessageText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail_put_MessageText_Proxy(
+    IFsrmActionEmail* This,
+    BSTR messageText);
+void __RPC_STUB IFsrmActionEmail_put_MessageText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmActionEmail_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmActionEmail2 interface
+ */
+#ifndef __IFsrmActionEmail2_INTERFACE_DEFINED__
+#define __IFsrmActionEmail2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmActionEmail2, 0x8276702f, 0x2532, 0x4839, 0x89,0xbf, 0x48,0x72,0x60,0x9a,0x2e,0xa4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8276702f-2532-4839-89bf-4872609a2ea4")
+IFsrmActionEmail2 : public IFsrmActionEmail
 {
+    virtual HRESULT STDMETHODCALLTYPE get_AttachmentFileListSize(
+        LONG *attachmentFileListSize) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_AttachmentFileListSize(
+        LONG attachmentFileListSize) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmActionEmail2, 0x8276702f, 0x2532, 0x4839, 0x89,0xbf, 0x48,0x72,0x60,0x9a,0x2e,0xa4)
+#endif
+#else
+typedef struct IFsrmActionEmail2Vtbl {
     BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmActionEmail2* This,
+        REFIID riid,
+        void **ppvObject);
 
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmActionEmail2* This);
 
-    /* IFsrmAction methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_ActionType)(THIS_ FsrmActionType *actionType) PURE;
-    STDMETHOD_(HRESULT,put_RunLimitInterval)(THIS_ __LONG32 minutes) PURE;
-    STDMETHOD_(HRESULT,get_RunLimitInterval)(THIS_ __LONG32 *minutes) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmActionEmail2* This);
 
-    /* IFsrmActionEmail methods */
-    STDMETHOD_(HRESULT,get_MailFrom)(THIS_ BSTR *mailFrom) PURE;
-    STDMETHOD_(HRESULT,put_MailFrom)(THIS_ BSTR mailFrom) PURE;
-    STDMETHOD_(HRESULT,get_MailReplyTo)(THIS_ BSTR *mailReplyTo) PURE;
-    STDMETHOD_(HRESULT,put_MailReplyTo)(THIS_ BSTR mailReplyTo) PURE;
-    STDMETHOD_(HRESULT,get_MailTo)(THIS_ BSTR *mailTo) PURE;
-    STDMETHOD_(HRESULT,put_MailTo)(THIS_ BSTR mailTo) PURE;
-    STDMETHOD_(HRESULT,get_MailCc)(THIS_ BSTR *mailCc) PURE;
-    STDMETHOD_(HRESULT,put_MailCc)(THIS_ BSTR mailCc) PURE;
-    STDMETHOD_(HRESULT,get_MailBcc)(THIS_ BSTR *mailBcc) PURE;
-    STDMETHOD_(HRESULT,put_MailBcc)(THIS_ BSTR mailBcc) PURE;
-    STDMETHOD_(HRESULT,get_MailSubject)(THIS_ BSTR *mailSubject) PURE;
-    STDMETHOD_(HRESULT,put_MailSubject)(THIS_ BSTR mailSubject) PURE;
-    STDMETHOD_(HRESULT,get_MessageText)(THIS_ BSTR *messageText) PURE;
-    STDMETHOD_(HRESULT,put_MessageText)(THIS_ BSTR messageText) PURE;
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmActionEmail2* This,
+        UINT *pctinfo);
 
-    /* IFsrmActionEmail2 methods */
-    STDMETHOD_(HRESULT,get_AttachmentFileListSize)(THIS_ __LONG32 *pAttachmentFileListSize) PURE;
-    STDMETHOD_(HRESULT,put_AttachmentFileListSize)(THIS_ __LONG32 attachmentFileListSize) PURE;
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmActionEmail2* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmActionEmail2* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmActionEmail2* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmAction methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IFsrmActionEmail2* This,
+        FSRM_OBJECT_ID *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_ActionType)(
+        IFsrmActionEmail2* This,
+        FsrmActionType *actionType);
+
+    HRESULT (STDMETHODCALLTYPE *get_RunLimitInterval)(
+        IFsrmActionEmail2* This,
+        LONG *minutes);
+
+    HRESULT (STDMETHODCALLTYPE *put_RunLimitInterval)(
+        IFsrmActionEmail2* This,
+        LONG minutes);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IFsrmActionEmail2* This);
+
+    /*** IFsrmActionEmail methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_MailFrom)(
+        IFsrmActionEmail2* This,
+        BSTR *mailFrom);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailFrom)(
+        IFsrmActionEmail2* This,
+        BSTR mailFrom);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailReplyTo)(
+        IFsrmActionEmail2* This,
+        BSTR *mailReplyTo);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailReplyTo)(
+        IFsrmActionEmail2* This,
+        BSTR mailReplyTo);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailTo)(
+        IFsrmActionEmail2* This,
+        BSTR *mailTo);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailTo)(
+        IFsrmActionEmail2* This,
+        BSTR mailTo);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailCc)(
+        IFsrmActionEmail2* This,
+        BSTR *mailCc);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailCc)(
+        IFsrmActionEmail2* This,
+        BSTR mailCc);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailBcc)(
+        IFsrmActionEmail2* This,
+        BSTR *mailBcc);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailBcc)(
+        IFsrmActionEmail2* This,
+        BSTR mailBcc);
+
+    HRESULT (STDMETHODCALLTYPE *get_MailSubject)(
+        IFsrmActionEmail2* This,
+        BSTR *mailSubject);
+
+    HRESULT (STDMETHODCALLTYPE *put_MailSubject)(
+        IFsrmActionEmail2* This,
+        BSTR mailSubject);
+
+    HRESULT (STDMETHODCALLTYPE *get_MessageText)(
+        IFsrmActionEmail2* This,
+        BSTR *messageText);
+
+    HRESULT (STDMETHODCALLTYPE *put_MessageText)(
+        IFsrmActionEmail2* This,
+        BSTR messageText);
+
+    /*** IFsrmActionEmail2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AttachmentFileListSize)(
+        IFsrmActionEmail2* This,
+        LONG *attachmentFileListSize);
+
+    HRESULT (STDMETHODCALLTYPE *put_AttachmentFileListSize)(
+        IFsrmActionEmail2* This,
+        LONG attachmentFileListSize);
 
     END_INTERFACE
+} IFsrmActionEmail2Vtbl;
+interface IFsrmActionEmail2 {
+    CONST_VTBL IFsrmActionEmail2Vtbl* lpVtbl;
 };
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IFsrmActionEmail2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IFsrmActionEmail2_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IFsrmActionEmail2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IFsrmActionEmail2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IFsrmActionEmail2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IFsrmActionEmail2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IFsrmActionEmail2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFsrmAction methods ***/
 #define IFsrmActionEmail2_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
 #define IFsrmActionEmail2_get_ActionType(This,actionType) (This)->lpVtbl->get_ActionType(This,actionType)
-#define IFsrmActionEmail2_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
 #define IFsrmActionEmail2_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
-#define IFsrmActionEmail2_Delete() (This)->lpVtbl->Delete(This)
+#define IFsrmActionEmail2_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
+#define IFsrmActionEmail2_Delete(This) (This)->lpVtbl->Delete(This)
+/*** IFsrmActionEmail methods ***/
 #define IFsrmActionEmail2_get_MailFrom(This,mailFrom) (This)->lpVtbl->get_MailFrom(This,mailFrom)
 #define IFsrmActionEmail2_put_MailFrom(This,mailFrom) (This)->lpVtbl->put_MailFrom(This,mailFrom)
 #define IFsrmActionEmail2_get_MailReplyTo(This,mailReplyTo) (This)->lpVtbl->get_MailReplyTo(This,mailReplyTo)
@@ -568,1638 +3687,389 @@
 #define IFsrmActionEmail2_put_MailSubject(This,mailSubject) (This)->lpVtbl->put_MailSubject(This,mailSubject)
 #define IFsrmActionEmail2_get_MessageText(This,messageText) (This)->lpVtbl->get_MessageText(This,messageText)
 #define IFsrmActionEmail2_put_MessageText(This,messageText) (This)->lpVtbl->put_MessageText(This,messageText)
-#define IFsrmActionEmail2_get_AttachmentFileListSize(This,pAttachmentFileListSize) (This)->lpVtbl->get_AttachmentFileListSize(This,pAttachmentFileListSize)
+/*** IFsrmActionEmail2 methods ***/
+#define IFsrmActionEmail2_get_AttachmentFileListSize(This,attachmentFileListSize) (This)->lpVtbl->get_AttachmentFileListSize(This,attachmentFileListSize)
 #define IFsrmActionEmail2_put_AttachmentFileListSize(This,attachmentFileListSize) (This)->lpVtbl->put_AttachmentFileListSize(This,attachmentFileListSize)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmActionEventLog
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmActionEmail2_QueryInterface(IFsrmActionEmail2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmActionEmail2_AddRef(IFsrmActionEmail2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmActionEmail2_Release(IFsrmActionEmail2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmActionEmail2_GetTypeInfoCount(IFsrmActionEmail2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_GetTypeInfo(IFsrmActionEmail2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_GetIDsOfNames(IFsrmActionEmail2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_Invoke(IFsrmActionEmail2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmAction methods ***/
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_Id(IFsrmActionEmail2* This,FSRM_OBJECT_ID *id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_ActionType(IFsrmActionEmail2* This,FsrmActionType *actionType) {
+    return This->lpVtbl->get_ActionType(This,actionType);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_RunLimitInterval(IFsrmActionEmail2* This,LONG *minutes) {
+    return This->lpVtbl->get_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_put_RunLimitInterval(IFsrmActionEmail2* This,LONG minutes) {
+    return This->lpVtbl->put_RunLimitInterval(This,minutes);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_Delete(IFsrmActionEmail2* This) {
+    return This->lpVtbl->Delete(This);
+}
+/*** IFsrmActionEmail methods ***/
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_MailFrom(IFsrmActionEmail2* This,BSTR *mailFrom) {
+    return This->lpVtbl->get_MailFrom(This,mailFrom);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_put_MailFrom(IFsrmActionEmail2* This,BSTR mailFrom) {
+    return This->lpVtbl->put_MailFrom(This,mailFrom);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_MailReplyTo(IFsrmActionEmail2* This,BSTR *mailReplyTo) {
+    return This->lpVtbl->get_MailReplyTo(This,mailReplyTo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_put_MailReplyTo(IFsrmActionEmail2* This,BSTR mailReplyTo) {
+    return This->lpVtbl->put_MailReplyTo(This,mailReplyTo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_MailTo(IFsrmActionEmail2* This,BSTR *mailTo) {
+    return This->lpVtbl->get_MailTo(This,mailTo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_put_MailTo(IFsrmActionEmail2* This,BSTR mailTo) {
+    return This->lpVtbl->put_MailTo(This,mailTo);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_MailCc(IFsrmActionEmail2* This,BSTR *mailCc) {
+    return This->lpVtbl->get_MailCc(This,mailCc);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_put_MailCc(IFsrmActionEmail2* This,BSTR mailCc) {
+    return This->lpVtbl->put_MailCc(This,mailCc);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_MailBcc(IFsrmActionEmail2* This,BSTR *mailBcc) {
+    return This->lpVtbl->get_MailBcc(This,mailBcc);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_put_MailBcc(IFsrmActionEmail2* This,BSTR mailBcc) {
+    return This->lpVtbl->put_MailBcc(This,mailBcc);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_MailSubject(IFsrmActionEmail2* This,BSTR *mailSubject) {
+    return This->lpVtbl->get_MailSubject(This,mailSubject);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_put_MailSubject(IFsrmActionEmail2* This,BSTR mailSubject) {
+    return This->lpVtbl->put_MailSubject(This,mailSubject);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_MessageText(IFsrmActionEmail2* This,BSTR *messageText) {
+    return This->lpVtbl->get_MessageText(This,messageText);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_put_MessageText(IFsrmActionEmail2* This,BSTR messageText) {
+    return This->lpVtbl->put_MessageText(This,messageText);
+}
+/*** IFsrmActionEmail2 methods ***/
+static FORCEINLINE HRESULT IFsrmActionEmail2_get_AttachmentFileListSize(IFsrmActionEmail2* This,LONG *attachmentFileListSize) {
+    return This->lpVtbl->get_AttachmentFileListSize(This,attachmentFileListSize);
+}
+static FORCEINLINE HRESULT IFsrmActionEmail2_put_AttachmentFileListSize(IFsrmActionEmail2* This,LONG attachmentFileListSize) {
+    return This->lpVtbl->put_AttachmentFileListSize(This,attachmentFileListSize);
+}
 #endif
-DECLARE_INTERFACE_(IFsrmActionEventLog,IFsrmAction)
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail2_get_AttachmentFileListSize_Proxy(
+    IFsrmActionEmail2* This,
+    LONG *attachmentFileListSize);
+void __RPC_STUB IFsrmActionEmail2_get_AttachmentFileListSize_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmActionEmail2_put_AttachmentFileListSize_Proxy(
+    IFsrmActionEmail2* This,
+    LONG attachmentFileListSize);
+void __RPC_STUB IFsrmActionEmail2_put_AttachmentFileListSize_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFsrmActionEmail2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IFsrmMutableCollection interface
+ */
+#ifndef __IFsrmMutableCollection_INTERFACE_DEFINED__
+#define __IFsrmMutableCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IFsrmMutableCollection, 0x1bb617b8, 0x3886, 0x49dc, 0xaf,0x82, 0xa6,0xc9,0x0f,0xa3,0x5d,0xda);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1bb617b8-3886-49dc-af82-a6c90fa35dda")
+IFsrmMutableCollection : public IFsrmCollection
 {
+    virtual HRESULT STDMETHODCALLTYPE Add(
+        VARIANT item) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Remove(
+        LONG index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveById(
+        FSRM_OBJECT_ID id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IFsrmMutableCollection **collection) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFsrmMutableCollection, 0x1bb617b8, 0x3886, 0x49dc, 0xaf,0x82, 0xa6,0xc9,0x0f,0xa3,0x5d,0xda)
+#endif
+#else
+typedef struct IFsrmMutableCollectionVtbl {
     BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFsrmMutableCollection* This,
+        REFIID riid,
+        void **ppvObject);
 
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFsrmMutableCollection* This);
 
-    /* IFsrmAction methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_ActionType)(THIS_ FsrmActionType *actionType) PURE;
-    STDMETHOD_(HRESULT,put_RunLimitInterval)(THIS_ __LONG32 minutes) PURE;
-    STDMETHOD_(HRESULT,get_RunLimitInterval)(THIS_ __LONG32 *minutes) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFsrmMutableCollection* This);
 
-    /* IFsrmActionEventLog methods */
-    STDMETHOD_(HRESULT,get_EventType)(THIS_ FsrmEventType *eventType) PURE;
-    STDMETHOD_(HRESULT,put_EventType)(THIS_ FsrmEventType eventType) PURE;
-    STDMETHOD_(HRESULT,get_MessageText)(THIS_ BSTR *messageText) PURE;
-    STDMETHOD_(HRESULT,put_MessageText)(THIS_ BSTR messageText) PURE;
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFsrmMutableCollection* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFsrmMutableCollection* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFsrmMutableCollection* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFsrmMutableCollection* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFsrmCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IFsrmMutableCollection* This,
+        IUnknown **unknown);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IFsrmMutableCollection* This,
+        LONG index,
+        VARIANT *item);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        IFsrmMutableCollection* This,
+        LONG *count);
+
+    HRESULT (STDMETHODCALLTYPE *get_State)(
+        IFsrmMutableCollection* This,
+        FsrmCollectionState *state);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IFsrmMutableCollection* This);
+
+    HRESULT (STDMETHODCALLTYPE *WaitForCompletion)(
+        IFsrmMutableCollection* This,
+        LONG waitSeconds,
+        VARIANT_BOOL *completed);
+
+    HRESULT (STDMETHODCALLTYPE *GetById)(
+        IFsrmMutableCollection* This,
+        FSRM_OBJECT_ID id,
+        VARIANT *entry);
+
+    /*** IFsrmMutableCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        IFsrmMutableCollection* This,
+        VARIANT item);
+
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        IFsrmMutableCollection* This,
+        LONG index);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveById)(
+        IFsrmMutableCollection* This,
+        FSRM_OBJECT_ID id);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IFsrmMutableCollection* This,
+        IFsrmMutableCollection **collection);
 
     END_INTERFACE
+} IFsrmMutableCollectionVtbl;
+interface IFsrmMutableCollection {
+    CONST_VTBL IFsrmMutableCollectionVtbl* lpVtbl;
 };
+
 #ifdef COBJMACROS
-#define IFsrmActionEventLog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmActionEventLog_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmActionEventLog_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmActionEventLog_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmActionEventLog_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmActionEventLog_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmActionEventLog_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmActionEventLog_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmActionEventLog_get_ActionType(This,actionType) (This)->lpVtbl->get_ActionType(This,actionType)
-#define IFsrmActionEventLog_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
-#define IFsrmActionEventLog_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
-#define IFsrmActionEventLog_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmActionEventLog_get_EventType(This,eventType) (This)->lpVtbl->get_EventType(This,eventType)
-#define IFsrmActionEventLog_put_EventType(This,eventType) (This)->lpVtbl->put_EventType(This,eventType)
-#define IFsrmActionEventLog_get_MessageText(This,messageText) (This)->lpVtbl->get_MessageText(This,messageText)
-#define IFsrmActionEventLog_put_MessageText(This,messageText) (This)->lpVtbl->put_MessageText(This,messageText)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmActionReport
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmActionReport,IFsrmAction)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmAction methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_ActionType)(THIS_ FsrmActionType *actionType) PURE;
-    STDMETHOD_(HRESULT,put_RunLimitInterval)(THIS_ __LONG32 minutes) PURE;
-    STDMETHOD_(HRESULT,get_RunLimitInterval)(THIS_ __LONG32 *minutes) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-
-    /* IFsrmActionReport methods */
-    STDMETHOD_(HRESULT,get_ReportTypes)(THIS_ SAFEARRAY **reportTypes) PURE;
-    STDMETHOD_(HRESULT,put_ReportTypes)(THIS_ SAFEARRAY *reportTypes) PURE;
-    STDMETHOD_(HRESULT,get_MailTo)(THIS_ BSTR *mailTo) PURE;
-    STDMETHOD_(HRESULT,put_MailTo)(THIS_ BSTR mailTo) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmActionReport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmActionReport_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmActionReport_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmActionReport_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmActionReport_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmActionReport_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmActionReport_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmActionReport_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmActionReport_get_ActionType(This,actionType) (This)->lpVtbl->get_ActionType(This,actionType)
-#define IFsrmActionReport_put_RunLimitInterval(This,minutes) (This)->lpVtbl->put_RunLimitInterval(This,minutes)
-#define IFsrmActionReport_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
-#define IFsrmActionReport_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmActionReport_get_ReportTypes(This,reportTypes) (This)->lpVtbl->get_ReportTypes(This,reportTypes)
-#define IFsrmActionReport_put_ReportTypes(This,reportTypes) (This)->lpVtbl->put_ReportTypes(This,reportTypes)
-#define IFsrmActionReport_get_MailTo(This,mailTo) (This)->lpVtbl->get_MailTo(This,mailTo)
-#define IFsrmActionReport_put_MailTo(This,mailTo) (This)->lpVtbl->put_MailTo(This,mailTo)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmCollection
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmCollection,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmCollection methods */
-    STDMETHOD_(HRESULT,get__NewEnum)(THIS_ IUnknown **unknown) PURE;
-    STDMETHOD_(HRESULT,get_Item)(THIS_ __LONG32 index,VARIANT *item) PURE;
-    STDMETHOD_(HRESULT,get_Count)(THIS_ __LONG32 *count) PURE;
-    STDMETHOD_(HRESULT,get_State)(THIS_ FsrmCollectionState *state) PURE;
-    STDMETHOD_(HRESULT,Cancel)(THIS) PURE;
-    STDMETHOD_(HRESULT,GetById)(THIS_ FSRM_OBJECT_ID id,VARIANT *entry) PURE;
-    STDMETHOD_(HRESULT,WaitForCompletion)(THIS_ __LONG32 waitSeconds,VARIANT_BOOL *completed) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmCollection_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmCollection_get__NewEnum(This,unknown) (This)->lpVtbl->get__NewEnum(This,unknown)
-#define IFsrmCollection_get_Item(This,index,item) (This)->lpVtbl->get_Item(This,index,item)
-#define IFsrmCollection_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
-#define IFsrmCollection_get_State(This,state) (This)->lpVtbl->get_State(This,state)
-#define IFsrmCollection_Cancel() (This)->lpVtbl->Cancel(This)
-#define IFsrmCollection_GetById(This,id,entry) (This)->lpVtbl->GetById(This,id,entry)
-#define IFsrmCollection_WaitForCompletion(This,waitSeconds,completed) (This)->lpVtbl->WaitForCompletion(This,waitSeconds,completed)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmDerivedObjectsResult
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmDerivedObjectsResult,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmDerivedObjectsResult methods */
-    STDMETHOD_(HRESULT,get_DerivedObjects)(THIS_ IFsrmCollection **derivedObjects) PURE;
-    STDMETHOD_(HRESULT,get_Results)(THIS_ IFsrmCollection **results) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmDerivedObjectsResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmDerivedObjectsResult_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmDerivedObjectsResult_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmDerivedObjectsResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmDerivedObjectsResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmDerivedObjectsResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmDerivedObjectsResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmDerivedObjectsResult_get_DerivedObjects(This,derivedObjects) (This)->lpVtbl->get_DerivedObjects(This,derivedObjects)
-#define IFsrmDerivedObjectsResult_get_Results(This,results) (This)->lpVtbl->get_Results(This,results)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmObject
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmObject,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmObject methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_Description)(THIS_ BSTR *description) PURE;
-    STDMETHOD_(HRESULT,put_Description)(THIS_ BSTR description) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-    STDMETHOD_(HRESULT,Commit)(THIS) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmObject_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmObject_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmObject_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmObject_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmObject_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmObject_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmObject_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmObject_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
-#define IFsrmObject_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
-#define IFsrmObject_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmObject_Commit() (This)->lpVtbl->Commit(This)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmMutableCollection
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmMutableCollection,IFsrmCollection)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmCollection methods */
-    STDMETHOD_(HRESULT,get__NewEnum)(THIS_ IUnknown **unknown) PURE;
-    STDMETHOD_(HRESULT,get_Item)(THIS_ __LONG32 index,VARIANT *item) PURE;
-    STDMETHOD_(HRESULT,get_Count)(THIS_ __LONG32 *count) PURE;
-    STDMETHOD_(HRESULT,get_State)(THIS_ FsrmCollectionState *state) PURE;
-    STDMETHOD_(HRESULT,Cancel)(THIS) PURE;
-    STDMETHOD_(HRESULT,GetById)(THIS_ FSRM_OBJECT_ID id,VARIANT *entry) PURE;
-    STDMETHOD_(HRESULT,WaitForCompletion)(THIS_ __LONG32 waitSeconds,VARIANT_BOOL *completed) PURE;
-
-    /* IFsrmMutableCollection methods */
-    STDMETHOD_(HRESULT,Add)(THIS_ VARIANT item) PURE;
-    STDMETHOD_(HRESULT,Remove)(THIS_ __LONG32 index) PURE;
-    STDMETHOD_(HRESULT,RemoveById)(THIS_ FSRM_OBJECT_ID id) PURE;
-    STDMETHOD_(HRESULT,Clone)(THIS_ IFsrmMutableCollection **collection) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IFsrmMutableCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IFsrmMutableCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IFsrmMutableCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IFsrmMutableCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IFsrmMutableCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IFsrmMutableCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IFsrmMutableCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IIFsrmMutableCollection_get__NewEnum(This,unknown) (This)->lpVtbl->get__NewEnum(This,unknown)
+/*** IFsrmCollection methods ***/
+#define IFsrmMutableCollection_get__NewEnum(This,unknown) (This)->lpVtbl->get__NewEnum(This,unknown)
 #define IFsrmMutableCollection_get_Item(This,index,item) (This)->lpVtbl->get_Item(This,index,item)
 #define IFsrmMutableCollection_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
 #define IFsrmMutableCollection_get_State(This,state) (This)->lpVtbl->get_State(This,state)
-#define IFsrmMutableCollection_Cancel() (This)->lpVtbl->Cancel(This)
-#define IFsrmMutableCollection_GetById(This,id,entry) (This)->lpVtbl->GetById(This,id,entry)
+#define IFsrmMutableCollection_Cancel(This) (This)->lpVtbl->Cancel(This)
 #define IFsrmMutableCollection_WaitForCompletion(This,waitSeconds,completed) (This)->lpVtbl->WaitForCompletion(This,waitSeconds,completed)
+#define IFsrmMutableCollection_GetById(This,id,entry) (This)->lpVtbl->GetById(This,id,entry)
+/*** IFsrmMutableCollection methods ***/
 #define IFsrmMutableCollection_Add(This,item) (This)->lpVtbl->Add(This,item)
 #define IFsrmMutableCollection_Remove(This,index) (This)->lpVtbl->Remove(This,index)
 #define IFsrmMutableCollection_RemoveById(This,id) (This)->lpVtbl->RemoveById(This,id)
 #define IFsrmMutableCollection_Clone(This,collection) (This)->lpVtbl->Clone(This,collection)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmCommittableCollection
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFsrmMutableCollection_QueryInterface(IFsrmMutableCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFsrmMutableCollection_AddRef(IFsrmMutableCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFsrmMutableCollection_Release(IFsrmMutableCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFsrmMutableCollection_GetTypeInfoCount(IFsrmMutableCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_GetTypeInfo(IFsrmMutableCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_GetIDsOfNames(IFsrmMutableCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_Invoke(IFsrmMutableCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFsrmCollection methods ***/
+static FORCEINLINE HRESULT IFsrmMutableCollection_get__NewEnum(IFsrmMutableCollection* This,IUnknown **unknown) {
+    return This->lpVtbl->get__NewEnum(This,unknown);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_get_Item(IFsrmMutableCollection* This,LONG index,VARIANT *item) {
+    return This->lpVtbl->get_Item(This,index,item);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_get_Count(IFsrmMutableCollection* This,LONG *count) {
+    return This->lpVtbl->get_Count(This,count);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_get_State(IFsrmMutableCollection* This,FsrmCollectionState *state) {
+    return This->lpVtbl->get_State(This,state);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_Cancel(IFsrmMutableCollection* This) {
+    return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_WaitForCompletion(IFsrmMutableCollection* This,LONG waitSeconds,VARIANT_BOOL *completed) {
+    return This->lpVtbl->WaitForCompletion(This,waitSeconds,completed);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_GetById(IFsrmMutableCollection* This,FSRM_OBJECT_ID id,VARIANT *entry) {
+    return This->lpVtbl->GetById(This,id,entry);
+}
+/*** IFsrmMutableCollection methods ***/
+static FORCEINLINE HRESULT IFsrmMutableCollection_Add(IFsrmMutableCollection* This,VARIANT item) {
+    return This->lpVtbl->Add(This,item);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_Remove(IFsrmMutableCollection* This,LONG index) {
+    return This->lpVtbl->Remove(This,index);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_RemoveById(IFsrmMutableCollection* This,FSRM_OBJECT_ID id) {
+    return This->lpVtbl->RemoveById(This,id);
+}
+static FORCEINLINE HRESULT IFsrmMutableCollection_Clone(IFsrmMutableCollection* This,IFsrmMutableCollection **collection) {
+    return This->lpVtbl->Clone(This,collection);
+}
 #endif
-DECLARE_INTERFACE_(IFsrmCommittableCollection,IFsrmMutableCollection)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmCollection methods */
-    STDMETHOD_(HRESULT,get__NewEnum)(THIS_ IUnknown **unknown) PURE;
-    STDMETHOD_(HRESULT,get_Item)(THIS_ __LONG32 index,VARIANT *item) PURE;
-    STDMETHOD_(HRESULT,get_Count)(THIS_ __LONG32 *count) PURE;
-    STDMETHOD_(HRESULT,get_State)(THIS_ FsrmCollectionState *state) PURE;
-    STDMETHOD_(HRESULT,Cancel)(THIS) PURE;
-    STDMETHOD_(HRESULT,GetById)(THIS_ FSRM_OBJECT_ID id,VARIANT *entry) PURE;
-    STDMETHOD_(HRESULT,WaitForCompletion)(THIS_ __LONG32 waitSeconds,VARIANT_BOOL *completed) PURE;
-
-    /* IFsrmMutableCollection methods */
-    STDMETHOD_(HRESULT,Add)(THIS_ VARIANT item) PURE;
-    STDMETHOD_(HRESULT,Remove)(THIS_ __LONG32 index) PURE;
-    STDMETHOD_(HRESULT,RemoveById)(THIS_ FSRM_OBJECT_ID id) PURE;
-    STDMETHOD_(HRESULT,Clone)(THIS_ IFsrmMutableCollection **collection) PURE;
-
-    /* IFsrmCommittableCollection methods */
-    STDMETHOD_(HRESULT,Commit)(THIS_ FsrmCommitOptions options,IFsrmCollection** results) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmCommittableCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmCommittableCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmCommittableCollection_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmCommittableCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmCommittableCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmCommittableCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmCommittableCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmCommittableCollection_get__NewEnum(This,unknown) (This)->lpVtbl->get__NewEnum(This,unknown)
-#define IFsrmCommittableCollection_get_Item(This,index,item) (This)->lpVtbl->get_Item(This,index,item)
-#define IFsrmCommittableCollection_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
-#define IFsrmCommittableCollection_get_State(This,state) (This)->lpVtbl->get_State(This,state)
-#define IFsrmCommittableCollection_Cancel() (This)->lpVtbl->Cancel(This)
-#define IFsrmCommittableCollection_GetById(This,id,entry) (This)->lpVtbl->GetById(This,id,entry)
-#define IFsrmCommittableCollection_WaitForCompletion(This,waitSeconds,completed) (This)->lpVtbl->WaitForCompletion(This,waitSeconds,completed)
-#define IFsrmCommittableCollection_Add(This,item) (This)->lpVtbl->Add(This,item)
-#define IFsrmCommittableCollection_Remove(This,index) (This)->lpVtbl->Remove(This,index)
-#define IFsrmCommittableCollection_RemoveById(This,id) (This)->lpVtbl->RemoveById(This,id)
-#define IFsrmCommittableCollection_Clone(This,collection) (This)->lpVtbl->Clone(This,collection)
-#define IFsrmCommittableCollection_Commit(This,options,results) (This)->lpVtbl->Commit(This,options,results)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmExportImport
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
 #endif
-DECLARE_INTERFACE_(IFsrmExportImport,IDispatch)
-{
-    BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmExportImport methods */
-    STDMETHOD_(HRESULT,ExportFileGroups)(THIS_ BSTR filePath,VARIANT *fileGroupNamesSafeArray,BSTR remoteHost) PURE;
-    STDMETHOD_(HRESULT,ImportFileGroups)(THIS_ BSTR filePath,VARIANT *fileGroupNamesSafeArray,BSTR remoteHost,IFsrmCommittableCollection **fileGroups) PURE;
-    STDMETHOD_(HRESULT,ExportFileScreenTemplates)(THIS_ BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost) PURE;
-    STDMETHOD_(HRESULT,ImportFileScreenTemplates)(THIS_ BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost,IFsrmCommittableCollection **templates) PURE;
-    STDMETHOD_(HRESULT,ExportQuotaTemplates)(THIS_ BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost) PURE;
-    STDMETHOD_(HRESULT,ImportQuotaTemplates)(THIS_ BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost,IFsrmCommittableCollection **templates) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmExportImport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmExportImport_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmExportImport_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmCommittableCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmCommittableCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmCommittableCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmCommittableCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmExportImport_ExportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost) (This)->lpVtbl->ExportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost)
-#define IFsrmExportImport_ImportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost,fileGroups) (This)->lpVtbl->ImportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost,fileGroups)
-#define IFsrmExportImport_ExportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost) (This)->lpVtbl->ExportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost)
-#define IFsrmExportImport_ImportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates) (This)->lpVtbl->ImportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates)
-#define IFsrmExportImport_ExportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost) (This)->lpVtbl->ExportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost)
-#define IFsrmExportImport_ImportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates) (This)->lpVtbl->ImportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmFileManagementJob
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
 #endif
-DECLARE_INTERFACE_(IFsrmFileManagementJob,IFsrmObject)
-{
-    BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+HRESULT STDMETHODCALLTYPE IFsrmMutableCollection_Add_Proxy(
+    IFsrmMutableCollection* This,
+    VARIANT item);
+void __RPC_STUB IFsrmMutableCollection_Add_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmMutableCollection_Remove_Proxy(
+    IFsrmMutableCollection* This,
+    LONG index);
+void __RPC_STUB IFsrmMutableCollection_Remove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmMutableCollection_RemoveById_Proxy(
+    IFsrmMutableCollection* This,
+    FSRM_OBJECT_ID id);
+void __RPC_STUB IFsrmMutableCollection_RemoveById_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFsrmMutableCollection_Clone_Proxy(
+    IFsrmMutableCollection* This,
+    IFsrmMutableCollection **collection);
+void __RPC_STUB IFsrmMutableCollection_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
 
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
+#endif  /* __IFsrmMutableCollection_INTERFACE_DEFINED__ */
 
-    /* IFsrmObject methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_Description)(THIS_ BSTR *description) PURE;
-    STDMETHOD_(HRESULT,put_Description)(THIS_ BSTR description) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-    STDMETHOD_(HRESULT,Commit)(THIS) PURE;
-
-    /* IFsrmFileManagementJob methods */
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *pName) PURE;
-    STDMETHOD_(HRESULT,put_Name)(THIS_ BSTR name) PURE;
-    STDMETHOD_(HRESULT,get_NamespaceRoots)(THIS_ SAFEARRAY *pNamespaceRoots) PURE;
-    STDMETHOD_(HRESULT,put_NamespaceRoots)(THIS_ SAFEARRAY namespaceRoots) PURE;
-    STDMETHOD_(HRESULT,get_Enabled)(THIS_ VARIANT_BOOL *pEnabled) PURE;
-    STDMETHOD_(HRESULT,put_Enabled)(THIS_ VARIANT_BOOL enabled) PURE;
-    STDMETHOD_(HRESULT,get_OperationType)(THIS_ FsrmFileManagementType *pOperationType) PURE;
-    STDMETHOD_(HRESULT,put_OperationType)(THIS_ FsrmFileManagementType operationType) PURE;
-    STDMETHOD_(HRESULT,get_ExpirationDirectory)(THIS_ BSTR *pExpirationDirectory) PURE;
-    STDMETHOD_(HRESULT,put_ExpirationDirectory)(THIS_ BSTR expirationDirectory) PURE;
-    STDMETHOD_(HRESULT,get_CustomAction)(THIS_ IFsrmActionCommand **pAction) PURE;
-    STDMETHOD_(HRESULT,get_Notifications)(THIS_ SAFEARRAY *pNotifications) PURE;
-    STDMETHOD_(HRESULT,get_Logging)(THIS_ __LONG32 *pLoggingFlags) PURE;
-    STDMETHOD_(HRESULT,put_Logging)(THIS_ __LONG32 loggingFlags) PURE;
-    STDMETHOD_(HRESULT,get_ReportEnabled)(THIS_ VARIANT_BOOL *pReportEnabled) PURE;
-    STDMETHOD_(HRESULT,put_ReportEnabled)(THIS_ VARIANT_BOOL reportEnabled) PURE;
-    STDMETHOD_(HRESULT,get_Formats)(THIS_ SAFEARRAY *pFormats) PURE;
-    STDMETHOD_(HRESULT,put_Formats)(THIS_ SAFEARRAY formats) PURE;
-    STDMETHOD_(HRESULT,get_MailTo)(THIS_ BSTR *pMailTo) PURE;
-    STDMETHOD_(HRESULT,put_MailTo)(THIS_ BSTR mailTo) PURE;
-    STDMETHOD_(HRESULT,get_DaysSinceFileCreated)(THIS_ __LONG32 *pDaysSinceCreation) PURE;
-    STDMETHOD_(HRESULT,put_DaysSinceFileCreated)(THIS_ __LONG32 daysSinceCreation) PURE;
-    STDMETHOD_(HRESULT,get_DaysSinceFileLastAccessed)(THIS_ __LONG32 *pDaysSinceAccess) PURE;
-    STDMETHOD_(HRESULT,put_DaysSinceFileLastAccessed)(THIS_ __LONG32 daysSinceAccess) PURE;
-    STDMETHOD_(HRESULT,get_DaysSinceFileLastModified)(THIS_ __LONG32 *pDaysSinceModify) PURE;
-    STDMETHOD_(HRESULT,put_DaysSinceFileLastModified)(THIS_ __LONG32 daysSinceModify) PURE;
-    STDMETHOD_(HRESULT,get_PropertyConditions)(THIS_ IFsrmCollection **pPropertyConditions) PURE;
-    STDMETHOD_(HRESULT,get_FromDate)(THIS_ DATE *pFromDate) PURE;
-    STDMETHOD_(HRESULT,put_FromDate)(THIS_ DATE fromDate) PURE;
-    STDMETHOD_(HRESULT,get_Task)(THIS_ BSTR *taskName) PURE;
-    STDMETHOD_(HRESULT,put_Task)(THIS_ BSTR taskName) PURE;
-    STDMETHOD_(HRESULT,get_Parameters)(THIS_ SAFEARRAY *pParameters) PURE;
-    STDMETHOD_(HRESULT,put_Parameters)(THIS_ SAFEARRAY parameters) PURE;
-    STDMETHOD_(HRESULT,get_RunningStatus)(THIS_ FsrmReportRunningStatus *pRunningStatus) PURE;
-    STDMETHOD_(HRESULT,get_LastError)(THIS_ BSTR *lastError) PURE;
-    STDMETHOD_(HRESULT,get_LastReportPathWithoutExtension)(THIS_ BSTR *pPath) PURE;
-    STDMETHOD_(HRESULT,get_LastRun)(THIS_ DATE *lastRun) PURE;
-    STDMETHOD_(HRESULT,get_FileNamePattern)(THIS_ BSTR *pFileNamePattern) PURE;
-    STDMETHOD_(HRESULT,put_FileNamePattern)(THIS_ BSTR fileNamePattern) PURE;
-    STDMETHOD_(HRESULT,Run)(THIS_ FsrmReportGenerationContext context) PURE;
-    STDMETHOD_(HRESULT,WaitForCompletion)(THIS_ __LONG32 waitSeconds,VARIANT_BOOL *completed) PURE;
-    STDMETHOD_(HRESULT,Cancel)(THIS) PURE;
-    STDMETHOD_(HRESULT,AddNotification)(THIS_ __LONG32 days) PURE;
-    STDMETHOD_(HRESULT,DeleteNotification)(THIS_ __LONG32 days) PURE;
-    STDMETHOD_(HRESULT,ModifyNotification)(THIS_ __LONG32 days,__LONG32 newDays) PURE;
-    STDMETHOD_(HRESULT,CreateNotificationAction)(THIS_ __LONG32 days,FsrmActionType actionType,IFsrmAction **action) PURE;
-    STDMETHOD_(HRESULT,EnumNotificationActions)(THIS_ __LONG32 days,IFsrmCollection **actions) PURE;
-    STDMETHOD_(HRESULT,CreatePropertyCondition)(THIS_ BSTR name,IFsrmPropertyCondition **pPropertyCondition) PURE;
-    STDMETHOD_(HRESULT,CreateCustomAction)(THIS_ IFsrmActionCommand **customAction) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmFileManagementJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmFileManagementJob_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmFileManagementJob_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmFileManagementJob_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmFileManagementJob_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmFileManagementJob_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmFileManagementJob_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmFileManagementJob_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmFileManagementJob_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
-#define IFsrmFileManagementJob_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
-#define IFsrmFileManagementJob_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmFileManagementJob_Commit() (This)->lpVtbl->Commit(This)
-#define IFsrmFileManagementJob_get_Name(This,pName) (This)->lpVtbl->get_Name(This,pName)
-#define IFsrmFileManagementJob_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
-#define IFsrmFileManagementJob_get_NamespaceRoots(This,pNamespaceRoots) (This)->lpVtbl->get_NamespaceRoots(This,pNamespaceRoots)
-#define IFsrmFileManagementJob_put_NamespaceRoots(This,namespaceRoots) (This)->lpVtbl->put_NamespaceRoots(This,namespaceRoots)
-#define IFsrmFileManagementJob_get_Enabled(This,pEnabled) (This)->lpVtbl->get_Enabled(This,pEnabled)
-#define IFsrmFileManagementJob_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
-#define IFsrmFileManagementJob_get_OperationType(This,pOperationType) (This)->lpVtbl->get_OperationType(This,pOperationType)
-#define IFsrmFileManagementJob_put_OperationType(This,operationType) (This)->lpVtbl->put_OperationType(This,operationType)
-#define IFsrmFileManagementJob_get_ExpirationDirectory(This,pExpirationDirectory) (This)->lpVtbl->get_ExpirationDirectory(This,pExpirationDirectory)
-#define IFsrmFileManagementJob_put_ExpirationDirectory(This,expirationDirectory) (This)->lpVtbl->put_ExpirationDirectory(This,expirationDirectory)
-#define IFsrmFileManagementJob_get_CustomAction(This,pAction) (This)->lpVtbl->get_CustomAction(This,pAction)
-#define IFsrmFileManagementJob_get_Notifications(This,pNotifications) (This)->lpVtbl->get_Notifications(This,pNotifications)
-#define IFsrmFileManagementJob_get_Logging(This,pLoggingFlags) (This)->lpVtbl->get_Logging(This,pLoggingFlags)
-#define IFsrmFileManagementJob_put_Logging(This,loggingFlags) (This)->lpVtbl->put_Logging(This,loggingFlags)
-#define IFsrmFileManagementJob_get_ReportEnabled(This,pReportEnabled) (This)->lpVtbl->get_ReportEnabled(This,pReportEnabled)
-#define IFsrmFileManagementJob_put_ReportEnabled(This,reportEnabled) (This)->lpVtbl->put_ReportEnabled(This,reportEnabled)
-#define IFsrmFileManagementJob_get_Formats(This,pFormats) (This)->lpVtbl->get_Formats(This,pFormats)
-#define IFsrmFileManagementJob_put_Formats(This,formats) (This)->lpVtbl->put_Formats(This,formats)
-#define IFsrmFileManagementJob_get_MailTo(This,pMailTo) (This)->lpVtbl->get_MailTo(This,pMailTo)
-#define IFsrmFileManagementJob_put_MailTo(This,mailTo) (This)->lpVtbl->put_MailTo(This,mailTo)
-#define IFsrmFileManagementJob_get_DaysSinceFileCreated(This,pDaysSinceCreation) (This)->lpVtbl->get_DaysSinceFileCreated(This,pDaysSinceCreation)
-#define IFsrmFileManagementJob_put_DaysSinceFileCreated(This,daysSinceCreation) (This)->lpVtbl->put_DaysSinceFileCreated(This,daysSinceCreation)
-#define IFsrmFileManagementJob_get_DaysSinceFileLastAccessed(This,pDaysSinceAccess) (This)->lpVtbl->get_DaysSinceFileLastAccessed(This,pDaysSinceAccess)
-#define IFsrmFileManagementJob_put_DaysSinceFileLastAccessed(This,daysSinceAccess) (This)->lpVtbl->put_DaysSinceFileLastAccessed(This,daysSinceAccess)
-#define IFsrmFileManagementJob_get_DaysSinceFileLastModified(This,pDaysSinceModify) (This)->lpVtbl->get_DaysSinceFileLastModified(This,pDaysSinceModify)
-#define IFsrmFileManagementJob_put_DaysSinceFileLastModified(This,daysSinceModify) (This)->lpVtbl->put_DaysSinceFileLastModified(This,daysSinceModify)
-#define IFsrmFileManagementJob_get_PropertyConditions(This,pPropertyConditions) (This)->lpVtbl->get_PropertyConditions(This,pPropertyConditions)
-#define IFsrmFileManagementJob_get_FromDate(This,pFromDate) (This)->lpVtbl->get_FromDate(This,pFromDate)
-#define IFsrmFileManagementJob_put_FromDate(This,fromDate) (This)->lpVtbl->put_FromDate(This,fromDate)
-#define IFsrmFileManagementJob_get_Task(This,taskName) (This)->lpVtbl->get_Task(This,taskName)
-#define IFsrmFileManagementJob_put_Task(This,taskName) (This)->lpVtbl->put_Task(This,taskName)
-#define IFsrmFileManagementJob_get_Parameters(This,pParameters) (This)->lpVtbl->get_Parameters(This,pParameters)
-#define IFsrmFileManagementJob_put_Parameters(This,parameters) (This)->lpVtbl->put_Parameters(This,parameters)
-#define IFsrmFileManagementJob_get_RunningStatus(This,pRunningStatus) (This)->lpVtbl->get_RunningStatus(This,pRunningStatus)
-#define IFsrmFileManagementJob_get_LastError(This,lastError) (This)->lpVtbl->get_LastError(This,lastError)
-#define IFsrmFileManagementJob_get_LastReportPathWithoutExtension(This,pPath) (This)->lpVtbl->get_LastReportPathWithoutExtension(This,pPath)
-#define IFsrmFileManagementJob_get_LastRun(This,lastRun) (This)->lpVtbl->get_LastRun(This,lastRun)
-#define IFsrmFileManagementJob_get_FileNamePattern(This,pFileNamePattern) (This)->lpVtbl->get_FileNamePattern(This,pFileNamePattern)
-#define IFsrmFileManagementJob_put_FileNamePattern(This,fileNamePattern) (This)->lpVtbl->put_FileNamePattern(This,fileNamePattern)
-#define IFsrmFileManagementJob_Run(This,context) (This)->lpVtbl->Run(This,context)
-#define IFsrmFileManagementJob_WaitForCompletion(This,waitSeconds,completed) (This)->lpVtbl->WaitForCompletion(This,waitSeconds,completed)
-#define IFsrmFileManagementJob_Cancel() (This)->lpVtbl->Cancel(This)
-#define IFsrmFileManagementJob_AddNotification(This,days) (This)->lpVtbl->AddNotification(This,days)
-#define IFsrmFileManagementJob_DeleteNotification(This,days) (This)->lpVtbl->DeleteNotification(This,days)
-#define IFsrmFileManagementJob_ModifyNotification(This,days,newDays) (This)->lpVtbl->ModifyNotification(This,days,newDays)
-#define IFsrmFileManagementJob_CreateNotificationAction(This,days,actionType,action) (This)->lpVtbl->CreateNotificationAction(This,days,actionType,action)
-#define IFsrmFileManagementJob_EnumNotificationActions(This,days,actions) (This)->lpVtbl->EnumNotificationActions(This,days,actions)
-#define IFsrmFileManagementJob_CreatePropertyCondition(This,name,pPropertyCondition) (This)->lpVtbl->CreatePropertyCondition(This,name,pPropertyCondition)
-#define IFsrmFileManagementJob_CreateCustomAction(This,customAction) (This)->lpVtbl->CreateCustomAction(This,customAction)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmPathMapper
-DECLARE_INTERFACE_(IFsrmPathMapper,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmPathMapper methods */
-    STDMETHOD_(HRESULT,GetSharePathsForLocalPath)(THIS_ BSTR localPath,SAFEARRAY *sharePaths) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmPathMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmPathMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmPathMapper_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmPathMapper_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmPathMapper_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmPathMapper_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmPathMapper_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmPathMapper_GetSharePathsForLocalPath(This,localPath,sharePaths) (This)->lpVtbl->GetSharePathsForLocalPath(This,localPath,sharePaths)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmSetting
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
 #endif
-DECLARE_INTERFACE_(IFsrmSetting,IDispatch)
-{
-    BEGIN_INTERFACE
+/* Begin additional prototypes for all interfaces */
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
+void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
 
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
+/* End additional prototypes */
 
-    /* IFsrmSetting methods */
-    STDMETHOD_(HRESULT,get_SmtpServer)(THIS_ BSTR *smtpServer) PURE;
-    STDMETHOD_(HRESULT,put_SmtpServer)(THIS_ BSTR smtpServer) PURE;
-    STDMETHOD_(HRESULT,get_MailFrom)(THIS_ BSTR *mailFrom) PURE;
-    STDMETHOD_(HRESULT,put_MailFrom)(THIS_ BSTR mailFrom) PURE;
-    STDMETHOD_(HRESULT,get_AdminEmail)(THIS_ BSTR *adminEmail) PURE;
-    STDMETHOD_(HRESULT,put_AdminEmail)(THIS_ BSTR adminEmail) PURE;
-    STDMETHOD_(HRESULT,get_DisableCommandLine)(THIS_ VARIANT_BOOL *disableCommandLine) PURE;
-    STDMETHOD_(HRESULT,put_DisableCommandLine)(THIS_ VARIANT_BOOL disableCommandLine) PURE;
-    STDMETHOD_(HRESULT,get_EnableScreeningAudit)(THIS_ VARIANT_BOOL *enableScreeningAudit) PURE;
-    STDMETHOD_(HRESULT,put_EnableScreeningAudit)(THIS_ VARIANT_BOOL enableScreeningAudit) PURE;
-    STDMETHOD_(HRESULT,EmailTest)(THIS_ BSTR mailTo) PURE;
-    STDMETHOD_(HRESULT,SetActionRunLimitInterval)(THIS_ FsrmActionType actionType,__LONG32 delayTimeMinutes) PURE;
-    STDMETHOD_(HRESULT,GetActionRunLimitInterval)(THIS_ FsrmActionType actionType,__LONG32 *delayTimeMinutes) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmSetting_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmSetting_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmSetting_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmSetting_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmSetting_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmSetting_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmSetting_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmSetting_VerifyNamespaces(This,namespacesSafeArray) (This)->lpVtbl->VerifyNamespaces(This,namespacesSafeArray)
-#define IFsrmSetting_CreateScheduleTask(This,taskName,namespacesSafeArray,serializedTask) (This)->lpVtbl->CreateScheduleTask(This,taskName,namespacesSafeArray,serializedTask)
-#define IFsrmSetting_ModifyScheduleTask(This,taskName,namespacesSafeArray,serializedTask) (This)->lpVtbl->ModifyScheduleTask(This,taskName,namespacesSafeArray,serializedTask)
-#define IFsrmSetting_DeleteScheduleTask(This,taskName) (This)->lpVtbl->DeleteScheduleTask(This,taskName)
-#define IFsrmSetting_get_SmtpServer(This,smtpServer) (This)->lpVtbl->get_SmtpServer(This,smtpServer)
-#define IFsrmSetting_put_SmtpServer(This,smtpServer) (This)->lpVtbl->put_SmtpServer(This,smtpServer)
-#define IFsrmSetting_get_MailFrom(This,mailFrom) (This)->lpVtbl->get_MailFrom(This,mailFrom)
-#define IFsrmSetting_put_MailFrom(This,mailFrom) (This)->lpVtbl->put_MailFrom(This,mailFrom)
-#define IFsrmSetting_get_AdminEmail(This,adminEmail) (This)->lpVtbl->get_AdminEmail(This,adminEmail)
-#define IFsrmSetting_put_AdminEmail(This,adminEmail) (This)->lpVtbl->put_AdminEmail(This,adminEmail)
-#define IFsrmSetting_get_DisableCommandLine(This,disableCommandLine) (This)->lpVtbl->get_DisableCommandLine(This,disableCommandLine)
-#define IFsrmSetting_put_DisableCommandLine(This,disableCommandLine) (This)->lpVtbl->put_DisableCommandLine(This,disableCommandLine)
-#define IFsrmSetting_get_EnableScreeningAudit(This,enableScreeningAudit) (This)->lpVtbl->get_EnableScreeningAudit(This,enableScreeningAudit)
-#define IFsrmSetting_put_EnableScreeningAudit(This,enableScreeningAudit) (This)->lpVtbl->put_EnableScreeningAudit(This,enableScreeningAudit)
-#define IFsrmSetting_EmailTest(This,mailTo) (This)->lpVtbl->EmailTest(This,mailTo)
-#define IFsrmSetting_SetActionRunLimitInterval(This,actionType,delayTimeMinutes) (This)->lpVtbl->SetActionRunLimitInterval(This,actionType,delayTimeMinutes)
-#define IFsrmSetting_GetActionRunLimitInterval(This,actionType,delayTimeMinutes) (This)->lpVtbl->GetActionRunLimitInterval(This,actionType,delayTimeMinutes)
-#endif /*COBJMACROS*/
-
-#endif /*(_WIN32_WINNT >= 0x0600)*/
-
-#if (_WIN32_WINNT >= 0x0601)
-
-#undef  INTERFACE
-#define INTERFACE IFsrmRule
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#ifdef __cplusplus
+}
 #endif
-DECLARE_INTERFACE_(IFsrmRule,IFsrmObject)
-{
-    BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmObject methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_Description)(THIS_ BSTR *description) PURE;
-    STDMETHOD_(HRESULT,put_Description)(THIS_ BSTR description) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-    STDMETHOD_(HRESULT,Commit)(THIS) PURE;
-
-    /* IFsrmRule methods */
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *pName) PURE;
-    STDMETHOD_(HRESULT,put_Name)(THIS_ BSTR name) PURE;
-    STDMETHOD_(HRESULT,get_RuleType)(THIS_ FsrmRuleType *pRuleType) PURE;
-    STDMETHOD_(HRESULT,get_ModuleDefinitionName)(THIS_ BSTR *pModuleDefinitionName) PURE;
-    STDMETHOD_(HRESULT,put_ModuleDefinitionName)(THIS_ BSTR moduleDefinitionName) PURE;
-    STDMETHOD_(HRESULT,get_NamespaceRoots)(THIS_ SAFEARRAY *namespaceRoots) PURE;
-    STDMETHOD_(HRESULT,put_NamespaceRoots)(THIS_ SAFEARRAY namespaceRoots) PURE;
-    STDMETHOD_(HRESULT,get_RuleFlags)(THIS_ __LONG32 *pRuleFlags) PURE;
-    STDMETHOD_(HRESULT,put_RuleFlags)(THIS_ __LONG32 ruleFlags) PURE;
-    STDMETHOD_(HRESULT,get_Parameters)(THIS_ SAFEARRAY *pParameters) PURE;
-    STDMETHOD_(HRESULT,put_Parameters)(THIS_ SAFEARRAY parameters) PURE;
-    STDMETHOD_(HRESULT,get_LastModified)(THIS_ VARIANT *pLastModified) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmRule_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmRule_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmRule_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmRule_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
-#define IFsrmRule_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
-#define IFsrmRule_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmRule_Commit() (This)->lpVtbl->Commit(This)
-#define IFsrmRule_get_Name(This,pName) (This)->lpVtbl->get_Name(This,pName)
-#define IFsrmRule_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
-#define IFsrmRule_get_RuleType(This,pRuleType) (This)->lpVtbl->get_RuleType(This,pRuleType)
-#define IFsrmRule_get_ModuleDefinitionName(This,pModuleDefinitionName) (This)->lpVtbl->get_ModuleDefinitionName(This,pModuleDefinitionName)
-#define IFsrmRule_put_ModuleDefinitionName(This,moduleDefinitionName) (This)->lpVtbl->put_ModuleDefinitionName(This,moduleDefinitionName)
-#define IFsrmRule_get_NamespaceRoots(This,namespaceRoots) (This)->lpVtbl->get_NamespaceRoots(This,namespaceRoots)
-#define IFsrmRule_put_NamespaceRoots(This,namespaceRoots) (This)->lpVtbl->put_NamespaceRoots(This,namespaceRoots)
-#define IFsrmRule_get_RuleFlags(This,pRuleFlags) (This)->lpVtbl->get_RuleFlags(This,pRuleFlags)
-#define IFsrmRule_put_RuleFlags(This,ruleFlags) (This)->lpVtbl->put_RuleFlags(This,ruleFlags)
-#define IFsrmRule_get_Parameters(This,pParameters) (This)->lpVtbl->get_Parameters(This,pParameters)
-#define IFsrmRule_put_Parameters(This,parameters) (This)->lpVtbl->put_Parameters(This,parameters)
-#define IFsrmRule_get_LastModified(This,pLastModified) (This)->lpVtbl->get_LastModified(This,pLastModified)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmClassificationManager
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmClassificationManager,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmClassificationManager methods */
-    STDMETHOD_(HRESULT,get_ClassificationReportFormats)(THIS_ SAFEARRAY *pFormats) PURE;
-    STDMETHOD_(HRESULT,put_ClassificationReportFormats)(THIS_ SAFEARRAY formats) PURE;
-    STDMETHOD_(HRESULT,get_Logging)(THIS_ __LONG32 *pLogging) PURE;
-    STDMETHOD_(HRESULT,put_Logging)(THIS_ __LONG32 logging) PURE;
-    STDMETHOD_(HRESULT,get_ClassificationReportMailTo)(THIS_ BSTR *pMailTo) PURE;
-    STDMETHOD_(HRESULT,put_ClassificationReportMailTo)(THIS_ BSTR mailTo) PURE;
-    STDMETHOD_(HRESULT,get_ClassificationReportEnabled)(THIS_ VARIANT_BOOL *pReportEnabled) PURE;
-    STDMETHOD_(HRESULT,put_ClassificationReportEnabled)(THIS_ VARIANT_BOOL reportEnabled) PURE;
-    STDMETHOD_(HRESULT,get_ClassificationLastReportPathWithoutExtension)(THIS_ BSTR *pLastReportPath) PURE;
-    STDMETHOD_(HRESULT,get_ClassificationLastError)(THIS_ BSTR *pLastError) PURE;
-    STDMETHOD_(HRESULT,get_ClassificationRunningStatus)(THIS_ FsrmReportRunningStatus *pRunningStatus) PURE;
-    STDMETHOD_(HRESULT,EnumPropertyDefinitions)(THIS_ FsrmEnumOptions options,IFsrmCollection **propertyDefinitions) PURE;
-    STDMETHOD_(HRESULT,CreatePropertyDefinition)(THIS_ IFsrmPropertyDefinition **propertyDefinition) PURE;
-    STDMETHOD_(HRESULT,GetPropertyDefinition)(THIS_ BSTR propertyName,IFsrmPropertyDefinition **propertyDefinition) PURE;
-    STDMETHOD_(HRESULT,EnumRules)(THIS_ FsrmRuleType ruleType,FsrmEnumOptions options,IFsrmCollection **rules) PURE;
-    STDMETHOD_(HRESULT,CreateRule)(THIS_ FsrmRuleType ruleType,IFsrmRule **rule) PURE;
-    STDMETHOD_(HRESULT,GetRule)(THIS_ BSTR ruleName,FsrmRuleType ruleType,IFsrmRule **rule) PURE;
-    STDMETHOD_(HRESULT,EnumModuleDefinitions)(THIS_ FsrmPipelineModuleType moduleType,FsrmEnumOptions options,IFsrmCollection **moduleDefinitions) PURE;
-    STDMETHOD_(HRESULT,CreateModuleDefinition)(THIS_ FsrmPipelineModuleType moduleType,IFsrmPipelineModuleDefinition **moduleDefinition) PURE;
-    STDMETHOD_(HRESULT,GetModuleDefinition)(THIS_ BSTR moduleName,FsrmPipelineModuleType moduleType,IFsrmPipelineModuleDefinition **moduleDefinition) PURE;
-    STDMETHOD_(HRESULT,RunClassification)(THIS_ FsrmReportGenerationContext context,BSTR reserved) PURE;
-    STDMETHOD_(HRESULT,WaitForClassificationCompletion)(THIS_ __LONG32 waitSeconds,VARIANT_BOOL *completed) PURE;
-    STDMETHOD_(HRESULT,CancelClassification)(THIS) PURE;
-    STDMETHOD_(HRESULT,EnumFileProperties)(THIS_ BSTR filePath,FsrmGetFilePropertyOptions options,IFsrmCollection **fileProperties) PURE;
-    STDMETHOD_(HRESULT,GetFileProperty)(THIS_ BSTR filePath,BSTR propertyName,FsrmGetFilePropertyOptions options,IFsrmProperty **property) PURE;
-    STDMETHOD_(HRESULT,SetFileProperty)(THIS_ BSTR filePath,BSTR propertyName,BSTR propertyValue) PURE;
-    STDMETHOD_(HRESULT,ClearFileProperty)(THIS_ BSTR filePath,BSTR propertyName) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmClassificationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmClassificationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmClassificationManager_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmClassificationManager_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmClassificationManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmClassificationManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmClassificationManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmClassificationManager_get_ClassificationReportFormats(This,pFormats) (This)->lpVtbl->get_ClassificationReportFormats(This,pFormats)
-#define IFsrmClassificationManager_put_ClassificationReportFormats(This,formats) (This)->lpVtbl->put_ClassificationReportFormats(This,formats)
-#define IFsrmClassificationManager_get_Logging(This,pLogging) (This)->lpVtbl->get_Logging(This,pLogging)
-#define IFsrmClassificationManager_put_Logging(This,logging) (This)->lpVtbl->put_Logging(This,logging)
-#define IFsrmClassificationManager_get_ClassificationReportMailTo(This,pMailTo) (This)->lpVtbl->get_ClassificationReportMailTo(This,pMailTo)
-#define IFsrmClassificationManager_put_ClassificationReportMailTo(This,mailTo) (This)->lpVtbl->put_ClassificationReportMailTo(This,mailTo)
-#define IFsrmClassificationManager_get_ClassificationReportEnabled(This,pReportEnabled) (This)->lpVtbl->get_ClassificationReportEnabled(This,pReportEnabled)
-#define IFsrmClassificationManager_put_ClassificationReportEnabled(This,reportEnabled) (This)->lpVtbl->put_ClassificationReportEnabled(This,reportEnabled)
-#define IFsrmClassificationManager_get_ClassificationLastReportPathWithoutExtension(This,pLastReportPath) (This)->lpVtbl->get_ClassificationLastReportPathWithoutExtension(This,pLastReportPath)
-#define IFsrmClassificationManager_get_ClassificationLastError(This,pLastError) (This)->lpVtbl->get_ClassificationLastError(This,pLastError)
-#define IFsrmClassificationManager_get_ClassificationRunningStatus(This,pRunningStatus) (This)->lpVtbl->get_ClassificationRunningStatus(This,pRunningStatus)
-#define IFsrmClassificationManager_EnumPropertyDefinitions(This,options,propertyDefinitions) (This)->lpVtbl->EnumPropertyDefinitions(This,options,propertyDefinitions)
-#define IFsrmClassificationManager_CreatePropertyDefinition(This,propertyDefinition) (This)->lpVtbl->CreatePropertyDefinition(This,propertyDefinition)
-#define IFsrmClassificationManager_GetPropertyDefinition(This,propertyName,propertyDefinition) (This)->lpVtbl->GetPropertyDefinition(This,propertyName,propertyDefinition)
-#define IFsrmClassificationManager_EnumRules(This,ruleType,options,rules) (This)->lpVtbl->EnumRules(This,ruleType,options,rules)
-#define IFsrmClassificationManager_CreateRule(This,ruleType,rule) (This)->lpVtbl->CreateRule(This,ruleType,rule)
-#define IFsrmClassificationManager_GetRule(This,ruleName,ruleType,rule) (This)->lpVtbl->GetRule(This,ruleName,ruleType,rule)
-#define IFsrmClassificationManager_EnumModuleDefinitions(This,moduleType,options,moduleDefinitions) (This)->lpVtbl->EnumModuleDefinitions(This,moduleType,options,moduleDefinitions)
-#define IFsrmClassificationManager_CreateModuleDefinition(This,moduleType,moduleDefinition) (This)->lpVtbl->CreateModuleDefinition(This,moduleType,moduleDefinition)
-#define IFsrmClassificationManager_GetModuleDefinition(This,moduleName,moduleType,moduleDefinition) (This)->lpVtbl->GetModuleDefinition(This,moduleName,moduleType,moduleDefinition)
-#define IFsrmClassificationManager_RunClassification(This,context,reserved) (This)->lpVtbl->RunClassification(This,context,reserved)
-#define IFsrmClassificationManager_WaitForClassificationCompletion(This,waitSeconds,completed) (This)->lpVtbl->WaitForClassificationCompletion(This,waitSeconds,completed)
-#define IFsrmClassificationManager_CancelClassification() (This)->lpVtbl->CancelClassification(This)
-#define IFsrmClassificationManager_EnumFileProperties(This,filePath,options,fileProperties) (This)->lpVtbl->EnumFileProperties(This,filePath,options,fileProperties)
-#define IFsrmClassificationManager_GetFileProperty(This,filePath,propertyName,options,property) (This)->lpVtbl->GetFileProperty(This,filePath,propertyName,options,property)
-#define IFsrmClassificationManager_SetFileProperty(This,filePath,propertyName,propertyValue) (This)->lpVtbl->SetFileProperty(This,filePath,propertyName,propertyValue)
-#define IFsrmClassificationManager_ClearFileProperty(This,filePath,propertyName) (This)->lpVtbl->ClearFileProperty(This,filePath,propertyName)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmClassificationRule
-DECLARE_INTERFACE_(IFsrmClassificationRule,IFsrmRule)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-        /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmObject methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_Description)(THIS_ BSTR *description) PURE;
-    STDMETHOD_(HRESULT,put_Description)(THIS_ BSTR description) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-    STDMETHOD_(HRESULT,Commit)(THIS) PURE;
-
-    /* IFsrmRule methods */
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *pName) PURE;
-    STDMETHOD_(HRESULT,put_Name)(THIS_ BSTR name) PURE;
-    STDMETHOD_(HRESULT,get_RuleType)(THIS_ FsrmRuleType *pRuleType) PURE;
-    STDMETHOD_(HRESULT,get_ModuleDefinitionName)(THIS_ BSTR *pModuleDefinitionName) PURE;
-    STDMETHOD_(HRESULT,put_ModuleDefinitionName)(THIS_ BSTR moduleDefinitionName) PURE;
-    STDMETHOD_(HRESULT,get_NamespaceRoots)(THIS_ SAFEARRAY *namespaceRoots) PURE;
-    STDMETHOD_(HRESULT,put_NamespaceRoots)(THIS_ SAFEARRAY namespaceRoots) PURE;
-    STDMETHOD_(HRESULT,get_RuleFlags)(THIS_ __LONG32 *pRuleFlags) PURE;
-    STDMETHOD_(HRESULT,put_RuleFlags)(THIS_ __LONG32 ruleFlags) PURE;
-    STDMETHOD_(HRESULT,get_Parameters)(THIS_ SAFEARRAY *pParameters) PURE;
-    STDMETHOD_(HRESULT,put_Parameters)(THIS_ SAFEARRAY parameters) PURE;
-    STDMETHOD_(HRESULT,get_LastModified)(THIS_ VARIANT *pLastModified) PURE;
-    
-    /* IFsrmClassificationRule methods */
-    STDMETHOD_(HRESULT,get_ExecutionOption)(THIS_ FsrmExecutionOption *pExecutionOption) PURE;
-    STDMETHOD_(HRESULT,put_ExecutionOption)(THIS_ FsrmExecutionOption executionOption) PURE;
-    STDMETHOD_(HRESULT,get_PropertyAffected)(THIS_ BSTR *pProperty) PURE;
-    STDMETHOD_(HRESULT,put_PropertyAffected)(THIS_ BSTR property) PURE;
-    STDMETHOD_(HRESULT,get_Value)(THIS_ BSTR *pValue) PURE;
-    STDMETHOD_(HRESULT,put_Value)(THIS_ BSTR value) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmClassificationRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmClassificationRule_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmClassificationRule_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmClassificationRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmClassificationRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmClassificationRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmClassificationRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmClassificationRule_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmClassificationRule_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
-#define IFsrmClassificationRule_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
-#define IFsrmClassificationRule_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmClassificationRule_Commit() (This)->lpVtbl->Commit(This)
-#define IFsrmClassificationRule_get_Name(This,pName) (This)->lpVtbl->get_Name(This,pName)
-#define IFsrmClassificationRule_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
-#define IFsrmClassificationRule_get_RuleType(This,pRuleType) (This)->lpVtbl->get_RuleType(This,pRuleType)
-#define IFsrmClassificationRule_get_ModuleDefinitionName(This,pModuleDefinitionName) (This)->lpVtbl->get_ModuleDefinitionName(This,pModuleDefinitionName)
-#define IFsrmClassificationRule_put_ModuleDefinitionName(This,moduleDefinitionName) (This)->lpVtbl->put_ModuleDefinitionName(This,moduleDefinitionName)
-#define IFsrmClassificationRule_get_NamespaceRoots(This,namespaceRoots) (This)->lpVtbl->get_NamespaceRoots(This,namespaceRoots)
-#define IFsrmClassificationRule_put_NamespaceRoots(This,namespaceRoots) (This)->lpVtbl->put_NamespaceRoots(This,namespaceRoots)
-#define IFsrmClassificationRule_get_RuleFlags(This,pRuleFlags) (This)->lpVtbl->get_RuleFlags(This,pRuleFlags)
-#define IFsrmClassificationRule_put_RuleFlags(This,ruleFlags) (This)->lpVtbl->put_RuleFlags(This,ruleFlags)
-#define IFsrmClassificationRule_get_Parameters(This,pParameters) (This)->lpVtbl->get_Parameters(This,pParameters)
-#define IFsrmClassificationRule_put_Parameters(This,parameters) (This)->lpVtbl->put_Parameters(This,parameters)
-#define IFsrmClassificationRule_get_LastModified(This,pLastModified) (This)->lpVtbl->get_LastModified(This,pLastModified)
-#define IFsrmClassificationRule_get_ExecutionOption(This,pExecutionOption) (This)->lpVtbl->get_ExecutionOption(This,pExecutionOption)
-#define IFsrmClassificationRule_put_ExecutionOption(This,executionOption) (This)->lpVtbl->put_ExecutionOption(This,executionOption)
-#define IFsrmClassificationRule_get_PropertyAffected(This,pProperty) (This)->lpVtbl->get_PropertyAffected(This,pProperty)
-#define IFsrmClassificationRule_put_PropertyAffected(This,property) (This)->lpVtbl->put_PropertyAffected(This,property)
-#define IFsrmClassificationRule_get_Value(This,pValue) (This)->lpVtbl->get_Value(This,pValue)
-#define IFsrmClassificationRule_put_Value(This,value) (This)->lpVtbl->put_Value(This,value)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmPipelineModuleDefinition
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmPipelineModuleDefinition,IFsrmObject)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmObject methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_Description)(THIS_ BSTR *description) PURE;
-    STDMETHOD_(HRESULT,put_Description)(THIS_ BSTR description) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-    STDMETHOD_(HRESULT,Commit)(THIS) PURE;
-
-    /* IFsrmPipelineModuleDefinition methods */
-    STDMETHOD_(HRESULT,get_ModuleClsid)(THIS_ BSTR *pModuleClsid) PURE;
-    STDMETHOD_(HRESULT,put_ModuleClsid)(THIS_ BSTR moduleClsid) PURE;
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *pName) PURE;
-    STDMETHOD_(HRESULT,put_Name)(THIS_ BSTR name) PURE;
-    STDMETHOD_(HRESULT,get_Company)(THIS_ BSTR *pCompany) PURE;
-    STDMETHOD_(HRESULT,put_Company)(THIS_ BSTR company) PURE;
-    STDMETHOD_(HRESULT,get_Version)(THIS_ BSTR *version) PURE;
-    STDMETHOD_(HRESULT,put_Version)(THIS_ BSTR version) PURE;
-    STDMETHOD_(HRESULT,get_ModuleType)(THIS_ FsrmPipelineModuleType *pModuleType) PURE;
-    STDMETHOD_(HRESULT,get_Enabled)(THIS_ VARIANT_BOOL *pEnabled) PURE;
-    STDMETHOD_(HRESULT,put_Enabled)(THIS_ VARIANT_BOOL enabled) PURE;
-    STDMETHOD_(HRESULT,get_NeedsFileContent)(THIS_ VARIANT_BOOL *pNeedsFileContent) PURE;
-    STDMETHOD_(HRESULT,put_NeedsFileContent)(THIS_ VARIANT_BOOL needsFileContent) PURE;
-    STDMETHOD_(HRESULT,get_Account)(THIS_ FsrmAccountType *pRetrievalAccount) PURE;
-    STDMETHOD_(HRESULT,put_Account)(THIS_ FsrmAccountType retrievalAccount) PURE;
-    STDMETHOD_(HRESULT,get_SupportedExtensions)(THIS_ SAFEARRAY *pSupportedExtensions) PURE;
-    STDMETHOD_(HRESULT,put_SupportedExtensions)(THIS_ SAFEARRAY supportedExtensions) PURE;
-    STDMETHOD_(HRESULT,get_Parameters)(THIS_ SAFEARRAY *pParameters) PURE;
-    STDMETHOD_(HRESULT,put_Parameters)(THIS_ SAFEARRAY parameters) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmPipelineModuleDefinition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmPipelineModuleDefinition_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmPipelineModuleDefinition_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmPipelineModuleDefinition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmPipelineModuleDefinition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmPipelineModuleDefinition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmPipelineModuleDefinition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmPipelineModuleDefinition_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmPipelineModuleDefinition_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
-#define IFsrmPipelineModuleDefinition_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
-#define IFsrmPipelineModuleDefinition_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmPipelineModuleDefinition_Commit() (This)->lpVtbl->Commit(This)
-#define IFsrmPipelineModuleDefinition_get_ModuleClsid(This,pModuleClsid) (This)->lpVtbl->get_ModuleClsid(This,pModuleClsid)
-#define IFsrmPipelineModuleDefinition_put_ModuleClsid(This,moduleClsid) (This)->lpVtbl->put_ModuleClsid(This,moduleClsid)
-#define IFsrmPipelineModuleDefinition_get_Name(This,pName) (This)->lpVtbl->get_Name(This,pName)
-#define IFsrmPipelineModuleDefinition_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
-#define IFsrmPipelineModuleDefinition_get_Company(This,pCompany) (This)->lpVtbl->get_Company(This,pCompany)
-#define IFsrmPipelineModuleDefinition_put_Company(This,company) (This)->lpVtbl->put_Company(This,company)
-#define IFsrmPipelineModuleDefinition_get_Version(This,version) (This)->lpVtbl->get_Version(This,version)
-#define IFsrmPipelineModuleDefinition_put_Version(This,version) (This)->lpVtbl->put_Version(This,version)
-#define IFsrmPipelineModuleDefinition_get_ModuleType(This,pModuleType) (This)->lpVtbl->get_ModuleType(This,pModuleType)
-#define IFsrmPipelineModuleDefinition_get_Enabled(This,pEnabled) (This)->lpVtbl->get_Enabled(This,pEnabled)
-#define IFsrmPipelineModuleDefinition_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
-#define IFsrmPipelineModuleDefinition_get_NeedsFileContent(This,pNeedsFileContent) (This)->lpVtbl->get_NeedsFileContent(This,pNeedsFileContent)
-#define IFsrmPipelineModuleDefinition_put_NeedsFileContent(This,needsFileContent) (This)->lpVtbl->put_NeedsFileContent(This,needsFileContent)
-#define IFsrmPipelineModuleDefinition_get_Account(This,pRetrievalAccount) (This)->lpVtbl->get_Account(This,pRetrievalAccount)
-#define IFsrmPipelineModuleDefinition_put_Account(This,retrievalAccount) (This)->lpVtbl->put_Account(This,retrievalAccount)
-#define IFsrmPipelineModuleDefinition_get_SupportedExtensions(This,pSupportedExtensions) (This)->lpVtbl->get_SupportedExtensions(This,pSupportedExtensions)
-#define IFsrmPipelineModuleDefinition_put_SupportedExtensions(This,supportedExtensions) (This)->lpVtbl->put_SupportedExtensions(This,supportedExtensions)
-#define IFsrmPipelineModuleDefinition_get_Parameters(This,pParameters) (This)->lpVtbl->get_Parameters(This,pParameters)
-#define IFsrmPipelineModuleDefinition_put_Parameters(This,parameters) (This)->lpVtbl->put_Parameters(This,parameters)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmClassifierModuleDefinition
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmClassifierModuleDefinition,IFsrmPipelineModuleDefinition)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmObject methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_Description)(THIS_ BSTR *description) PURE;
-    STDMETHOD_(HRESULT,put_Description)(THIS_ BSTR description) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-    STDMETHOD_(HRESULT,Commit)(THIS) PURE;
-
-    /* IFsrmPipelineModuleDefinition methods */
-    STDMETHOD_(HRESULT,get_ModuleClsid)(THIS_ BSTR *pModuleClsid) PURE;
-    STDMETHOD_(HRESULT,put_ModuleClsid)(THIS_ BSTR moduleClsid) PURE;
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *pName) PURE;
-    STDMETHOD_(HRESULT,put_Name)(THIS_ BSTR name) PURE;
-    STDMETHOD_(HRESULT,get_Company)(THIS_ BSTR *pCompany) PURE;
-    STDMETHOD_(HRESULT,put_Company)(THIS_ BSTR company) PURE;
-    STDMETHOD_(HRESULT,get_Version)(THIS_ BSTR *version) PURE;
-    STDMETHOD_(HRESULT,put_Version)(THIS_ BSTR version) PURE;
-    STDMETHOD_(HRESULT,get_ModuleType)(THIS_ FsrmPipelineModuleType *pModuleType) PURE;
-    STDMETHOD_(HRESULT,get_Enabled)(THIS_ VARIANT_BOOL *pEnabled) PURE;
-    STDMETHOD_(HRESULT,put_Enabled)(THIS_ VARIANT_BOOL enabled) PURE;
-    STDMETHOD_(HRESULT,get_NeedsFileContent)(THIS_ VARIANT_BOOL *pNeedsFileContent) PURE;
-    STDMETHOD_(HRESULT,put_NeedsFileContent)(THIS_ VARIANT_BOOL needsFileContent) PURE;
-    STDMETHOD_(HRESULT,get_Account)(THIS_ FsrmAccountType *pRetrievalAccount) PURE;
-    STDMETHOD_(HRESULT,put_Account)(THIS_ FsrmAccountType retrievalAccount) PURE;
-    STDMETHOD_(HRESULT,get_SupportedExtensions)(THIS_ SAFEARRAY *pSupportedExtensions) PURE;
-    STDMETHOD_(HRESULT,put_SupportedExtensions)(THIS_ SAFEARRAY supportedExtensions) PURE;
-    STDMETHOD_(HRESULT,get_Parameters)(THIS_ SAFEARRAY *pParameters) PURE;
-    STDMETHOD_(HRESULT,put_Parameters)(THIS_ SAFEARRAY parameters) PURE;
-
-    /* IFsrmClassifierModuleDefinition methods */
-    STDMETHOD_(HRESULT,get_PropertiesAffected)(THIS_ SAFEARRAY *pPropertiesAffected) PURE;
-    STDMETHOD_(HRESULT,put_PropertiesAffected)(THIS_ SAFEARRAY propertiesAffected) PURE;
-    STDMETHOD_(HRESULT,get_PropertiesUsed)(THIS_ SAFEARRAY *pPropertiesAffected) PURE;
-    STDMETHOD_(HRESULT,put_PropertiesUsed)(THIS_ SAFEARRAY propertiesAffected) PURE;
-    STDMETHOD_(HRESULT,get_NeedsExplicitValue)(THIS_ VARIANT_BOOL *pNeedsExplicitValue) PURE;
-    STDMETHOD_(HRESULT,put_NeedsExplicitValue)(THIS_ VARIANT_BOOL needsExplicitValue) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmClassifierModuleDefinition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmClassifierModuleDefinition_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmClassifierModuleDefinition_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmClassifierModuleDefinition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmClassifierModuleDefinition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmClassifierModuleDefinition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmClassifierModuleDefinition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmClassifierModuleDefinition_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmClassifierModuleDefinition_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
-#define IFsrmClassifierModuleDefinition_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
-#define IFsrmClassifierModuleDefinition_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmClassifierModuleDefinition_Commit() (This)->lpVtbl->Commit(This)
-#define IFsrmClassifierModuleDefinition_get_ModuleClsid(This,pModuleClsid) (This)->lpVtbl->get_ModuleClsid(This,pModuleClsid)
-#define IFsrmClassifierModuleDefinition_put_ModuleClsid(This,moduleClsid) (This)->lpVtbl->put_ModuleClsid(This,moduleClsid)
-#define IFsrmClassifierModuleDefinition_get_Name(This,pName) (This)->lpVtbl->get_Name(This,pName)
-#define IFsrmClassifierModuleDefinition_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
-#define IFsrmClassifierModuleDefinition_get_Company(This,pCompany) (This)->lpVtbl->get_Company(This,pCompany)
-#define IFsrmClassifierModuleDefinition_put_Company(This,company) (This)->lpVtbl->put_Company(This,company)
-#define IFsrmClassifierModuleDefinition_get_Version(This,version) (This)->lpVtbl->get_Version(This,version)
-#define IFsrmClassifierModuleDefinition_put_Version(This,version) (This)->lpVtbl->put_Version(This,version)
-#define IFsrmClassifierModuleDefinition_get_ModuleType(This,pModuleType) (This)->lpVtbl->get_ModuleType(This,pModuleType)
-#define IFsrmClassifierModuleDefinition_get_Enabled(This,pEnabled) (This)->lpVtbl->get_Enabled(This,pEnabled)
-#define IFsrmClassifierModuleDefinition_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
-#define IFsrmClassifierModuleDefinition_get_NeedsFileContent(This,pNeedsFileContent) (This)->lpVtbl->get_NeedsFileContent(This,pNeedsFileContent)
-#define IFsrmClassifierModuleDefinition_put_NeedsFileContent(This,needsFileContent) (This)->lpVtbl->put_NeedsFileContent(This,needsFileContent)
-#define IFsrmClassifierModuleDefinition_get_Account(This,pRetrievalAccount) (This)->lpVtbl->get_Account(This,pRetrievalAccount)
-#define IFsrmClassifierModuleDefinition_put_Account(This,retrievalAccount) (This)->lpVtbl->put_Account(This,retrievalAccount)
-#define IFsrmClassifierModuleDefinition_get_SupportedExtensions(This,pSupportedExtensions) (This)->lpVtbl->get_SupportedExtensions(This,pSupportedExtensions)
-#define IFsrmClassifierModuleDefinition_put_SupportedExtensions(This,supportedExtensions) (This)->lpVtbl->put_SupportedExtensions(This,supportedExtensions)
-#define IFsrmClassifierModuleDefinition_get_Parameters(This,pParameters) (This)->lpVtbl->get_Parameters(This,pParameters)
-#define IFsrmClassifierModuleDefinition_put_Parameters(This,parameters) (This)->lpVtbl->put_Parameters(This,parameters)
-#define IFsrmClassifierModuleDefinition_get_PropertiesAffected(This,pPropertiesAffected) (This)->lpVtbl->get_PropertiesAffected(This,pPropertiesAffected)
-#define IFsrmClassifierModuleDefinition_put_PropertiesAffected(This,propertiesAffected) (This)->lpVtbl->put_PropertiesAffected(This,propertiesAffected)
-#define IFsrmClassifierModuleDefinition_get_PropertiesUsed(This,pPropertiesAffected) (This)->lpVtbl->get_PropertiesUsed(This,pPropertiesAffected)
-#define IFsrmClassifierModuleDefinition_put_PropertiesUsed(This,propertiesAffected) (This)->lpVtbl->put_PropertiesUsed(This,propertiesAffected)
-#define IFsrmClassifierModuleDefinition_get_NeedsExplicitValue(This,pNeedsExplicitValue) (This)->lpVtbl->get_NeedsExplicitValue(This,pNeedsExplicitValue)
-#define IFsrmClassifierModuleDefinition_put_NeedsExplicitValue(This,needsExplicitValue) (This)->lpVtbl->put_NeedsExplicitValue(This,needsExplicitValue)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmPipelineModuleImplementation
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmPipelineModuleImplementation,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmPipelineModuleImplementation methods */
-    STDMETHOD_(HRESULT,OnLoad)(THIS_ IFsrmPipelineModuleDefinition *moduleDefinition,IFsrmPipelineModuleConnector **moduleConnector) PURE;
-    STDMETHOD_(HRESULT,OnUnload)(THIS) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmPipelineModuleImplementation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmPipelineModuleImplementation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmPipelineModuleImplementation_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmPipelineModuleImplementation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmPipelineModuleImplementation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmPipelineModuleImplementation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmPipelineModuleImplementation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmPipelineModuleImplementation_OnLoad(This,moduleDefinition,moduleConnector) (This)->lpVtbl->OnLoad(This,moduleDefinition,moduleConnector)
-#define IFsrmPipelineModuleImplementation_OnUnload() (This)->lpVtbl->OnUnload(This)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmClassifierModuleImplementation
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmClassifierModuleImplementation,IFsrmPipelineModuleImplementation)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmPipelineModuleImplementation methods */
-    STDMETHOD_(HRESULT,OnLoad)(THIS_ IFsrmPipelineModuleDefinition *moduleDefinition,IFsrmPipelineModuleConnector **moduleConnector) PURE;
-    STDMETHOD_(HRESULT,OnUnload)(THIS) PURE;
-
-    /* IFsrmClassifierModuleImplementation methods */
-    STDMETHOD_(HRESULT,get_LastModified)(THIS_ VARIANT *pLastModified) PURE;
-    STDMETHOD_(HRESULT,UseRulesAndDefinitions)(THIS_ IFsrmCollection *rules,IFsrmCollection *propertyDefinitions) PURE;
-    STDMETHOD_(HRESULT,OnBeginFile)(THIS_ IFsrmPropertyBag *propertyBag,SAFEARRAY arrayRuleIds) PURE;
-    STDMETHOD_(HRESULT,DoesPropertyValueApply)(THIS_ BSTR property,BSTR value,VARIANT_BOOL *applyValue,FSRM_OBJECT_ID idRule,FSRM_OBJECT_ID idPropDef) PURE;
-    STDMETHOD_(HRESULT,GetPropertyValueToApply)(THIS_ BSTR property,BSTR *value,FSRM_OBJECT_ID idRule,FSRM_OBJECT_ID idPropDef) PURE;
-    STDMETHOD_(HRESULT,OnEndFile)(THIS) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmClassifierModuleImplementation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmClassifierModuleImplementation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmClassifierModuleImplementation_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmClassifierModuleImplementation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmClassifierModuleImplementation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmClassifierModuleImplementation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmClassifierModuleImplementation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmClassifierModuleImplementation_OnLoad(This,moduleDefinition,moduleConnector) (This)->lpVtbl->OnLoad(This,moduleDefinition,moduleConnector)
-#define IFsrmClassifierModuleImplementation_OnUnload() (This)->lpVtbl->OnUnload(This)
-#define IFsrmClassifierModuleImplementation_get_LastModified(This,pLastModified) (This)->lpVtbl->get_LastModified(This,pLastModified)
-#define IFsrmClassifierModuleImplementation_UseRulesAndDefinitions(This,rules,propertyDefinitions) (This)->lpVtbl->UseRulesAndDefinitions(This,rules,propertyDefinitions)
-#define IFsrmClassifierModuleImplementation_OnBeginFile(This,propertyBag,arrayRuleIds) (This)->lpVtbl->OnBeginFile(This,propertyBag,arrayRuleIds)
-#define IFsrmClassifierModuleImplementation_DoesPropertyValueApply(This,property,value,applyValue,idRule,idPropDef) (This)->lpVtbl->DoesPropertyValueApply(This,property,value,applyValue,idRule,idPropDef)
-#define IFsrmClassifierModuleImplementation_GetPropertyValueToApply(This,property,value,idRule,idPropDef) (This)->lpVtbl->GetPropertyValueToApply(This,property,value,idRule,idPropDef)
-#define IFsrmClassifierModuleImplementation_OnEndFile() (This)->lpVtbl->OnEndFile(This)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmPipelineModuleConnector
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmPipelineModuleConnector,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmPipelineModuleConnector methods */
-    STDMETHOD_(HRESULT,get_ModuleImplementation)(THIS_ IFsrmPipelineModuleImplementation **pipelineModuleImplementation) PURE;
-    STDMETHOD_(HRESULT,get_ModuleName)(THIS_ BSTR *name) PURE;
-    STDMETHOD_(HRESULT,get_HostingUserAccount)(THIS_ BSTR *userAccount) PURE;
-    STDMETHOD_(HRESULT,get_HostingProcessPid)(THIS_ __LONG32 *pid) PURE;
-    STDMETHOD_(HRESULT,Bind)(THIS_ IFsrmPipelineModuleDefinition *moduleDefinition,IFsrmCollection *rules,IFsrmPipelineModuleImplementation *moduleImplementation) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmPipelineModuleConnector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmPipelineModuleConnector_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmPipelineModuleConnector_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmPipelineModuleConnector_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmPipelineModuleConnector_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmPipelineModuleConnector_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmPipelineModuleConnector_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmPipelineModuleConnector_get_ModuleImplementation(This,pipelineModuleImplementation) (This)->lpVtbl->get_ModuleImplementation(This,pipelineModuleImplementation)
-#define IFsrmPipelineModuleConnector_get_ModuleName(This,name) (This)->lpVtbl->get_ModuleName(This,name)
-#define IFsrmPipelineModuleConnector_get_HostingUserAccount(This,userAccount) (This)->lpVtbl->get_HostingUserAccount(This,userAccount)
-#define IFsrmPipelineModuleConnector_get_HostingProcessPid(This,pid) (This)->lpVtbl->get_HostingProcessPid(This,pid)
-#define IFsrmPipelineModuleConnector_Bind(This,moduleDefinition,rules,moduleImplementation) (This)->lpVtbl->Bind(This,moduleDefinition,rules,moduleImplementation)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmProperty
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmProperty,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmProperty methods */
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *pName) PURE;
-    STDMETHOD_(HRESULT,get_Value)(THIS_ BSTR *pValue) PURE;
-    STDMETHOD_(HRESULT,get_Sources)(THIS_ SAFEARRAY *pSources) PURE;
-    STDMETHOD_(HRESULT,get_PropertyFlags)(THIS_ __LONG32 *flags) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmProperty_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmProperty_get_Name(This,pName) (This)->lpVtbl->get_Name(This,pName)
-#define IFsrmProperty_get_Value(This,pValue) (This)->lpVtbl->get_Value(This,pValue)
-#define IFsrmProperty_get_Sources(This,pSources) (This)->lpVtbl->get_Sources(This,pSources)
-#define IFsrmProperty_get_PropertyFlags(This,flags) (This)->lpVtbl->get_PropertyFlags(This,flags)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmPropertyBag
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmPropertyBag,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmPropertyBag methods */
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *name) PURE;
-    STDMETHOD_(HRESULT,get_RelativePath)(THIS_ BSTR *path) PURE;
-    STDMETHOD_(HRESULT,get_VolumeName)(THIS_ BSTR *volumeName) PURE;
-    STDMETHOD_(HRESULT,get_RelativeNamespaceRoot)(THIS_ BSTR *relativeNamespaceRoot) PURE;
-    STDMETHOD_(HRESULT,get_VolumeIndex)(THIS_ unsigned __LONG32 *volumeId) PURE;
-    STDMETHOD_(HRESULT,get_FileId)(THIS_ VARIANT *fileId) PURE;
-    STDMETHOD_(HRESULT,get_ParentDirectoryId)(THIS_ VARIANT *parentDirectoryId) PURE;
-    STDMETHOD_(HRESULT,get_Size)(THIS_ VARIANT *size) PURE;
-    STDMETHOD_(HRESULT,get_SizeAllocated)(THIS_ VARIANT *sizeAllocated) PURE;
-    STDMETHOD_(HRESULT,get_CreationTime)(THIS_ VARIANT *creationTime) PURE;
-    STDMETHOD_(HRESULT,get_LastAccessTime)(THIS_ VARIANT *creationTime) PURE;
-    STDMETHOD_(HRESULT,get_LastModificationTime)(THIS_ VARIANT *creationTime) PURE;
-    STDMETHOD_(HRESULT,get_Attributes)(THIS_ unsigned __LONG32 *attributes) PURE;
-    STDMETHOD_(HRESULT,get_OwnerSid)(THIS_ BSTR *ownerSid) PURE;
-    STDMETHOD_(HRESULT,get_FilePropertyNames)(THIS_ SAFEARRAY *filePropertyNames) PURE;
-    STDMETHOD_(HRESULT,get_Messages)(THIS_ SAFEARRAY *messages) PURE;
-    STDMETHOD_(HRESULT,get_PropertyBagFlags)(THIS_ unsigned __LONG32 flags) PURE;
-    STDMETHOD_(HRESULT,GetFileProperty)(THIS_ BSTR name,IFsrmProperty **fileProperty) PURE;
-    STDMETHOD_(HRESULT,SetFileProperty)(THIS_ BSTR name,BSTR value) PURE;
-    STDMETHOD_(HRESULT,AddMessage)(THIS_ BSTR message) PURE;
-    STDMETHOD_(HRESULT,GetFileStreamInterface)(THIS_ FsrmFileStreamingMode accessMode,FsrmFileStreamingInterfaceType interfaceType,VARIANT **streamInterface) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmPropertyBag_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmPropertyBag_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmPropertyBag_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmPropertyBag_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmPropertyBag_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmPropertyBag_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
-#define IFsrmPropertyBag_get_RelativePath(This,path) (This)->lpVtbl->get_RelativePath(This,path)
-#define IFsrmPropertyBag_get_VolumeName(This,volumeName) (This)->lpVtbl->get_VolumeName(This,volumeName)
-#define IFsrmPropertyBag_get_RelativeNamespaceRoot(This,relativeNamespaceRoot) (This)->lpVtbl->get_RelativeNamespaceRoot(This,relativeNamespaceRoot)
-#define IFsrmPropertyBag_get_VolumeIndex(This,volumeId) (This)->lpVtbl->get_VolumeIndex(This,volumeId)
-#define IFsrmPropertyBag_get_FileId(This,fileId) (This)->lpVtbl->get_FileId(This,fileId)
-#define IFsrmPropertyBag_get_ParentDirectoryId(This,parentDirectoryId) (This)->lpVtbl->get_ParentDirectoryId(This,parentDirectoryId)
-#define IFsrmPropertyBag_get_Size(This,size) (This)->lpVtbl->get_Size(This,size)
-#define IFsrmPropertyBag_get_SizeAllocated(This,sizeAllocated) (This)->lpVtbl->get_SizeAllocated(This,sizeAllocated)
-#define IFsrmPropertyBag_get_CreationTime(This,creationTime) (This)->lpVtbl->get_CreationTime(This,creationTime)
-#define IFsrmPropertyBag_get_LastAccessTime(This,creationTime) (This)->lpVtbl->get_LastAccessTime(This,creationTime)
-#define IFsrmPropertyBag_get_LastModificationTime(This,creationTime) (This)->lpVtbl->get_LastModificationTime(This,creationTime)
-#define IFsrmPropertyBag_get_Attributes(This,attributes) (This)->lpVtbl->get_Attributes(This,attributes)
-#define IFsrmPropertyBag_get_OwnerSid(This,ownerSid) (This)->lpVtbl->get_OwnerSid(This,ownerSid)
-#define IFsrmPropertyBag_get_FilePropertyNames(This,filePropertyNames) (This)->lpVtbl->get_FilePropertyNames(This,filePropertyNames)
-#define IFsrmPropertyBag_get_Messages(This,messages) (This)->lpVtbl->get_Messages(This,messages)
-#define IFsrmPropertyBag_get_PropertyBagFlags(This,flags) (This)->lpVtbl->get_PropertyBagFlags(This,flags)
-#define IFsrmPropertyBag_GetFileProperty(This,name,fileProperty) (This)->lpVtbl->GetFileProperty(This,name,fileProperty)
-#define IFsrmPropertyBag_SetFileProperty(This,name,value) (This)->lpVtbl->SetFileProperty(This,name,value)
-#define IFsrmPropertyBag_AddMessage(This,message) (This)->lpVtbl->AddMessage(This,message)
-#define IFsrmPropertyBag_GetFileStreamInterface(This,accessMode,interfaceType,streamInterface) (This)->lpVtbl->GetFileStreamInterface(This,accessMode,interfaceType,streamInterface)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmStorageModuleDefinition
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmStorageModuleDefinition,IFsrmPipelineModuleDefinition)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmObject methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_Description)(THIS_ BSTR *description) PURE;
-    STDMETHOD_(HRESULT,put_Description)(THIS_ BSTR description) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-    STDMETHOD_(HRESULT,Commit)(THIS) PURE;
-
-    /* IFsrmPipelineModuleDefinition methods */
-    STDMETHOD_(HRESULT,get_ModuleClsid)(THIS_ BSTR *pModuleClsid) PURE;
-    STDMETHOD_(HRESULT,put_ModuleClsid)(THIS_ BSTR moduleClsid) PURE;
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *pName) PURE;
-    STDMETHOD_(HRESULT,put_Name)(THIS_ BSTR name) PURE;
-    STDMETHOD_(HRESULT,get_Company)(THIS_ BSTR *pCompany) PURE;
-    STDMETHOD_(HRESULT,put_Company)(THIS_ BSTR company) PURE;
-    STDMETHOD_(HRESULT,get_Version)(THIS_ BSTR *version) PURE;
-    STDMETHOD_(HRESULT,put_Version)(THIS_ BSTR version) PURE;
-    STDMETHOD_(HRESULT,get_ModuleType)(THIS_ FsrmPipelineModuleType *pModuleType) PURE;
-    STDMETHOD_(HRESULT,get_Enabled)(THIS_ VARIANT_BOOL *pEnabled) PURE;
-    STDMETHOD_(HRESULT,put_Enabled)(THIS_ VARIANT_BOOL enabled) PURE;
-    STDMETHOD_(HRESULT,get_NeedsFileContent)(THIS_ VARIANT_BOOL *pNeedsFileContent) PURE;
-    STDMETHOD_(HRESULT,put_NeedsFileContent)(THIS_ VARIANT_BOOL needsFileContent) PURE;
-    STDMETHOD_(HRESULT,get_Account)(THIS_ FsrmAccountType *pRetrievalAccount) PURE;
-    STDMETHOD_(HRESULT,put_Account)(THIS_ FsrmAccountType retrievalAccount) PURE;
-    STDMETHOD_(HRESULT,get_SupportedExtensions)(THIS_ SAFEARRAY *pSupportedExtensions) PURE;
-    STDMETHOD_(HRESULT,put_SupportedExtensions)(THIS_ SAFEARRAY supportedExtensions) PURE;
-    STDMETHOD_(HRESULT,get_Parameters)(THIS_ SAFEARRAY *pParameters) PURE;
-    STDMETHOD_(HRESULT,put_Parameters)(THIS_ SAFEARRAY parameters) PURE;
-
-    /* IFsrmStorageModuleDefinition methods */
-    STDMETHOD_(HRESULT,get_Capabilities)(THIS_ FsrmStorageModuleCaps *pCapabilities) PURE;
-    STDMETHOD_(HRESULT,put_Capabilities)(THIS_ FsrmStorageModuleCaps capabilities) PURE;
-    STDMETHOD_(HRESULT,get_StorageType)(THIS_ FsrmStorageModuleType *pStorageType) PURE;
-    STDMETHOD_(HRESULT,put_StorageType)(THIS_ FsrmStorageModuleType storageType) PURE;
-    STDMETHOD_(HRESULT,get_UpdatesFileContent)(THIS_ VARIANT_BOOL *pUpdatesFileContent) PURE;
-    STDMETHOD_(HRESULT,put_UpdatesFileContent)(THIS_ VARIANT_BOOL updatesFileContent) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmStorageModuleDefinition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmStorageModuleDefinition_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmStorageModuleDefinition_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmStorageModuleDefinition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmStorageModuleDefinition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmStorageModuleDefinition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmStorageModuleDefinition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmStorageModuleDefinition_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmStorageModuleDefinition_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
-#define IFsrmStorageModuleDefinition_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
-#define IFsrmStorageModuleDefinition_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmStorageModuleDefinition_Commit() (This)->lpVtbl->Commit(This)
-#define IFsrmStorageModuleDefinition_get_ModuleClsid(This,pModuleClsid) (This)->lpVtbl->get_ModuleClsid(This,pModuleClsid)
-#define IFsrmStorageModuleDefinition_put_ModuleClsid(This,moduleClsid) (This)->lpVtbl->put_ModuleClsid(This,moduleClsid)
-#define IFsrmStorageModuleDefinition_get_Name(This,pName) (This)->lpVtbl->get_Name(This,pName)
-#define IFsrmStorageModuleDefinition_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
-#define IFsrmStorageModuleDefinition_get_Company(This,pCompany) (This)->lpVtbl->get_Company(This,pCompany)
-#define IFsrmStorageModuleDefinition_put_Company(This,company) (This)->lpVtbl->put_Company(This,company)
-#define IFsrmStorageModuleDefinition_get_Version(This,version) (This)->lpVtbl->get_Version(This,version)
-#define IFsrmStorageModuleDefinition_put_Version(This,version) (This)->lpVtbl->put_Version(This,version)
-#define IFsrmStorageModuleDefinition_get_ModuleType(This,pModuleType) (This)->lpVtbl->get_ModuleType(This,pModuleType)
-#define IFsrmStorageModuleDefinition_get_Enabled(This,pEnabled) (This)->lpVtbl->get_Enabled(This,pEnabled)
-#define IFsrmStorageModuleDefinition_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
-#define IFsrmStorageModuleDefinition_get_NeedsFileContent(This,pNeedsFileContent) (This)->lpVtbl->get_NeedsFileContent(This,pNeedsFileContent)
-#define IFsrmStorageModuleDefinition_put_NeedsFileContent(This,needsFileContent) (This)->lpVtbl->put_NeedsFileContent(This,needsFileContent)
-#define IFsrmStorageModuleDefinition_get_Account(This,pRetrievalAccount) (This)->lpVtbl->get_Account(This,pRetrievalAccount)
-#define IFsrmStorageModuleDefinition_put_Account(This,retrievalAccount) (This)->lpVtbl->put_Account(This,retrievalAccount)
-#define IFsrmStorageModuleDefinition_get_SupportedExtensions(This,pSupportedExtensions) (This)->lpVtbl->get_SupportedExtensions(This,pSupportedExtensions)
-#define IFsrmStorageModuleDefinition_put_SupportedExtensions(This,supportedExtensions) (This)->lpVtbl->put_SupportedExtensions(This,supportedExtensions)
-#define IFsrmStorageModuleDefinition_get_Parameters(This,pParameters) (This)->lpVtbl->get_Parameters(This,pParameters)
-#define IFsrmStorageModuleDefinition_put_Parameters(This,parameters) (This)->lpVtbl->put_Parameters(This,parameters)
-#define IFsrmStorageModuleDefinition_get_Capabilities(This,pCapabilities) (This)->lpVtbl->get_Capabilities(This,pCapabilities)
-#define IFsrmStorageModuleDefinition_put_Capabilities(This,capabilities) (This)->lpVtbl->put_Capabilities(This,capabilities)
-#define IFsrmStorageModuleDefinition_get_StorageType(This,pStorageType) (This)->lpVtbl->get_StorageType(This,pStorageType)
-#define IFsrmStorageModuleDefinition_put_StorageType(This,storageType) (This)->lpVtbl->put_StorageType(This,storageType)
-#define IFsrmStorageModuleDefinition_get_UpdatesFileContent(This,pUpdatesFileContent) (This)->lpVtbl->get_UpdatesFileContent(This,pUpdatesFileContent)
-#define IFsrmStorageModuleDefinition_put_UpdatesFileContent(This,updatesFileContent) (This)->lpVtbl->put_UpdatesFileContent(This,updatesFileContent)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmStorageModuleImplementation
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmStorageModuleImplementation,IFsrmPipelineModuleImplementation)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmPipelineModuleImplementation methods */
-    STDMETHOD_(HRESULT,OnLoad)(THIS_ IFsrmPipelineModuleDefinition *moduleDefinition,IFsrmPipelineModuleConnector **moduleConnector) PURE;
-    STDMETHOD_(HRESULT,OnUnload)(THIS) PURE;
-
-    /* IFsrmStorageModuleImplementation methods */
-    STDMETHOD_(HRESULT,UseDefinitions)(THIS_ IFsrmCollection *propertyDefinitions) PURE;
-    STDMETHOD_(HRESULT,LoadProperties)(THIS_ IFsrmPropertyBag *propertyBag) PURE;
-    STDMETHOD_(HRESULT,SaveProperties)(THIS_ IFsrmPropertyBag *propertyBag) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmStorageModuleImplementation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmStorageModuleImplementation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmStorageModuleImplementation_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmStorageModuleImplementation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmStorageModuleImplementation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmStorageModuleImplementation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmStorageModuleImplementation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmStorageModuleImplementation_OnLoad(This,moduleDefinition,moduleConnector) (This)->lpVtbl->OnLoad(This,moduleDefinition,moduleConnector)
-#define IFsrmStorageModuleImplementation_OnUnload() (This)->lpVtbl->OnUnload(This)
-#define IFsrmStorageModuleImplementation_UseDefinitions(This,propertyDefinitions) (This)->lpVtbl->UseDefinitions(This,propertyDefinitions)
-#define IFsrmStorageModuleImplementation_LoadProperties(This,propertyBag) (This)->lpVtbl->LoadProperties(This,propertyBag)
-#define IFsrmStorageModuleImplementation_SaveProperties(This,propertyBag) (This)->lpVtbl->SaveProperties(This,propertyBag)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmPropertyCondition
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmPropertyCondition,IDispatch)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmPropertyCondition methods */
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *pName) PURE;
-    STDMETHOD_(HRESULT,put_Name)(THIS_ BSTR name) PURE;
-    STDMETHOD_(HRESULT,get_Type)(THIS_ FsrmPropertyConditionType *pType) PURE;
-    STDMETHOD_(HRESULT,put_Type)(THIS_ FsrmPropertyConditionType type) PURE;
-    STDMETHOD_(HRESULT,get_Value)(THIS_ BSTR *pValue) PURE;
-    STDMETHOD_(HRESULT,put_Value)(THIS_ BSTR value) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmPropertyCondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmPropertyCondition_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmPropertyCondition_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmPropertyCondition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmPropertyCondition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmPropertyCondition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmPropertyCondition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmPropertyCondition_get_Name(This,pName) (This)->lpVtbl->get_Name(This,pName)
-#define IFsrmPropertyCondition_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
-#define IFsrmPropertyCondition_get_Type(This,pType) (This)->lpVtbl->get_Type(This,pType)
-#define IFsrmPropertyCondition_put_Type(This,type) (This)->lpVtbl->put_Type(This,type)
-#define IFsrmPropertyCondition_get_Value(This,pValue) (This)->lpVtbl->get_Value(This,pValue)
-#define IFsrmPropertyCondition_put_Value(This,value) (This)->lpVtbl->put_Value(This,value)
-#define IFsrmPropertyCondition_Delete() (This)->lpVtbl->Delete(This)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IFsrmPropertyDefinition
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IFsrmPropertyDefinition,IFsrmObject)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
-
-    /* IFsrmObject methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ FSRM_OBJECT_ID *id) PURE;
-    STDMETHOD_(HRESULT,get_Description)(THIS_ BSTR *description) PURE;
-    STDMETHOD_(HRESULT,put_Description)(THIS_ BSTR description) PURE;
-    STDMETHOD_(HRESULT,Delete)(THIS) PURE;
-    STDMETHOD_(HRESULT,Commit)(THIS) PURE;
-
-    /* IFsrmPropertyDefinition methods */
-    STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR *pName) PURE;
-    STDMETHOD_(HRESULT,put_Name)(THIS_ BSTR name) PURE;
-    STDMETHOD_(HRESULT,get_Type)(THIS_ FsrmPropertyDefinitionType *pType) PURE;
-    STDMETHOD_(HRESULT,put_Type)(THIS_ FsrmPropertyDefinitionType type) PURE;
-    STDMETHOD_(HRESULT,get_PossibleValues)(THIS_ SAFEARRAY *pPossibleValues) PURE;
-    STDMETHOD_(HRESULT,put_PossibleValues)(THIS_ SAFEARRAY possibleValues) PURE;
-    STDMETHOD_(HRESULT,get_ValueDescriptions)(THIS_ SAFEARRAY *pPossibleValues) PURE;
-    STDMETHOD_(HRESULT,put_ValueDescriptions)(THIS_ SAFEARRAY possibleValues) PURE;
-    STDMETHOD_(HRESULT,get_Parameters)(THIS_ SAFEARRAY pParameters) PURE;
-    STDMETHOD_(HRESULT,put_Parameters)(THIS_ SAFEARRAY parameters) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IFsrmPropertyDefinition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IFsrmPropertyDefinition_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IFsrmPropertyDefinition_Release(This) (This)->lpVtbl->Release(This)
-#define IFsrmPropertyDefinition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IFsrmPropertyDefinition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IFsrmPropertyDefinition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IFsrmPropertyDefinition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IFsrmPropertyDefinition_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IFsrmPropertyDefinition_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
-#define IFsrmPropertyDefinition_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
-#define IFsrmPropertyDefinition_Delete() (This)->lpVtbl->Delete(This)
-#define IFsrmPropertyDefinition_Commit() (This)->lpVtbl->Commit(This)
-#define IFsrmPropertyDefinition_get_Name(This,pName) (This)->lpVtbl->get_Name(This,pName)
-#define IFsrmPropertyDefinition_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
-#define IFsrmPropertyDefinition_get_Type(This,pType) (This)->lpVtbl->get_Type(This,pType)
-#define IFsrmPropertyDefinition_put_Type(This,type) (This)->lpVtbl->put_Type(This,type)
-#define IFsrmPropertyDefinition_get_PossibleValues(This,pPossibleValues) (This)->lpVtbl->get_PossibleValues(This,pPossibleValues)
-#define IFsrmPropertyDefinition_put_PossibleValues(This,possibleValues) (This)->lpVtbl->put_PossibleValues(This,possibleValues)
-#define IFsrmPropertyDefinition_get_ValueDescriptions(This,pPossibleValues) (This)->lpVtbl->get_ValueDescriptions(This,pPossibleValues)
-#define IFsrmPropertyDefinition_put_ValueDescriptions(This,possibleValues) (This)->lpVtbl->put_ValueDescriptions(This,possibleValues)
-#define IFsrmPropertyDefinition_get_Parameters(This,pParameters) (This)->lpVtbl->get_Parameters(This,pParameters)
-#define IFsrmPropertyDefinition_put_Parameters(This,parameters) (This)->lpVtbl->put_Parameters(This,parameters)
-#endif /*COBJMACROS*/
-
-#endif /*(_WIN32_WINNT >= 0x0601)*/
-#include <fsrmquota.h>
-#include <fsrmscreen.h>
-#include <fsrmreports.h>
-#endif /*_INC_FSRM*/
+#endif /* __fsrm_h__ */
diff --git a/mingw-w64-headers/include/fsrm.idl b/mingw-w64-headers/include/fsrm.idl
new file mode 100644
index 0000000..ec51c24
--- /dev/null
+++ b/mingw-w64-headers/include/fsrm.idl
@@ -0,0 +1,201 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+import "oaidl.idl";
+import "fsrmenums.idl";
+
+cpp_quote("#include <winapifamily.h>")
+cpp_quote("")
+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+
+interface IFsrmObject;
+interface IFsrmCollection;
+interface IFsrmMutableCollection;
+interface IFsrmCommittableCollection;
+interface IFsrmAction;
+interface IFsrmActionEmail;
+interface IFsrmActionReport;
+interface IFsrmActionEventLog;
+interface IFsrmActionCommand;
+interface IFsrmSetting;
+interface IFsrmPathMapper;
+interface IFsrmExportImport;
+
+const DISPID FSRM_DISPID_FEATURE_MASK = 0xf000000;
+const DISPID FSRM_DISPID_INTERFACE_A_MASK = 0xf00000;
+const DISPID FSRM_DISPID_INTERFACE_B_MASK = 0xf0000;
+const DISPID FSRM_DISPID_INTERFACE_C_MASK = 0xf000;
+const DISPID FSRM_DISPID_INTERFACE_D_MASK = 0xf00;
+const DISPID FSRM_DISPID_INTERFACE_MASK = 0xffff00;
+const DISPID FSRM_DISPID_IS_PROPERTY = 0x80;
+const DISPID FSRM_DISPID_METHOD_NUM_MASK = 0x7f;
+const DISPID FSRM_DISPID_METHOD_MASK = 0xff;
+
+const DISPID FSRM_DISPID_FEATURE_GENERAL = 0x1000000;
+const DISPID FSRM_DISPID_FEATURE_QUOTA = 0x2000000;
+const DISPID FSRM_DISPID_FEATURE_FILESCREEN = 0x3000000;
+const DISPID FSRM_DISPID_FEATURE_REPORTS = 0x4000000;
+const DISPID FSRM_DISPID_FEATURE_CLASSIFICATION = 0x5000000;
+const DISPID FSRM_DISPID_FEATURE_PIPELINE = 0x6000000;
+
+const DISPID FSRM_DISPID_OBJECT = FSRM_DISPID_FEATURE_GENERAL | 0x100000;
+const DISPID FSRM_DISPID_COLLECTION = FSRM_DISPID_FEATURE_GENERAL | 0x200000;
+const DISPID FSRM_DISPID_COLLECTION_MUTABLE = FSRM_DISPID_COLLECTION | 0x10000;
+const DISPID FSRM_DISPID_COLLECTION_COMMITTABLE = FSRM_DISPID_COLLECTION_MUTABLE | 0x1000;
+const DISPID FSRM_DISPID_ACTION = FSRM_DISPID_FEATURE_GENERAL | 0x300000;
+const DISPID FSRM_DISPID_ACTION_EMAIL = FSRM_DISPID_ACTION | 0x10000;
+const DISPID FSRM_DISPID_ACTION_REPORT = FSRM_DISPID_ACTION | 0x20000;
+const DISPID FSRM_DISPID_ACTION_EVENTLOG = FSRM_DISPID_ACTION | 0x30000;
+const DISPID FSRM_DISPID_ACTION_COMMAND = FSRM_DISPID_ACTION | 0x40000;
+const DISPID FSRM_DISPID_ACTION_EMAIL2 = FSRM_DISPID_ACTION | 0x50000;
+const DISPID FSRM_DISPID_SETTING = FSRM_DISPID_FEATURE_GENERAL | 0x400000;
+const DISPID FSRM_DISPID_PATHMAPPER = FSRM_DISPID_FEATURE_GENERAL | 0x500000;
+const DISPID FSRM_DISPID_EXPORTIMPORT = FSRM_DISPID_FEATURE_GENERAL | 0x600000;
+const DISPID FSRM_DISPID_DERIVEDOBJECTSRESULT = FSRM_DISPID_FEATURE_GENERAL | 0x700000;
+const DISPID FSRM_DISPID_ADR = FSRM_DISPID_FEATURE_GENERAL | 0x800000;
+
+[object, uuid (96deb3b5-8b91-4a2a-9d93-80a35d8aa847), dual, hidden, nonextensible, pointer_default (unique)]
+interface IFsrmCommittableCollection : IFsrmMutableCollection {
+  [id (FSRM_DISPID_COLLECTION_COMMITTABLE | 0x1)] HRESULT Commit ([in] FsrmCommitOptions options,[out, retval] IFsrmCollection **results);
+};
+
+[object, uuid (40002314-590b-45a5-8e1b-8c05da527e52), dual, oleautomation, pointer_default (unique)]
+interface IFsrmAccessDeniedRemediationClient : IDispatch {
+  [id (FSRM_DISPID_ADR | 0x01)] HRESULT Show ([in] ULONG_PTR parentWnd,[in] BSTR accessPath,[in] AdrClientErrorType errorType,[in] long flags,[in, defaultvalue (L"")] BSTR windowTitle,[in, defaultvalue (L"")] BSTR windowMessage,[out, retval] long *result);
+};
+
+[object, uuid (6cd6408a-ae60-463b-9ef1-e117534d69dc), dual, pointer_default (unique)]
+interface IFsrmAction : IDispatch {
+  [propget, id (FSRM_DISPID_ACTION | 0x81)] HRESULT Id ([out, retval] FSRM_OBJECT_ID *id);
+  [propget, id (FSRM_DISPID_ACTION | 0x82)] HRESULT ActionType ([out, retval] FsrmActionType *actionType);
+  [propget, id (FSRM_DISPID_ACTION | 0x83)] HRESULT RunLimitInterval ([out, retval] long *minutes);
+  [propput, id (FSRM_DISPID_ACTION | 0x83)] HRESULT RunLimitInterval ([in] long minutes);
+  [id (FSRM_DISPID_ACTION | 0x1)] HRESULT Delete ();
+};
+
+[object, uuid (12937789-e247-4917-9c20-f3ee9c7ee783), dual, pointer_default (unique)]
+interface IFsrmActionCommand : IFsrmAction {
+  [propget, id (FSRM_DISPID_ACTION_COMMAND | 0x81)] HRESULT ExecutablePath ([out, retval] BSTR *executablePath);
+  [propput, id (FSRM_DISPID_ACTION_COMMAND | 0x81)] HRESULT ExecutablePath ([in] BSTR executablePath);
+  [propget, id (FSRM_DISPID_ACTION_COMMAND | 0x82)] HRESULT Arguments ([out, retval] BSTR *arguments);
+  [propput, id (FSRM_DISPID_ACTION_COMMAND | 0x82)] HRESULT Arguments ([in] BSTR arguments);
+  [propget, id (FSRM_DISPID_ACTION_COMMAND | 0x83)] HRESULT Account ([out, retval] FsrmAccountType *account);
+  [propput, id (FSRM_DISPID_ACTION_COMMAND | 0x83)] HRESULT Account ([in] FsrmAccountType account);
+  [propget, id (FSRM_DISPID_ACTION_COMMAND | 0x84)] HRESULT WorkingDirectory ([out, retval] BSTR *workingDirectory);
+  [propput, id (FSRM_DISPID_ACTION_COMMAND | 0x84)] HRESULT WorkingDirectory ([in] BSTR workingDirectory);
+  [propget, id (FSRM_DISPID_ACTION_COMMAND | 0x85)] HRESULT MonitorCommand ([out, retval] VARIANT_BOOL *monitorCommand);
+  [propput, id (FSRM_DISPID_ACTION_COMMAND | 0x85)] HRESULT MonitorCommand ([in] VARIANT_BOOL monitorCommand);
+  [propget, id (FSRM_DISPID_ACTION_COMMAND | 0x86)] HRESULT KillTimeOut ([out, retval] long *minutes);
+  [propput, id (FSRM_DISPID_ACTION_COMMAND | 0x86)] HRESULT KillTimeOut ([in] long minutes);
+  [propget, id (FSRM_DISPID_ACTION_COMMAND | 0x87)] HRESULT LogResult ([out, retval] VARIANT_BOOL *logResults);
+  [propput, id (FSRM_DISPID_ACTION_COMMAND | 0x87)] HRESULT LogResult ([in] VARIANT_BOOL logResults);
+};
+
+[object, uuid (4c8f96c3-5d94-4f37-a4f4-f56ab463546f), dual, pointer_default (unique)]
+interface IFsrmActionEventLog : IFsrmAction {
+  [propget, id (FSRM_DISPID_ACTION_EVENTLOG | 0x81)] HRESULT EventType ([out, retval] FsrmEventType *eventType);
+  [propput, id (FSRM_DISPID_ACTION_EVENTLOG | 0x81)] HRESULT EventType ([in] FsrmEventType eventType);
+  [propget, id (FSRM_DISPID_ACTION_EVENTLOG | 0x82)] HRESULT MessageText ([out, retval] BSTR *messageText);
+  [propput, id (FSRM_DISPID_ACTION_EVENTLOG | 0x82)] HRESULT MessageText ([in] BSTR messageText);
+};
+
+[object, uuid (2dbe63c4-b340-48a0-a5b0-158e07fc567e), dual, pointer_default (unique)]
+interface IFsrmActionReport : IFsrmAction {
+  [propget, id (FSRM_DISPID_ACTION_REPORT | 0x81)] HRESULT ReportTypes ([out, retval] SAFEARRAY (VARIANT) *reportTypes);
+  [propput, id (FSRM_DISPID_ACTION_REPORT | 0x81)] HRESULT ReportTypes ([in] SAFEARRAY (VARIANT) reportTypes);
+  [propget, id (FSRM_DISPID_ACTION_REPORT | 0x82)] HRESULT MailTo ([out, retval] BSTR *mailTo);
+  [propput, id (FSRM_DISPID_ACTION_REPORT | 0x82)] HRESULT MailTo ([in] BSTR mailTo);
+};
+
+[object, uuid (f76fbf3b-8ddd-4b42-b05a-cb1c3ff1fee8), dual, hidden, nonextensible, pointer_default (unique)]
+interface IFsrmCollection : IDispatch {
+  [propget, id (DISPID_NEWENUM), restricted] HRESULT _NewEnum ([out, retval] IUnknown **unknown);
+  [propget, id (DISPID_VALUE)] HRESULT Item ([in] long index,[out, retval] VARIANT *item);
+  [propget, id (FSRM_DISPID_COLLECTION | 0x81)] HRESULT Count ([out, retval] long *count);
+  [propget, id (FSRM_DISPID_COLLECTION | 0x82)] HRESULT State ([out, retval] FsrmCollectionState *state);
+  [id (FSRM_DISPID_COLLECTION | 0x1)] HRESULT Cancel ();
+  [id (FSRM_DISPID_COLLECTION | 0x2)] HRESULT WaitForCompletion ([in] long waitSeconds,[out, retval] VARIANT_BOOL *completed);
+  [id (FSRM_DISPID_COLLECTION | 0x3)] HRESULT GetById ([in] FSRM_OBJECT_ID id,[out, retval] VARIANT *entry);
+};
+
+[object, uuid (39322a2d-38ee-4d0d-8095-421a80849a82), dual, pointer_default (unique)]
+interface IFsrmDerivedObjectsResult : IDispatch {
+  [propget, id (FSRM_DISPID_DERIVEDOBJECTSRESULT | 0x81)] HRESULT DerivedObjects ([out, retval] IFsrmCollection **derivedObjects);
+  [propget, id (FSRM_DISPID_DERIVEDOBJECTSRESULT | 0x82)] HRESULT Results ([out, retval] IFsrmCollection **results);
+};
+
+[object, uuid (efcb0ab1-16c4-4a79-812c-725614c3306b), dual, pointer_default (unique)]
+interface IFsrmExportImport : IDispatch {
+  [id (FSRM_DISPID_EXPORTIMPORT | 0x1)] HRESULT ExportFileGroups ([in] BSTR filePath,[in, defaultvalue (NULL)] VARIANT *fileGroupNamesSafeArray,[in, defaultvalue (L"")] BSTR remoteHost);
+  [id (FSRM_DISPID_EXPORTIMPORT | 0x2)] HRESULT ImportFileGroups ([in] BSTR filePath,[in, defaultvalue (NULL)] VARIANT *fileGroupNamesSafeArray,[in, defaultvalue (L"")] BSTR remoteHost,[out, retval] IFsrmCommittableCollection **fileGroups);
+  [id (FSRM_DISPID_EXPORTIMPORT | 0x3)] HRESULT ExportFileScreenTemplates ([in] BSTR filePath,[in, defaultvalue (NULL)] VARIANT *templateNamesSafeArray,[in, defaultvalue (L"")] BSTR remoteHost);
+  [id (FSRM_DISPID_EXPORTIMPORT | 0x4)] HRESULT ImportFileScreenTemplates ([in] BSTR filePath,[in, defaultvalue (NULL)] VARIANT *templateNamesSafeArray,[in, defaultvalue (L"")] BSTR remoteHost,[out, retval] IFsrmCommittableCollection **templates);
+  [id (FSRM_DISPID_EXPORTIMPORT | 0x5)] HRESULT ExportQuotaTemplates ([in] BSTR filePath,[in, defaultvalue (NULL)] VARIANT *templateNamesSafeArray,[in, defaultvalue (L"")] BSTR remoteHost);
+  [id (FSRM_DISPID_EXPORTIMPORT | 0x6)] HRESULT ImportQuotaTemplates ([in] BSTR filePath,[in, defaultvalue (NULL)] VARIANT *templateNamesSafeArray,[in, defaultvalue (L"")] BSTR remoteHost,[out, retval] IFsrmCommittableCollection **templates);
+};
+
+[object, uuid (22bcef93-4a3f-4183-89f9-2f8b8a628aee), dual, hidden, nonextensible, pointer_default (unique)]
+interface IFsrmObject : IDispatch {
+  [propget, id (FSRM_DISPID_OBJECT | 0x81)] HRESULT Id ([out, retval] FSRM_OBJECT_ID *id);
+  [propget, id (FSRM_DISPID_OBJECT | 0x82)] HRESULT Description ([out, retval] BSTR *description);
+  [propput, id (FSRM_DISPID_OBJECT | 0x82)] HRESULT Description ([in] BSTR description);
+  [id (FSRM_DISPID_OBJECT | 0x1)] HRESULT Delete ();
+  [id (FSRM_DISPID_OBJECT | 0x2)] HRESULT Commit ();
+};
+
+[object, uuid (6f4dbfff-6920-4821-a6c3-b7e94c1fd60c), dual, pointer_default (unique)]
+interface IFsrmPathMapper : IDispatch {
+  [id (FSRM_DISPID_PATHMAPPER | 0x01)] HRESULT GetSharePathsForLocalPath ([in] BSTR localPath,[out, retval] SAFEARRAY (VARIANT) *sharePaths);
+};
+
+[object, uuid (f411d4fd-14be-4260-8c40-03b7c95e608a), dual, pointer_default (unique)]
+interface IFsrmSetting : IDispatch {
+  [propget, id (FSRM_DISPID_SETTING | 0x81)] HRESULT SmtpServer ([out, retval] BSTR *smtpServer);
+  [propput, id (FSRM_DISPID_SETTING | 0x81)] HRESULT SmtpServer ([in] BSTR smtpServer);
+  [propget, id (FSRM_DISPID_SETTING | 0x82)] HRESULT MailFrom ([out, retval] BSTR *mailFrom);
+  [propput, id (FSRM_DISPID_SETTING | 0x82)] HRESULT MailFrom ([in] BSTR mailFrom);
+  [propget, id (FSRM_DISPID_SETTING | 0x83)] HRESULT AdminEmail ([out, retval] BSTR *adminEmail);
+  [propput, id (FSRM_DISPID_SETTING | 0x83)] HRESULT AdminEmail ([in] BSTR adminEmail);
+  [propget, id (FSRM_DISPID_SETTING | 0x84)] HRESULT DisableCommandLine ([out, retval] VARIANT_BOOL *disableCommandLine);
+  [propput, id (FSRM_DISPID_SETTING | 0x84)] HRESULT DisableCommandLine ([in] VARIANT_BOOL disableCommandLine);
+  [propget, id (FSRM_DISPID_SETTING | 0x85)] HRESULT EnableScreeningAudit ([out, retval] VARIANT_BOOL *enableScreeningAudit);
+  [propput, id (FSRM_DISPID_SETTING | 0x85)] HRESULT EnableScreeningAudit ([in] VARIANT_BOOL enableScreeningAudit);
+  [id (FSRM_DISPID_SETTING | 0x01)] HRESULT EmailTest ([in] BSTR mailTo);
+  [id (FSRM_DISPID_SETTING | 0x02)] HRESULT SetActionRunLimitInterval ([in] FsrmActionType actionType,[in] long delayTimeMinutes);
+  [id (FSRM_DISPID_SETTING | 0x03)] HRESULT GetActionRunLimitInterval ([in] FsrmActionType actionType,[out, retval] long *delayTimeMinutes);
+};
+
+[object, uuid (d646567d-26ae-4caa-9f84-4e0aad207fca), dual, pointer_default (unique)]
+interface IFsrmActionEmail : IFsrmAction {
+  [propget, id (FSRM_DISPID_ACTION_EMAIL | 0x81)] HRESULT MailFrom ([out, retval] BSTR *mailFrom);
+  [propput, id (FSRM_DISPID_ACTION_EMAIL | 0x81)] HRESULT MailFrom ([in] BSTR mailFrom);
+  [propget, id (FSRM_DISPID_ACTION_EMAIL | 0x82)] HRESULT MailReplyTo ([out, retval] BSTR *mailReplyTo);
+  [propput, id (FSRM_DISPID_ACTION_EMAIL | 0x82)] HRESULT MailReplyTo ([in] BSTR mailReplyTo);
+  [propget, id (FSRM_DISPID_ACTION_EMAIL | 0x83)] HRESULT MailTo ([out, retval] BSTR *mailTo);
+  [propput, id (FSRM_DISPID_ACTION_EMAIL | 0x83)] HRESULT MailTo ([in] BSTR mailTo);
+  [propget, id (FSRM_DISPID_ACTION_EMAIL | 0x84)] HRESULT MailCc ([out, retval] BSTR *mailCc);
+  [propput, id (FSRM_DISPID_ACTION_EMAIL | 0x84)] HRESULT MailCc ([in] BSTR mailCc);
+  [propget, id (FSRM_DISPID_ACTION_EMAIL | 0x85)] HRESULT MailBcc ([out, retval] BSTR *mailBcc);
+  [propput, id (FSRM_DISPID_ACTION_EMAIL | 0x85)] HRESULT MailBcc ([in] BSTR mailBcc);
+  [propget, id (FSRM_DISPID_ACTION_EMAIL | 0x86)] HRESULT MailSubject ([out, retval] BSTR *mailSubject);
+  [propput, id (FSRM_DISPID_ACTION_EMAIL | 0x86)] HRESULT MailSubject ([in] BSTR mailSubject);
+  [propget, id (FSRM_DISPID_ACTION_EMAIL | 0x87)] HRESULT MessageText ([out, retval] BSTR *messageText);
+  [propput, id (FSRM_DISPID_ACTION_EMAIL | 0x87)] HRESULT MessageText ([in] BSTR messageText);
+};
+
+[object, uuid (8276702f-2532-4839-89bf-4872609a2ea4), dual, pointer_default (unique)]
+interface IFsrmActionEmail2 : IFsrmActionEmail {
+  [propget, id (FSRM_DISPID_ACTION_EMAIL2 | 0x81)] HRESULT AttachmentFileListSize ([out, retval] long *attachmentFileListSize);
+  [propput, id (FSRM_DISPID_ACTION_EMAIL2 | 0x81)] HRESULT AttachmentFileListSize ([in] long attachmentFileListSize);
+};
+
+[object, uuid (1bb617b8-3886-49dc-af82-a6c90fa35dda), dual, hidden, nonextensible, pointer_default (unique)]
+interface IFsrmMutableCollection : IFsrmCollection {
+  [id (FSRM_DISPID_COLLECTION_MUTABLE | 0x1)] HRESULT Add ([in] VARIANT item);
+  [id (FSRM_DISPID_COLLECTION_MUTABLE | 0x2)] HRESULT Remove ([in] long index);
+  [id (FSRM_DISPID_COLLECTION_MUTABLE | 0x3)] HRESULT RemoveById ([in] FSRM_OBJECT_ID id);
+  [id (FSRM_DISPID_COLLECTION_MUTABLE | 0x4)] HRESULT Clone ([out, retval] IFsrmMutableCollection **collection);
+};
+cpp_quote("#endif")
diff --git a/mingw-w64-headers/include/fsrmenums.h b/mingw-w64-headers/include/fsrmenums.h
index 47fe5cb..2a4f9bd 100644
--- a/mingw-w64-headers/include/fsrmenums.h
+++ b/mingw-w64-headers/include/fsrmenums.h
@@ -1,260 +1,330 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _INC_FSRMENUMS
-#define _INC_FSRMENUMS
-#if (_WIN32_WINNT >= 0x0600)
+/*** Autogenerated by WIDL 1.6 from fsrmenums.idl - Do not edit ***/
+
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __fsrmenums_h__
+#define __fsrmenums_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+#include <oaidl.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
 typedef enum _FsrmAccountType {
-  FsrmAccountType_Unknown          = 0,
-  FsrmAccountType_NetworkService   = 1,
-  FsrmAccountType_LocalService     = 2,
-  FsrmAccountType_LocalSystem      = 3,
-  FsrmAccountType_InProc           = 4,
-  FsrmAccountType_External         = 5 
+    FsrmAccountType_Unknown = 0,
+    FsrmAccountType_NetworkService = 1,
+    FsrmAccountType_LocalService = 2,
+    FsrmAccountType_LocalSystem = 3,
+    FsrmAccountType_InProc = 4,
+    FsrmAccountType_External = 5,
+    FsrmAccountType_Automatic = 500
 } FsrmAccountType;
-
 typedef enum _FsrmActionType {
-  FsrmActionType_Unknown    = 0,
-  FsrmActionType_EventLog   = 1,
-  FsrmActionType_Email      = 2,
-  FsrmActionType_Command    = 3,
-  FsrmActionType_Report     = 4 
+    FsrmActionType_Unknown = 0,
+    FsrmActionType_EventLog = 1,
+    FsrmActionType_Email = 2,
+    FsrmActionType_Command = 3,
+    FsrmActionType_Report = 4
 } FsrmActionType;
-
+typedef enum _AdrClientDisplayFlags {
+    AdrClientDisplayFlags_AllowEmailRequests = 0x1,
+    AdrClientDisplayFlags_ShowDeviceTroubleshooting = 0x2
+} AdrClientDisplayFlags;
+typedef enum _AdrClientErrorType {
+    AdrClientErrorType_Unknown = 0,
+    AdrClientErrorType_AccessDenied = 1,
+    AdrClientErrorType_FileNotFound = 2
+} AdrClientErrorType;
+typedef enum _AdrClientFlags {
+    AdrClientFlags_None = 0x0,
+    AdrClientFlags_FailForLocalPaths = 0x1,
+    AdrClientFlags_FailIfNotSupportedByServer = 0x2,
+    AdrClientFlags_FailIfNotDomainJoined = 0x4
+} AdrClientFlags;
+typedef enum _AdrEmailFlags {
+    AdrEmailFlags_PutDataOwnerOnToLine = 0x1,
+    AdrEmailFlags_PutAdminOnToLine = 0x2,
+    AdrEmailFlags_IncludeDeviceClaims = 0x4,
+    AdrEmailFlags_IncludeUserInfo = 0x8,
+    AdrEmailFlags_GenerateEventLog = 0x10
+} AdrEmailFlags;
 typedef enum _FsrmClassificationLoggingFlags {
-  FsrmClassificationLoggingFlags_None                         = 0x00000000,
-  FsrmClassificationLoggingFlags_ClassificationsInLogFile     = 0x00000001,
-  FsrmClassificationLoggingFlags_ErrorsInLogFile              = 0x00000002,
-  FsrmClassificationLoggingFlags_ClassificationsInSystemLog   = 0x00000004,
-  FsrmClassificationLoggingFlags_ErrorsInSystemLog            = 0x00000008 
+    FsrmClassificationLoggingFlags_None = 0x0,
+    FsrmClassificationLoggingFlags_ClassificationsInLogFile = 0x1,
+    FsrmClassificationLoggingFlags_ErrorsInLogFile = 0x2,
+    FsrmClassificationLoggingFlags_ClassificationsInSystemLog = 0x4,
+    FsrmClassificationLoggingFlags_ErrorsInSystemLog = 0x8
 } FsrmClassificationLoggingFlags;
-
 typedef enum _FsrmCollectionState {
-  FsrmCollectionState_Fetching     = 1,
-  FsrmCollectionState_Committing   = 2,
-  FsrmCollectionState_Complete     = 3,
-  FsrmCollectionState_Cancelled    = 4 
+    FsrmCollectionState_Fetching = 1,
+    FsrmCollectionState_Committing = 2,
+    FsrmCollectionState_Complete = 3,
+    FsrmCollectionState_Cancelled = 4
 } FsrmCollectionState;
-
 typedef enum _FsrmCommitOptions {
-  FsrmCommitOptions_None           = 0x00000000,
-  FsrmCommitOptions_Asynchronous   = 0x00000001 
+    FsrmCommitOptions_None = 0x0,
+    FsrmCommitOptions_Asynchronous = 0x1
 } FsrmCommitOptions;
-
 typedef enum _FsrmEnumOptions {
-  FsrmEnumOptions_None                  = 0x00000000,
-  FsrmEnumOptions_Asynchronous          = 0x00000001,
-  FsrmEnumOptions_CheckRecycleBin       = 0x00000002,
-  FsrmEnumOptions_IncludeClusterNodes   = 0x00000004 
+    FsrmEnumOptions_None = 0x0,
+    FsrmEnumOptions_Asynchronous = 0x1,
+    FsrmEnumOptions_CheckRecycleBin = 0x2,
+    FsrmEnumOptions_IncludeClusterNodes = 0x4,
+    FsrmEnumOptions_IncludeDeprecatedObjects = 0x8
 } FsrmEnumOptions;
-
 typedef enum _FsrmEventType {
-  FsrmEventType_Unknown       = 0,
-  FsrmEventType_Information   = 1,
-  FsrmEventType_Warning       = 2,
-  FsrmEventType_Error         = 3 
+    FsrmEventType_Unknown = 0,
+    FsrmEventType_Information = 1,
+    FsrmEventType_Warning = 2,
+    FsrmEventType_Error = 3
 } FsrmEventType;
-
 typedef enum _FsrmExecutionOption {
-  FsrmExecutionOption_Unknown                            = 0,
-  FsrmExecutionOption_EvaluateUnset                      = 1,
-  FsrmExecutionOption_ReEvaluate_ConsiderExistingValue   = 2,
-  FsrmExecutionOption_ReEvaluate_IgnoreExistingValue     = 3 
+    FsrmExecutionOption_Unknown = 0,
+    FsrmExecutionOption_EvaluateUnset = 1,
+    FsrmExecutionOption_ReEvaluate_ConsiderExistingValue = 2,
+    FsrmExecutionOption_ReEvaluate_IgnoreExistingValue = 3
 } FsrmExecutionOption;
-
+typedef enum _FsrmFileConditionType {
+    FsrmFileConditionType_Unknown = 0,
+    FsrmFileConditionType_Property = 1
+} FsrmFileConditionType;
 typedef enum _FsrmFileManagementLoggingFlags {
-  FsrmFileManagementLoggingFlags_None          = 0x00000000,
-  FsrmFileManagementLoggingFlags_Error         = 0x00000001,
-  FsrmFileManagementLoggingFlags_Information   = 0x00000002,
-  FsrmFileManagementLoggingFlags_Audit         = 0x00000004 
+    FsrmFileManagementLoggingFlags_None = 0x0,
+    FsrmFileManagementLoggingFlags_Error = 0x1,
+    FsrmFileManagementLoggingFlags_Information = 0x2,
+    FsrmFileManagementLoggingFlags_Audit = 0x4
 } FsrmFileManagementLoggingFlags;
-
 typedef enum _FsrmFileManagementType {
-  FsrmFileManagementType_Unknown      = 0,
-  FsrmFileManagementType_Expiration   = 1,
-  FsrmFileManagementType_Custom       = 2 
+    FsrmFileManagementType_Unknown = 0,
+    FsrmFileManagementType_Expiration = 1,
+    FsrmFileManagementType_Custom = 2,
+    FsrmFileManagementType_Rms = 3
 } FsrmFileManagementType;
-
-typedef enum _FsrmFileStreamingInterfaceType {
-  FsrmFileStreamingInterfaceType_Unknown      = 0x00000000,
-  FsrmFileStreamingInterfaceType_ILockBytes   = 0x00000001,
-  FsrmFileStreamingInterfaceType_IStream      = 0x00000002 
-} FsrmFileStreamingInterfaceType;
-
-typedef enum _FsrmFileStreamingMode {
-  FsrmFileStreamingMode_Unknown   = 0x00000000,
-  FsrmFileStreamingMode_Read      = 0x00000001,
-  FsrmFileStreamingMode_Write     = 0x00000002 
-} FsrmFileStreamingMode;
-
 typedef enum _FsrmFileScreenFlags {
-  FsrmFileScreenFlags_Enforce   = 0x00000001 
+    FsrmFileScreenFlags_Enforce = 0x1
 } FsrmFileScreenFlags;
-
+typedef enum _FsrmFileStreamingInterfaceType {
+    FsrmFileStreamingInterfaceType_Unknown = 0x0,
+    FsrmFileStreamingInterfaceType_ILockBytes = 0x1,
+    FsrmFileStreamingInterfaceType_IStream = 0x2
+} FsrmFileStreamingInterfaceType;
+typedef enum _FsrmFileStreamingMode {
+    FsrmFileStreamingMode_Unknown = 0x0,
+    FsrmFileStreamingMode_Read = 0x1,
+    FsrmFileStreamingMode_Write = 0x2
+} FsrmFileStreamingMode;
+typedef enum _FsrmFileSystemPropertyId {
+    FsrmFileSystemPropertyId_Undefined = 0,
+    FsrmFileSystemPropertyId_FileName = 1,
+    FsrmFileSystemPropertyId_DateCreated = 2,
+    FsrmFileSystemPropertyId_DateLastAccessed = 3,
+    FsrmFileSystemPropertyId_DateLastModified = 4,
+    FsrmFileSystemPropertyId_DateNow = 5
+} FsrmFileSystemPropertyId;
+typedef enum _FsrmGetFilePropertyOptions {
+    FsrmGetFilePropertyOptions_None = 0x0,
+    FsrmGetFilePropertyOptions_NoRuleEvaluation = 0x1,
+    FsrmGetFilePropertyOptions_Persistent = 0x2,
+    FsrmGetFilePropertyOptions_FailOnPersistErrors = 0x4,
+    FsrmGetFilePropertyOptions_SkipOrphaned = 0x8
+} FsrmGetFilePropertyOptions;
 typedef enum _FsrmPipelineModuleType {
-  FsrmPipelineModuleType_Unknown      = 0,
-  FsrmPipelineModuleType_Storage      = 1,
-  FsrmPipelineModuleType_Classifier   = 2 
+    FsrmPipelineModuleType_Unknown = 0,
+    FsrmPipelineModuleType_Storage = 1,
+    FsrmPipelineModuleType_Classifier = 2
 } FsrmPipelineModuleType;
-
+typedef enum _FsrmPropertyBagField {
+    FsrmPropertyBagField_AccessVolume = 0,
+    FsrmPropertyBagField_VolumeGuidName = 1
+} FsrmPropertyBagField;
 typedef enum _FsrmPropertyBagFlags {
-  FsrmPropertyBagFlags_UpdatedByClassifier           = 0x00000001,
-  FsrmPropertyBagFlags_FailedLoadingProperties       = 0x00000002,
-  FsrmPropertyBagFlags_FailedSavingProperties        = 0x00000004,
-  FsrmPropertyBagFlags_FailedClassifyingProperties   = 0x00000008 
+    FsrmPropertyBagFlags_UpdatedByClassifier = 0x1,
+    FsrmPropertyBagFlags_FailedLoadingProperties = 0x2,
+    FsrmPropertyBagFlags_FailedSavingProperties = 0x4,
+    FsrmPropertyBagFlags_FailedClassifyingProperties = 0x8
 } FsrmPropertyBagFlags;
-
 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_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_MatchesPattern = 13
 } FsrmPropertyConditionType;
-
+typedef enum _FsrmPropertyDefinitionAppliesTo {
+    FsrmPropertyDefinitionAppliesTo_Files = 0x1,
+    FsrmPropertyDefinitionAppliesTo_Folders = 0x2
+} FsrmPropertyDefinitionAppliesTo;
+typedef enum _FsrmPropertyDefinitionFlags {
+    FsrmPropertyDefinitionFlags_Global = 0x1,
+    FsrmPropertyDefinitionFlags_Deprecated = 0x2,
+    FsrmPropertyDefinitionFlags_Secure = 0x4
+} FsrmPropertyDefinitionFlags;
 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_Unknown = 0,
+    FsrmPropertyDefinitionType_OrderedList = 1,
+    FsrmPropertyDefinitionType_MultiChoiceList = 2,
+    FsrmPropertyDefinitionType_SingleChoiceList = 3,
+    FsrmPropertyDefinitionType_String = 4,
+    FsrmPropertyDefinitionType_MultiString = 5,
+    FsrmPropertyDefinitionType_Int = 6,
+    FsrmPropertyDefinitionType_Bool = 7,
+    FsrmPropertyDefinitionType_Date = 8
 } FsrmPropertyDefinitionType;
-
 typedef enum _FsrmPropertyFlags {
-  FsrmPropertyFlags_Orphaned                      = 0x00000001,
-  FsrmPropertyFlags_RetrievedFromCache            = 0x00000002,
-  FsrmPropertyFlags_RetrievedFromStorage          = 0x00000004,
-  FsrmPropertyFlags_SetByClassifier               = 0x00000008,
-  FsrmPropertyFlags_Deleted                       = 0x00000010,
-  FsrmPropertyFlags_Reclassified                  = 0x00000020,
-  FsrmPropertyFlags_AggregationFailed             = 0x00000040,
-  FsrmPropertyFlags_Existing                      = 0x00000080,
-  FsrmPropertyFlags_FailedLoadingProperties       = 0x00000100,
-  FsrmPropertyFlags_FailedClassifyingProperties   = 0x00000200,
-  FsrmPropertyFlags_PropertySourceMask            = 0x0000000E 
+    FsrmPropertyFlags_None = 0x0,
+    FsrmPropertyFlags_Orphaned = 0x1,
+    FsrmPropertyFlags_RetrievedFromCache = 0x2,
+    FsrmPropertyFlags_RetrievedFromStorage = 0x4,
+    FsrmPropertyFlags_SetByClassifier = 0x8,
+    FsrmPropertyFlags_Deleted = 0x10,
+    FsrmPropertyFlags_Reclassified = 0x20,
+    FsrmPropertyFlags_AggregationFailed = 0x40,
+    FsrmPropertyFlags_Existing = 0x80,
+    FsrmPropertyFlags_FailedLoadingProperties = 0x100,
+    FsrmPropertyFlags_FailedClassifyingProperties = 0x200,
+    FsrmPropertyFlags_FailedSavingProperties = 0x400,
+    FsrmPropertyFlags_Secure = 0x800,
+    FsrmPropertyFlags_PolicyDerived = 0x1000,
+    FsrmPropertyFlags_Inherited = 0x2000,
+    FsrmPropertyFlags_Manual = 0x4000,
+    FsrmPropertyFlags_ExplicitValueDeleted = 0x8000,
+    FsrmPropertyFlags_PropertySourceMask = (FsrmPropertyFlags_RetrievedFromCache | FsrmPropertyFlags_RetrievedFromStorage) | FsrmPropertyFlags_SetByClassifier,
+    FsrmPropertyFlags_PersistentMask = FsrmPropertyFlags_PolicyDerived | FsrmPropertyFlags_Manual
 } FsrmPropertyFlags;
-
+typedef enum _FsrmPropertyValueType {
+    FsrmPropertyValueType_Undefined = 0,
+    FsrmPropertyValueType_Literal = 1,
+    FsrmPropertyValueType_DateOffset = 2
+} FsrmPropertyValueType;
 typedef enum _FsrmQuotaFlags {
-  FsrmQuotaFlags_Enforce            = 0x00000100,
-  FsrmQuotaFlags_Disable            = 0x00000200,
-  FsrmQuotaFlags_StatusIncomplete   = 0x00010000,
-  FsrmQuotaFlags_StatusRebuilding   = 0x00020000 
+    FsrmQuotaFlags_Enforce = 0x100,
+    FsrmQuotaFlags_Disable = 0x200,
+    FsrmQuotaFlags_StatusIncomplete = 0x10000,
+    FsrmQuotaFlags_StatusRebuilding = 0x20000
 } FsrmQuotaFlags;
-
 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_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 _FsrmReportFormat {
-  FsrmReportFormat_Unknown   = 0,
-  FsrmReportFormat_DHtml     = 1,
-  FsrmReportFormat_Html      = 2,
-  FsrmReportFormat_Txt       = 3,
-  FsrmReportFormat_Csv       = 4,
-  FsrmReportFormat_Xml       = 5 
+    FsrmReportFormat_Unknown = 0,
+    FsrmReportFormat_DHtml = 1,
+    FsrmReportFormat_Html = 2,
+    FsrmReportFormat_Txt = 3,
+    FsrmReportFormat_Csv = 4,
+    FsrmReportFormat_Xml = 5
 } FsrmReportFormat;
-
 typedef enum _FsrmReportGenerationContext {
-  FsrmReportGenerationContext_Undefined           = 1,
-  FsrmReportGenerationContext_ScheduledReport     = 2,
-  FsrmReportGenerationContext_InteractiveReport   = 3,
-  FsrmReportGenerationContext_IncidentReport      = 4 
+    FsrmReportGenerationContext_Undefined = 1,
+    FsrmReportGenerationContext_ScheduledReport = 2,
+    FsrmReportGenerationContext_InteractiveReport = 3,
+    FsrmReportGenerationContext_IncidentReport = 4
 } FsrmReportGenerationContext;
-
 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_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_MaxFolders = 12
 } FsrmReportLimit;
-
 typedef enum _FsrmReportRunningStatus {
-  FsrmReportRunningStatus_Unknown      = 0,
-  FsrmReportRunningStatus_NotRunning   = 1,
-  FsrmReportRunningStatus_Queued       = 2,
-  FsrmReportRunningStatus_Running      = 3 
+    FsrmReportRunningStatus_Unknown = 0,
+    FsrmReportRunningStatus_NotRunning = 1,
+    FsrmReportRunningStatus_Queued = 2,
+    FsrmReportRunningStatus_Running = 3
 } FsrmReportRunningStatus;
-
 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_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_FoldersByProperty = 13
 } FsrmReportType;
-
 typedef enum _FsrmRuleFlags {
-  FsrmRuleFlags_Disabled   = 0x00000100,
-  FsrmRuleFlags_Invalid    = 0x00001000 
+    FsrmRuleFlags_Disabled = 0x100,
+    FsrmRuleFlags_Invalid = 0x1000
 } FsrmRuleFlags;
-
 typedef enum _FsrmRuleType {
-  FsrmRuleType_Unknown          = 0,
-  FsrmRuleType_Classification   = 1,
-  FsrmRuleType_Generic          = 2 
+    FsrmRuleType_Unknown = 0,
+    FsrmRuleType_Classification = 1,
+    FsrmRuleType_Generic = 2
 } FsrmRuleType;
-
 typedef enum _FsrmStorageModuleCaps {
-  FsrmStorageModuleCaps_Unknown   = 0x00000000,
-  FsrmStorageModuleCaps_CanGet    = 0x00000001,
-  FsrmStorageModuleCaps_CanSet    = 0x00000002 
+    FsrmStorageModuleCaps_Unknown = 0x0,
+    FsrmStorageModuleCaps_CanGet = 0x1,
+    FsrmStorageModuleCaps_CanSet = 0x2,
+    FsrmStorageModuleCaps_CanHandleDirectories = 0x4,
+    FsrmStorageModuleCaps_CanHandleFiles = 0x8
 } FsrmStorageModuleCaps;
-
 typedef enum _FsrmStorageModuleType {
-  FsrmStorageModuleType_Unknown    = 0,
-  FsrmStorageModuleType_Cache      = 1,
-  FsrmStorageModuleType_InFile     = 2,
-  FsrmStorageModuleType_Database   = 3 
+    FsrmStorageModuleType_Unknown = 0,
+    FsrmStorageModuleType_Cache = 1,
+    FsrmStorageModuleType_InFile = 2,
+    FsrmStorageModuleType_Database = 3,
+    FsrmStorageModuleType_System = 100
 } FsrmStorageModuleType;
-
 typedef enum _FsrmTemplateApplyOptions {
-  FsrmTemplateApplyOptions_ApplyToDerivedMatching   = 1,
-  FsrmTemplateApplyOptions_ApplyToDerivedAll        = 2 
+    FsrmTemplateApplyOptions_ApplyToDerivedMatching = 1,
+    FsrmTemplateApplyOptions_ApplyToDerivedAll = 2
 } FsrmTemplateApplyOptions;
+typedef GUID FSRM_OBJECT_ID;
+#endif
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /*(_WIN32_WINNT >= 0x0600)*/
-#endif /*_INC_FSRMENUMS*/
+#endif /* __fsrmenums_h__ */
diff --git a/mingw-w64-headers/include/fsrmenums.idl b/mingw-w64-headers/include/fsrmenums.idl
new file mode 100644
index 0000000..3f49e4a
--- /dev/null
+++ b/mingw-w64-headers/include/fsrmenums.idl
@@ -0,0 +1,342 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+import "oaidl.idl";
+
+cpp_quote("#include <winapifamily.h>")
+cpp_quote("")
+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+
+typedef enum _FsrmAccountType {
+  FsrmAccountType_Unknown = 0,
+  FsrmAccountType_NetworkService = 1,
+  FsrmAccountType_LocalService = 2,
+  FsrmAccountType_LocalSystem = 3,
+  FsrmAccountType_InProc = 4,
+  FsrmAccountType_External = 5,
+  FsrmAccountType_Automatic = 500
+} FsrmAccountType;
+
+typedef enum _FsrmActionType {
+  FsrmActionType_Unknown = 0,
+  FsrmActionType_EventLog = 1,
+  FsrmActionType_Email = 2,
+  FsrmActionType_Command = 3,
+  FsrmActionType_Report = 4
+} FsrmActionType;
+
+typedef enum _AdrClientDisplayFlags {
+  AdrClientDisplayFlags_AllowEmailRequests = 0x1,
+  AdrClientDisplayFlags_ShowDeviceTroubleshooting = 0x2
+} AdrClientDisplayFlags;
+
+typedef enum _AdrClientErrorType {
+  AdrClientErrorType_Unknown = 0,
+  AdrClientErrorType_AccessDenied = 1,
+  AdrClientErrorType_FileNotFound = 2,
+} AdrClientErrorType;
+
+typedef enum _AdrClientFlags {
+  AdrClientFlags_None = 0x0,
+  AdrClientFlags_FailForLocalPaths = 0x1,
+  AdrClientFlags_FailIfNotSupportedByServer = 0x2,
+  AdrClientFlags_FailIfNotDomainJoined = 0x4
+} AdrClientFlags;
+
+typedef enum _AdrEmailFlags {
+  AdrEmailFlags_PutDataOwnerOnToLine = 0x1,
+  AdrEmailFlags_PutAdminOnToLine = 0x2,
+  AdrEmailFlags_IncludeDeviceClaims = 0x4,
+  AdrEmailFlags_IncludeUserInfo = 0x8,
+  AdrEmailFlags_GenerateEventLog = 0x10
+} AdrEmailFlags;
+
+typedef enum _FsrmClassificationLoggingFlags {
+  FsrmClassificationLoggingFlags_None = 0x00000000,
+  FsrmClassificationLoggingFlags_ClassificationsInLogFile = 0x00000001,
+  FsrmClassificationLoggingFlags_ErrorsInLogFile = 0x00000002,
+  FsrmClassificationLoggingFlags_ClassificationsInSystemLog = 0x00000004,
+  FsrmClassificationLoggingFlags_ErrorsInSystemLog = 0x00000008
+} FsrmClassificationLoggingFlags;
+
+typedef enum _FsrmCollectionState {
+  FsrmCollectionState_Fetching = 1,
+  FsrmCollectionState_Committing = 2,
+  FsrmCollectionState_Complete = 3,
+  FsrmCollectionState_Cancelled = 4
+} FsrmCollectionState;
+
+typedef enum _FsrmCommitOptions {
+  FsrmCommitOptions_None = 0x0,
+  FsrmCommitOptions_Asynchronous = 0x1
+} FsrmCommitOptions;
+
+typedef enum _FsrmEnumOptions {
+  FsrmEnumOptions_None = 0x0,
+  FsrmEnumOptions_Asynchronous = 0x1,
+  FsrmEnumOptions_CheckRecycleBin = 0x2,
+  FsrmEnumOptions_IncludeClusterNodes = 0x4,
+  FsrmEnumOptions_IncludeDeprecatedObjects = 0x8
+} FsrmEnumOptions;
+
+typedef enum _FsrmEventType {
+  FsrmEventType_Unknown = 0,
+  FsrmEventType_Information = 1,
+  FsrmEventType_Warning = 2,
+  FsrmEventType_Error = 3
+} FsrmEventType;
+
+typedef enum _FsrmExecutionOption {
+  FsrmExecutionOption_Unknown = 0,
+  FsrmExecutionOption_EvaluateUnset = 1,
+  FsrmExecutionOption_ReEvaluate_ConsiderExistingValue = 2,
+  FsrmExecutionOption_ReEvaluate_IgnoreExistingValue = 3
+} FsrmExecutionOption;
+
+typedef enum _FsrmFileConditionType {
+  FsrmFileConditionType_Unknown = 0,
+  FsrmFileConditionType_Property = 1
+} FsrmFileConditionType;
+
+typedef enum _FsrmFileManagementLoggingFlags {
+  FsrmFileManagementLoggingFlags_None = 0x0,
+  FsrmFileManagementLoggingFlags_Error = 0x1,
+  FsrmFileManagementLoggingFlags_Information = 0x2,
+  FsrmFileManagementLoggingFlags_Audit = 0x4
+} FsrmFileManagementLoggingFlags;
+
+typedef enum _FsrmFileManagementType {
+  FsrmFileManagementType_Unknown = 0,
+  FsrmFileManagementType_Expiration = 1,
+  FsrmFileManagementType_Custom = 2,
+  FsrmFileManagementType_Rms = 3
+} FsrmFileManagementType;
+
+typedef enum _FsrmFileScreenFlags {
+  FsrmFileScreenFlags_Enforce = 0x1
+} FsrmFileScreenFlags;
+
+typedef enum _FsrmFileStreamingInterfaceType {
+  FsrmFileStreamingInterfaceType_Unknown = 0x0,
+  FsrmFileStreamingInterfaceType_ILockBytes = 0x1,
+  FsrmFileStreamingInterfaceType_IStream = 0x2
+} FsrmFileStreamingInterfaceType;
+
+typedef enum _FsrmFileStreamingMode {
+  FsrmFileStreamingMode_Unknown = 0x0,
+  FsrmFileStreamingMode_Read = 0x1,
+  FsrmFileStreamingMode_Write = 0x2
+} FsrmFileStreamingMode;
+
+typedef enum _FsrmFileSystemPropertyId {
+  FsrmFileSystemPropertyId_Undefined = 0,
+  FsrmFileSystemPropertyId_FileName = 1,
+  FsrmFileSystemPropertyId_DateCreated = 2,
+  FsrmFileSystemPropertyId_DateLastAccessed = 3,
+  FsrmFileSystemPropertyId_DateLastModified = 4,
+  FsrmFileSystemPropertyId_DateNow = 5,
+} FsrmFileSystemPropertyId;
+
+typedef enum _FsrmGetFilePropertyOptions {
+  FsrmGetFilePropertyOptions_None = 0x0,
+  FsrmGetFilePropertyOptions_NoRuleEvaluation = 0x1,
+  FsrmGetFilePropertyOptions_Persistent = 0x2,
+  FsrmGetFilePropertyOptions_FailOnPersistErrors = 0x4,
+  FsrmGetFilePropertyOptions_SkipOrphaned = 0x8
+} FsrmGetFilePropertyOptions;
+
+typedef enum _FsrmPipelineModuleType {
+  FsrmPipelineModuleType_Unknown = 0,
+  FsrmPipelineModuleType_Storage = 1,
+  FsrmPipelineModuleType_Classifier = 2
+} FsrmPipelineModuleType;
+
+typedef enum _FsrmPropertyBagField {
+  FsrmPropertyBagField_AccessVolume = 0,
+  FsrmPropertyBagField_VolumeGuidName = 1
+} FsrmPropertyBagField;
+
+typedef enum _FsrmPropertyBagFlags {
+  FsrmPropertyBagFlags_UpdatedByClassifier = 0x1,
+  FsrmPropertyBagFlags_FailedLoadingProperties = 0x2,
+  FsrmPropertyBagFlags_FailedSavingProperties = 0x4,
+  FsrmPropertyBagFlags_FailedClassifyingProperties = 0x8
+} FsrmPropertyBagFlags;
+
+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_MatchesPattern = 13
+} FsrmPropertyConditionType;
+
+typedef enum _FsrmPropertyDefinitionAppliesTo {
+  FsrmPropertyDefinitionAppliesTo_Files = 0x00000001,
+  FsrmPropertyDefinitionAppliesTo_Folders = 0x00000002,
+} FsrmPropertyDefinitionAppliesTo;
+
+typedef enum _FsrmPropertyDefinitionFlags {
+  FsrmPropertyDefinitionFlags_Global = 0x00000001,
+  FsrmPropertyDefinitionFlags_Deprecated = 0x00000002,
+  FsrmPropertyDefinitionFlags_Secure = 0x00000004,
+} FsrmPropertyDefinitionFlags;
+
+typedef enum _FsrmPropertyDefinitionType {
+  FsrmPropertyDefinitionType_Unknown = 0,
+  FsrmPropertyDefinitionType_OrderedList = 1,
+  FsrmPropertyDefinitionType_MultiChoiceList = 2,
+  FsrmPropertyDefinitionType_SingleChoiceList = 3,
+  FsrmPropertyDefinitionType_String = 4,
+  FsrmPropertyDefinitionType_MultiString = 5,
+  FsrmPropertyDefinitionType_Int = 6,
+  FsrmPropertyDefinitionType_Bool = 7,
+  FsrmPropertyDefinitionType_Date = 8
+} FsrmPropertyDefinitionType;
+
+typedef enum _FsrmPropertyFlags {
+  FsrmPropertyFlags_None = 0x0,
+  FsrmPropertyFlags_Orphaned = 0x1,
+  FsrmPropertyFlags_RetrievedFromCache = 0x2,
+  FsrmPropertyFlags_RetrievedFromStorage = 0x4,
+  FsrmPropertyFlags_SetByClassifier = 0x8,
+  FsrmPropertyFlags_Deleted = 0x10,
+  FsrmPropertyFlags_Reclassified = 0x20,
+  FsrmPropertyFlags_AggregationFailed = 0x40,
+  FsrmPropertyFlags_Existing = 0x80,
+  FsrmPropertyFlags_FailedLoadingProperties = 0x100,
+  FsrmPropertyFlags_FailedClassifyingProperties = 0x200,
+  FsrmPropertyFlags_FailedSavingProperties = 0x400,
+  FsrmPropertyFlags_Secure = 0x800,
+  FsrmPropertyFlags_PolicyDerived = 0x1000,
+  FsrmPropertyFlags_Inherited = 0x2000,
+  FsrmPropertyFlags_Manual = 0x4000,
+  FsrmPropertyFlags_ExplicitValueDeleted = 0x8000,
+  FsrmPropertyFlags_PropertySourceMask = FsrmPropertyFlags_RetrievedFromCache | FsrmPropertyFlags_RetrievedFromStorage | FsrmPropertyFlags_SetByClassifier,
+  FsrmPropertyFlags_PersistentMask = FsrmPropertyFlags_PolicyDerived | FsrmPropertyFlags_Manual
+} FsrmPropertyFlags;
+
+typedef enum _FsrmPropertyValueType {
+  FsrmPropertyValueType_Undefined = 0,
+  FsrmPropertyValueType_Literal = 1,
+  FsrmPropertyValueType_DateOffset = 2
+} FsrmPropertyValueType;
+
+typedef enum _FsrmQuotaFlags {
+  FsrmQuotaFlags_Enforce = 0x100,
+  FsrmQuotaFlags_Disable = 0x200,
+  FsrmQuotaFlags_StatusIncomplete = 0x10000,
+  FsrmQuotaFlags_StatusRebuilding = 0x20000
+} FsrmQuotaFlags;
+
+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 _FsrmReportFormat {
+  FsrmReportFormat_Unknown = 0,
+  FsrmReportFormat_DHtml = 1,
+  FsrmReportFormat_Html = 2,
+  FsrmReportFormat_Txt = 3,
+  FsrmReportFormat_Csv = 4,
+  FsrmReportFormat_Xml = 5
+} FsrmReportFormat;
+
+typedef enum _FsrmReportGenerationContext {
+  FsrmReportGenerationContext_Undefined = 1,
+  FsrmReportGenerationContext_ScheduledReport = 2,
+  FsrmReportGenerationContext_InteractiveReport = 3,
+  FsrmReportGenerationContext_IncidentReport = 4
+} FsrmReportGenerationContext;
+
+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_MaxFolders = 12
+} FsrmReportLimit;
+
+typedef enum _FsrmReportRunningStatus {
+  FsrmReportRunningStatus_Unknown = 0,
+  FsrmReportRunningStatus_NotRunning = 1,
+  FsrmReportRunningStatus_Queued = 2,
+  FsrmReportRunningStatus_Running = 3
+} FsrmReportRunningStatus;
+
+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_FoldersByProperty = 13
+} FsrmReportType;
+
+typedef enum _FsrmRuleFlags {
+  FsrmRuleFlags_Disabled = 0x00000100,
+  FsrmRuleFlags_Invalid = 0x00001000
+} FsrmRuleFlags;
+
+typedef enum _FsrmRuleType {
+  FsrmRuleType_Unknown = 0,
+  FsrmRuleType_Classification = 1,
+  FsrmRuleType_Generic = 2
+} FsrmRuleType;
+
+typedef enum _FsrmStorageModuleCaps {
+  FsrmStorageModuleCaps_Unknown = 0x0,
+  FsrmStorageModuleCaps_CanGet = 0x1,
+  FsrmStorageModuleCaps_CanSet = 0x2,
+  FsrmStorageModuleCaps_CanHandleDirectories = 0x4,
+  FsrmStorageModuleCaps_CanHandleFiles = 0x8
+} FsrmStorageModuleCaps;
+
+typedef enum _FsrmStorageModuleType {
+  FsrmStorageModuleType_Unknown = 0,
+  FsrmStorageModuleType_Cache = 1,
+  FsrmStorageModuleType_InFile = 2,
+  FsrmStorageModuleType_Database = 3,
+  FsrmStorageModuleType_System = 100
+} FsrmStorageModuleType;
+
+typedef enum _FsrmTemplateApplyOptions {
+  FsrmTemplateApplyOptions_ApplyToDerivedMatching = 1,
+  FsrmTemplateApplyOptions_ApplyToDerivedAll = 2
+} FsrmTemplateApplyOptions;
+
+typedef GUID FSRM_OBJECT_ID;
+cpp_quote("#endif")