text: /*** Autogenerated by WIDL 4.12.1 from include/fsrm.idl - Do not edit ***/
  
  #ifdef _WIN32
  #ifndef __REQUIRED_RPCNDR_H_VERSION__
  #define __REQUIRED_RPCNDR_H_VERSION__ 475
  #endif
  #include <rpc.h>
  #include <rpcndr.h>
  #endif
  
  #ifndef COM_NO_WINDOWS_H
  #include <windows.h>
  #include <ole2.h>
  #endif
  
  #ifndef __fsrm_h__
  #define __fsrm_h__
  
  /* Forward declarations */
  
  #ifndef __IFsrmCommittableCollection_FWD_DEFINED__
  #define __IFsrmCommittableCollection_FWD_DEFINED__
  typedef interface IFsrmCommittableCollection IFsrmCommittableCollection;
  #ifdef __cplusplus
  interface IFsrmCommittableCollection;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmAccessDeniedRemediationClient_FWD_DEFINED__
  #define __IFsrmAccessDeniedRemediationClient_FWD_DEFINED__
  typedef interface IFsrmAccessDeniedRemediationClient IFsrmAccessDeniedRemediationClient;
  #ifdef __cplusplus
  interface IFsrmAccessDeniedRemediationClient;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmAction_FWD_DEFINED__
  #define __IFsrmAction_FWD_DEFINED__
  typedef interface IFsrmAction IFsrmAction;
  #ifdef __cplusplus
  interface IFsrmAction;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmActionCommand_FWD_DEFINED__
  #define __IFsrmActionCommand_FWD_DEFINED__
  typedef interface IFsrmActionCommand IFsrmActionCommand;
  #ifdef __cplusplus
  interface IFsrmActionCommand;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmActionEventLog_FWD_DEFINED__
  #define __IFsrmActionEventLog_FWD_DEFINED__
  typedef interface IFsrmActionEventLog IFsrmActionEventLog;
  #ifdef __cplusplus
  interface IFsrmActionEventLog;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmActionReport_FWD_DEFINED__
  #define __IFsrmActionReport_FWD_DEFINED__
  typedef interface IFsrmActionReport IFsrmActionReport;
  #ifdef __cplusplus
  interface IFsrmActionReport;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmCollection_FWD_DEFINED__
  #define __IFsrmCollection_FWD_DEFINED__
  typedef interface IFsrmCollection IFsrmCollection;
  #ifdef __cplusplus
  interface IFsrmCollection;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmDerivedObjectsResult_FWD_DEFINED__
  #define __IFsrmDerivedObjectsResult_FWD_DEFINED__
  typedef interface IFsrmDerivedObjectsResult IFsrmDerivedObjectsResult;
  #ifdef __cplusplus
  interface IFsrmDerivedObjectsResult;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmExportImport_FWD_DEFINED__
  #define __IFsrmExportImport_FWD_DEFINED__
  typedef interface IFsrmExportImport IFsrmExportImport;
  #ifdef __cplusplus
  interface IFsrmExportImport;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmObject_FWD_DEFINED__
  #define __IFsrmObject_FWD_DEFINED__
  typedef interface IFsrmObject IFsrmObject;
  #ifdef __cplusplus
  interface IFsrmObject;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmPathMapper_FWD_DEFINED__
  #define __IFsrmPathMapper_FWD_DEFINED__
  typedef interface IFsrmPathMapper IFsrmPathMapper;
  #ifdef __cplusplus
  interface IFsrmPathMapper;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmSetting_FWD_DEFINED__
  #define __IFsrmSetting_FWD_DEFINED__
  typedef interface IFsrmSetting IFsrmSetting;
  #ifdef __cplusplus
  interface IFsrmSetting;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmActionEmail_FWD_DEFINED__
  #define __IFsrmActionEmail_FWD_DEFINED__
  typedef interface IFsrmActionEmail IFsrmActionEmail;
  #ifdef __cplusplus
  interface IFsrmActionEmail;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmActionEmail2_FWD_DEFINED__
  #define __IFsrmActionEmail2_FWD_DEFINED__
  typedef interface IFsrmActionEmail2 IFsrmActionEmail2;
  #ifdef __cplusplus
  interface IFsrmActionEmail2;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmMutableCollection_FWD_DEFINED__
  #define __IFsrmMutableCollection_FWD_DEFINED__
  typedef interface IFsrmMutableCollection IFsrmMutableCollection;
  #ifdef __cplusplus
  interface IFsrmMutableCollection;
  #endif /* __cplusplus */
  #endif
  
  /* Headers for imported files */
  
  #include <oaidl.h>
  #include <fsrmenums.h>
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  #include <winapifamily.h>
  
  #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  #ifndef __IFsrmObject_FWD_DEFINED__
  #define __IFsrmObject_FWD_DEFINED__
  typedef interface IFsrmObject IFsrmObject;
  #ifdef __cplusplus
  interface IFsrmObject;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmCollection_FWD_DEFINED__
  #define __IFsrmCollection_FWD_DEFINED__
  typedef interface IFsrmCollection IFsrmCollection;
  #ifdef __cplusplus
  interface IFsrmCollection;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmMutableCollection_FWD_DEFINED__
  #define __IFsrmMutableCollection_FWD_DEFINED__
  typedef interface IFsrmMutableCollection IFsrmMutableCollection;
  #ifdef __cplusplus
  interface IFsrmMutableCollection;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmCommittableCollection_FWD_DEFINED__
  #define __IFsrmCommittableCollection_FWD_DEFINED__
  typedef interface IFsrmCommittableCollection IFsrmCommittableCollection;
  #ifdef __cplusplus
  interface IFsrmCommittableCollection;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmAction_FWD_DEFINED__
  #define __IFsrmAction_FWD_DEFINED__
  typedef interface IFsrmAction IFsrmAction;
  #ifdef __cplusplus
  interface IFsrmAction;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmActionEmail_FWD_DEFINED__
  #define __IFsrmActionEmail_FWD_DEFINED__
  typedef interface IFsrmActionEmail IFsrmActionEmail;
  #ifdef __cplusplus
  interface IFsrmActionEmail;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmActionReport_FWD_DEFINED__
  #define __IFsrmActionReport_FWD_DEFINED__
  typedef interface IFsrmActionReport IFsrmActionReport;
  #ifdef __cplusplus
  interface IFsrmActionReport;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmActionEventLog_FWD_DEFINED__
  #define __IFsrmActionEventLog_FWD_DEFINED__
  typedef interface IFsrmActionEventLog IFsrmActionEventLog;
  #ifdef __cplusplus
  interface IFsrmActionEventLog;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmActionCommand_FWD_DEFINED__
  #define __IFsrmActionCommand_FWD_DEFINED__
  typedef interface IFsrmActionCommand IFsrmActionCommand;
  #ifdef __cplusplus
  interface IFsrmActionCommand;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmSetting_FWD_DEFINED__
  #define __IFsrmSetting_FWD_DEFINED__
  typedef interface IFsrmSetting IFsrmSetting;
  #ifdef __cplusplus
  interface IFsrmSetting;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmPathMapper_FWD_DEFINED__
  #define __IFsrmPathMapper_FWD_DEFINED__
  typedef interface IFsrmPathMapper IFsrmPathMapper;
  #ifdef __cplusplus
  interface IFsrmPathMapper;
  #endif /* __cplusplus */
  #endif
  
  #ifndef __IFsrmExportImport_FWD_DEFINED__
  #define __IFsrmExportImport_FWD_DEFINED__
  typedef interface IFsrmExportImport IFsrmExportImport;
  #ifdef __cplusplus
  interface IFsrmExportImport;
  #endif /* __cplusplus */
  #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 ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          IFsrmCommittableCollection *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          IFsrmCommittableCollection *This);
  
      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
  
  
  #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,
          BSTR windowMessage,
          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
  
  
  #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_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
  #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
  #endif
  
  #endif
  
  
  #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 ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          IFsrmActionCommand *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          IFsrmActionCommand *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          IFsrmActionCommand *This);
  
      /*** 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_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
  #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)
  #define IFsrmActionCommand_put_Arguments(This,arguments) (This)->lpVtbl->put_Arguments(This,arguments)
  #define IFsrmActionCommand_get_Account(This,account) (This)->lpVtbl->get_Account(This,account)
  #define IFsrmActionCommand_put_Account(This,account) (This)->lpVtbl->put_Account(This,account)
  #define IFsrmActionCommand_get_WorkingDirectory(This,workingDirectory) (This)->lpVtbl->get_WorkingDirectory(This,workingDirectory)
  #define IFsrmActionCommand_put_WorkingDirectory(This,workingDirectory) (This)->lpVtbl->put_WorkingDirectory(This,workingDirectory)
  #define IFsrmActionCommand_get_MonitorCommand(This,monitorCommand) (This)->lpVtbl->get_MonitorCommand(This,monitorCommand)
  #define IFsrmActionCommand_put_MonitorCommand(This,monitorCommand) (This)->lpVtbl->put_MonitorCommand(This,monitorCommand)
  #define IFsrmActionCommand_get_KillTimeOut(This,minutes) (This)->lpVtbl->get_KillTimeOut(This,minutes)
  #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)
  #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
  #endif
  
  #endif
  
  
  #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 ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          IFsrmActionEventLog *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          IFsrmActionEventLog *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          IFsrmActionEventLog *This);
  
      /*** 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
  
  
  #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
  
  
  #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
  
  
  #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
  
  
  #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,
          BSTR remoteHost,
          IFsrmCommittableCollection **fileGroups) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE ExportFileScreenTemplates(
          BSTR filePath,
          VARIANT *templateNamesSafeArray = 0,
          BSTR remoteHost = L"") = 0;
  
      virtual HRESULT STDMETHODCALLTYPE ImportFileScreenTemplates(
          BSTR filePath,
          VARIANT *templateNamesSafeArray,
          BSTR remoteHost,
          IFsrmCommittableCollection **templates) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE ExportQuotaTemplates(
          BSTR filePath,
          VARIANT *templateNamesSafeArray = 0,
          BSTR remoteHost = L"") = 0;
  
      virtual HRESULT STDMETHODCALLTYPE ImportQuotaTemplates(
          BSTR filePath,
          VARIANT *templateNamesSafeArray,
          BSTR remoteHost,
          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
  
  
  #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
  
  
  #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
  
  
  #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
  
  
  #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_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
  #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)
  #define IFsrmActionEmail_put_MailReplyTo(This,mailReplyTo) (This)->lpVtbl->put_MailReplyTo(This,mailReplyTo)
  #define IFsrmActionEmail_get_MailTo(This,mailTo) (This)->lpVtbl->get_MailTo(This,mailTo)
  #define IFsrmActionEmail_put_MailTo(This,mailTo) (This)->lpVtbl->put_MailTo(This,mailTo)
  #define IFsrmActionEmail_get_MailCc(This,mailCc) (This)->lpVtbl->get_MailCc(This,mailCc)
  #define IFsrmActionEmail_put_MailCc(This,mailCc) (This)->lpVtbl->put_MailCc(This,mailCc)
  #define IFsrmActionEmail_get_MailBcc(This,mailBcc) (This)->lpVtbl->get_MailBcc(This,mailBcc)
  #define IFsrmActionEmail_put_MailBcc(This,mailBcc) (This)->lpVtbl->put_MailBcc(This,mailBcc)
  #define IFsrmActionEmail_get_MailSubject(This,mailSubject) (This)->lpVtbl->get_MailSubject(This,mailSubject)
  #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)
  #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
  #endif
  
  #endif
  
  
  #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 ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          IFsrmActionEmail2 *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          IFsrmActionEmail2 *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          IFsrmActionEmail2 *This);
  
      /*** IDispatch methods ***/
      HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
          IFsrmActionEmail2 *This,
          UINT *pctinfo);
  
      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_get_RunLimitInterval(This,minutes) (This)->lpVtbl->get_RunLimitInterval(This,minutes)
  #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)
  #define IFsrmActionEmail2_put_MailReplyTo(This,mailReplyTo) (This)->lpVtbl->put_MailReplyTo(This,mailReplyTo)
  #define IFsrmActionEmail2_get_MailTo(This,mailTo) (This)->lpVtbl->get_MailTo(This,mailTo)
  #define IFsrmActionEmail2_put_MailTo(This,mailTo) (This)->lpVtbl->put_MailTo(This,mailTo)
  #define IFsrmActionEmail2_get_MailCc(This,mailCc) (This)->lpVtbl->get_MailCc(This,mailCc)
  #define IFsrmActionEmail2_put_MailCc(This,mailCc) (This)->lpVtbl->put_MailCc(This,mailCc)
  #define IFsrmActionEmail2_get_MailBcc(This,mailBcc) (This)->lpVtbl->get_MailBcc(This,mailBcc)
  #define IFsrmActionEmail2_put_MailBcc(This,mailBcc) (This)->lpVtbl->put_MailBcc(This,mailBcc)
  #define IFsrmActionEmail2_get_MailSubject(This,mailSubject) (This)->lpVtbl->get_MailSubject(This,mailSubject)
  #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)
  /*** 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)
  #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
  #endif
  
  #endif
  
  
  #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 ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          IFsrmMutableCollection *This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          IFsrmMutableCollection *This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          IFsrmMutableCollection *This);
  
      /*** 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
  #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)
  /*** 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) (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)
  #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
  #endif
  
  #endif
  
  
  #endif  /* __IFsrmMutableCollection_INTERFACE_DEFINED__ */
  
  #endif
  /* Begin additional prototypes for all interfaces */
  
  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 *);
  
  /* End additional prototypes */
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif /* __fsrm_h__ */
  