/*** Autogenerated by WIDL 10.0-rc1 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 inline HRESULT IFsrmCommittableCollection_QueryInterface(IFsrmCommittableCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmCommittableCollection_AddRef(IFsrmCommittableCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmCommittableCollection_Release(IFsrmCommittableCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmCommittableCollection_GetTypeInfoCount(IFsrmCommittableCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmCommittableCollection_GetTypeInfo(IFsrmCommittableCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmCommittableCollection_get__NewEnum(IFsrmCommittableCollection* This,IUnknown **unknown) {
    return This->lpVtbl->get__NewEnum(This,unknown);
}
static inline HRESULT IFsrmCommittableCollection_get_Item(IFsrmCommittableCollection* This,LONG index,VARIANT *item) {
    return This->lpVtbl->get_Item(This,index,item);
}
static inline HRESULT IFsrmCommittableCollection_get_Count(IFsrmCommittableCollection* This,LONG *count) {
    return This->lpVtbl->get_Count(This,count);
}
static inline HRESULT IFsrmCommittableCollection_get_State(IFsrmCommittableCollection* This,FsrmCollectionState *state) {
    return This->lpVtbl->get_State(This,state);
}
static inline HRESULT IFsrmCommittableCollection_Cancel(IFsrmCommittableCollection* This) {
    return This->lpVtbl->Cancel(This);
}
static inline HRESULT IFsrmCommittableCollection_WaitForCompletion(IFsrmCommittableCollection* This,LONG waitSeconds,VARIANT_BOOL *completed) {
    return This->lpVtbl->WaitForCompletion(This,waitSeconds,completed);
}
static inline HRESULT IFsrmCommittableCollection_GetById(IFsrmCommittableCollection* This,FSRM_OBJECT_ID id,VARIANT *entry) {
    return This->lpVtbl->GetById(This,id,entry);
}
/*** IFsrmMutableCollection methods ***/
static inline HRESULT IFsrmCommittableCollection_Add(IFsrmCommittableCollection* This,VARIANT item) {
    return This->lpVtbl->Add(This,item);
}
static inline HRESULT IFsrmCommittableCollection_Remove(IFsrmCommittableCollection* This,LONG index) {
    return This->lpVtbl->Remove(This,index);
}
static inline HRESULT IFsrmCommittableCollection_RemoveById(IFsrmCommittableCollection* This,FSRM_OBJECT_ID id) {
    return This->lpVtbl->RemoveById(This,id);
}
static inline HRESULT IFsrmCommittableCollection_Clone(IFsrmCommittableCollection* This,IFsrmMutableCollection **collection) {
    return This->lpVtbl->Clone(This,collection);
}
/*** IFsrmCommittableCollection methods ***/
static inline 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 inline HRESULT IFsrmAccessDeniedRemediationClient_QueryInterface(IFsrmAccessDeniedRemediationClient* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmAccessDeniedRemediationClient_AddRef(IFsrmAccessDeniedRemediationClient* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmAccessDeniedRemediationClient_Release(IFsrmAccessDeniedRemediationClient* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmAccessDeniedRemediationClient_GetTypeInfoCount(IFsrmAccessDeniedRemediationClient* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmAccessDeniedRemediationClient_GetTypeInfo(IFsrmAccessDeniedRemediationClient* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline 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 inline HRESULT IFsrmAction_QueryInterface(IFsrmAction* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmAction_AddRef(IFsrmAction* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmAction_Release(IFsrmAction* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmAction_GetTypeInfoCount(IFsrmAction* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmAction_GetTypeInfo(IFsrmAction* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmAction_get_Id(IFsrmAction* This,FSRM_OBJECT_ID *id) {
    return This->lpVtbl->get_Id(This,id);
}
static inline HRESULT IFsrmAction_get_ActionType(IFsrmAction* This,FsrmActionType *actionType) {
    return This->lpVtbl->get_ActionType(This,actionType);
}
static inline HRESULT IFsrmAction_get_RunLimitInterval(IFsrmAction* This,LONG *minutes) {
    return This->lpVtbl->get_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmAction_put_RunLimitInterval(IFsrmAction* This,LONG minutes) {
    return This->lpVtbl->put_RunLimitInterval(This,minutes);
}
static inline 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 inline HRESULT IFsrmActionCommand_QueryInterface(IFsrmActionCommand* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmActionCommand_AddRef(IFsrmActionCommand* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmActionCommand_Release(IFsrmActionCommand* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmActionCommand_GetTypeInfoCount(IFsrmActionCommand* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmActionCommand_GetTypeInfo(IFsrmActionCommand* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmActionCommand_get_Id(IFsrmActionCommand* This,FSRM_OBJECT_ID *id) {
    return This->lpVtbl->get_Id(This,id);
}
static inline HRESULT IFsrmActionCommand_get_ActionType(IFsrmActionCommand* This,FsrmActionType *actionType) {
    return This->lpVtbl->get_ActionType(This,actionType);
}
static inline HRESULT IFsrmActionCommand_get_RunLimitInterval(IFsrmActionCommand* This,LONG *minutes) {
    return This->lpVtbl->get_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionCommand_put_RunLimitInterval(IFsrmActionCommand* This,LONG minutes) {
    return This->lpVtbl->put_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionCommand_Delete(IFsrmActionCommand* This) {
    return This->lpVtbl->Delete(This);
}
/*** IFsrmActionCommand methods ***/
static inline HRESULT IFsrmActionCommand_get_ExecutablePath(IFsrmActionCommand* This,BSTR *executablePath) {
    return This->lpVtbl->get_ExecutablePath(This,executablePath);
}
static inline HRESULT IFsrmActionCommand_put_ExecutablePath(IFsrmActionCommand* This,BSTR executablePath) {
    return This->lpVtbl->put_ExecutablePath(This,executablePath);
}
static inline HRESULT IFsrmActionCommand_get_Arguments(IFsrmActionCommand* This,BSTR *arguments) {
    return This->lpVtbl->get_Arguments(This,arguments);
}
static inline HRESULT IFsrmActionCommand_put_Arguments(IFsrmActionCommand* This,BSTR arguments) {
    return This->lpVtbl->put_Arguments(This,arguments);
}
static inline HRESULT IFsrmActionCommand_get_Account(IFsrmActionCommand* This,FsrmAccountType *account) {
    return This->lpVtbl->get_Account(This,account);
}
static inline HRESULT IFsrmActionCommand_put_Account(IFsrmActionCommand* This,FsrmAccountType account) {
    return This->lpVtbl->put_Account(This,account);
}
static inline HRESULT IFsrmActionCommand_get_WorkingDirectory(IFsrmActionCommand* This,BSTR *workingDirectory) {
    return This->lpVtbl->get_WorkingDirectory(This,workingDirectory);
}
static inline HRESULT IFsrmActionCommand_put_WorkingDirectory(IFsrmActionCommand* This,BSTR workingDirectory) {
    return This->lpVtbl->put_WorkingDirectory(This,workingDirectory);
}
static inline HRESULT IFsrmActionCommand_get_MonitorCommand(IFsrmActionCommand* This,VARIANT_BOOL *monitorCommand) {
    return This->lpVtbl->get_MonitorCommand(This,monitorCommand);
}
static inline HRESULT IFsrmActionCommand_put_MonitorCommand(IFsrmActionCommand* This,VARIANT_BOOL monitorCommand) {
    return This->lpVtbl->put_MonitorCommand(This,monitorCommand);
}
static inline HRESULT IFsrmActionCommand_get_KillTimeOut(IFsrmActionCommand* This,LONG *minutes) {
    return This->lpVtbl->get_KillTimeOut(This,minutes);
}
static inline HRESULT IFsrmActionCommand_put_KillTimeOut(IFsrmActionCommand* This,LONG minutes) {
    return This->lpVtbl->put_KillTimeOut(This,minutes);
}
static inline HRESULT IFsrmActionCommand_get_LogResult(IFsrmActionCommand* This,VARIANT_BOOL *logResults) {
    return This->lpVtbl->get_LogResult(This,logResults);
}
static inline 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 inline HRESULT IFsrmActionEventLog_QueryInterface(IFsrmActionEventLog* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmActionEventLog_AddRef(IFsrmActionEventLog* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmActionEventLog_Release(IFsrmActionEventLog* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmActionEventLog_GetTypeInfoCount(IFsrmActionEventLog* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmActionEventLog_GetTypeInfo(IFsrmActionEventLog* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmActionEventLog_get_Id(IFsrmActionEventLog* This,FSRM_OBJECT_ID *id) {
    return This->lpVtbl->get_Id(This,id);
}
static inline HRESULT IFsrmActionEventLog_get_ActionType(IFsrmActionEventLog* This,FsrmActionType *actionType) {
    return This->lpVtbl->get_ActionType(This,actionType);
}
static inline HRESULT IFsrmActionEventLog_get_RunLimitInterval(IFsrmActionEventLog* This,LONG *minutes) {
    return This->lpVtbl->get_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionEventLog_put_RunLimitInterval(IFsrmActionEventLog* This,LONG minutes) {
    return This->lpVtbl->put_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionEventLog_Delete(IFsrmActionEventLog* This) {
    return This->lpVtbl->Delete(This);
}
/*** IFsrmActionEventLog methods ***/
static inline HRESULT IFsrmActionEventLog_get_EventType(IFsrmActionEventLog* This,FsrmEventType *eventType) {
    return This->lpVtbl->get_EventType(This,eventType);
}
static inline HRESULT IFsrmActionEventLog_put_EventType(IFsrmActionEventLog* This,FsrmEventType eventType) {
    return This->lpVtbl->put_EventType(This,eventType);
}
static inline HRESULT IFsrmActionEventLog_get_MessageText(IFsrmActionEventLog* This,BSTR *messageText) {
    return This->lpVtbl->get_MessageText(This,messageText);
}
static inline 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 inline HRESULT IFsrmActionReport_QueryInterface(IFsrmActionReport* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmActionReport_AddRef(IFsrmActionReport* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmActionReport_Release(IFsrmActionReport* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmActionReport_GetTypeInfoCount(IFsrmActionReport* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmActionReport_GetTypeInfo(IFsrmActionReport* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmActionReport_get_Id(IFsrmActionReport* This,FSRM_OBJECT_ID *id) {
    return This->lpVtbl->get_Id(This,id);
}
static inline HRESULT IFsrmActionReport_get_ActionType(IFsrmActionReport* This,FsrmActionType *actionType) {
    return This->lpVtbl->get_ActionType(This,actionType);
}
static inline HRESULT IFsrmActionReport_get_RunLimitInterval(IFsrmActionReport* This,LONG *minutes) {
    return This->lpVtbl->get_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionReport_put_RunLimitInterval(IFsrmActionReport* This,LONG minutes) {
    return This->lpVtbl->put_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionReport_Delete(IFsrmActionReport* This) {
    return This->lpVtbl->Delete(This);
}
/*** IFsrmActionReport methods ***/
static inline HRESULT IFsrmActionReport_get_ReportTypes(IFsrmActionReport* This,SAFEARRAY **reportTypes) {
    return This->lpVtbl->get_ReportTypes(This,reportTypes);
}
static inline HRESULT IFsrmActionReport_put_ReportTypes(IFsrmActionReport* This,SAFEARRAY *reportTypes) {
    return This->lpVtbl->put_ReportTypes(This,reportTypes);
}
static inline HRESULT IFsrmActionReport_get_MailTo(IFsrmActionReport* This,BSTR *mailTo) {
    return This->lpVtbl->get_MailTo(This,mailTo);
}
static inline 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 inline HRESULT IFsrmCollection_QueryInterface(IFsrmCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmCollection_AddRef(IFsrmCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmCollection_Release(IFsrmCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmCollection_GetTypeInfoCount(IFsrmCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmCollection_GetTypeInfo(IFsrmCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmCollection_get__NewEnum(IFsrmCollection* This,IUnknown **unknown) {
    return This->lpVtbl->get__NewEnum(This,unknown);
}
static inline HRESULT IFsrmCollection_get_Item(IFsrmCollection* This,LONG index,VARIANT *item) {
    return This->lpVtbl->get_Item(This,index,item);
}
static inline HRESULT IFsrmCollection_get_Count(IFsrmCollection* This,LONG *count) {
    return This->lpVtbl->get_Count(This,count);
}
static inline HRESULT IFsrmCollection_get_State(IFsrmCollection* This,FsrmCollectionState *state) {
    return This->lpVtbl->get_State(This,state);
}
static inline HRESULT IFsrmCollection_Cancel(IFsrmCollection* This) {
    return This->lpVtbl->Cancel(This);
}
static inline HRESULT IFsrmCollection_WaitForCompletion(IFsrmCollection* This,LONG waitSeconds,VARIANT_BOOL *completed) {
    return This->lpVtbl->WaitForCompletion(This,waitSeconds,completed);
}
static inline 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 inline HRESULT IFsrmDerivedObjectsResult_QueryInterface(IFsrmDerivedObjectsResult* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmDerivedObjectsResult_AddRef(IFsrmDerivedObjectsResult* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmDerivedObjectsResult_Release(IFsrmDerivedObjectsResult* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmDerivedObjectsResult_GetTypeInfoCount(IFsrmDerivedObjectsResult* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmDerivedObjectsResult_GetTypeInfo(IFsrmDerivedObjectsResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmDerivedObjectsResult_get_DerivedObjects(IFsrmDerivedObjectsResult* This,IFsrmCollection **derivedObjects) {
    return This->lpVtbl->get_DerivedObjects(This,derivedObjects);
}
static inline 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 inline HRESULT IFsrmExportImport_QueryInterface(IFsrmExportImport* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmExportImport_AddRef(IFsrmExportImport* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmExportImport_Release(IFsrmExportImport* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmExportImport_GetTypeInfoCount(IFsrmExportImport* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmExportImport_GetTypeInfo(IFsrmExportImport* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmExportImport_ExportFileGroups(IFsrmExportImport* This,BSTR filePath,VARIANT *fileGroupNamesSafeArray,BSTR remoteHost) {
    return This->lpVtbl->ExportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost);
}
static inline HRESULT IFsrmExportImport_ImportFileGroups(IFsrmExportImport* This,BSTR filePath,VARIANT *fileGroupNamesSafeArray,BSTR remoteHost,IFsrmCommittableCollection **fileGroups) {
    return This->lpVtbl->ImportFileGroups(This,filePath,fileGroupNamesSafeArray,remoteHost,fileGroups);
}
static inline HRESULT IFsrmExportImport_ExportFileScreenTemplates(IFsrmExportImport* This,BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost) {
    return This->lpVtbl->ExportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost);
}
static inline HRESULT IFsrmExportImport_ImportFileScreenTemplates(IFsrmExportImport* This,BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost,IFsrmCommittableCollection **templates) {
    return This->lpVtbl->ImportFileScreenTemplates(This,filePath,templateNamesSafeArray,remoteHost,templates);
}
static inline HRESULT IFsrmExportImport_ExportQuotaTemplates(IFsrmExportImport* This,BSTR filePath,VARIANT *templateNamesSafeArray,BSTR remoteHost) {
    return This->lpVtbl->ExportQuotaTemplates(This,filePath,templateNamesSafeArray,remoteHost);
}
static inline 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 inline HRESULT IFsrmObject_QueryInterface(IFsrmObject* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmObject_AddRef(IFsrmObject* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmObject_Release(IFsrmObject* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmObject_GetTypeInfoCount(IFsrmObject* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmObject_GetTypeInfo(IFsrmObject* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmObject_get_Id(IFsrmObject* This,FSRM_OBJECT_ID *id) {
    return This->lpVtbl->get_Id(This,id);
}
static inline HRESULT IFsrmObject_get_Description(IFsrmObject* This,BSTR *description) {
    return This->lpVtbl->get_Description(This,description);
}
static inline HRESULT IFsrmObject_put_Description(IFsrmObject* This,BSTR description) {
    return This->lpVtbl->put_Description(This,description);
}
static inline HRESULT IFsrmObject_Delete(IFsrmObject* This) {
    return This->lpVtbl->Delete(This);
}
static inline 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 inline HRESULT IFsrmPathMapper_QueryInterface(IFsrmPathMapper* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmPathMapper_AddRef(IFsrmPathMapper* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmPathMapper_Release(IFsrmPathMapper* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmPathMapper_GetTypeInfoCount(IFsrmPathMapper* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmPathMapper_GetTypeInfo(IFsrmPathMapper* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline 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 inline HRESULT IFsrmSetting_QueryInterface(IFsrmSetting* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmSetting_AddRef(IFsrmSetting* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmSetting_Release(IFsrmSetting* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmSetting_GetTypeInfoCount(IFsrmSetting* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmSetting_GetTypeInfo(IFsrmSetting* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmSetting_get_SmtpServer(IFsrmSetting* This,BSTR *smtpServer) {
    return This->lpVtbl->get_SmtpServer(This,smtpServer);
}
static inline HRESULT IFsrmSetting_put_SmtpServer(IFsrmSetting* This,BSTR smtpServer) {
    return This->lpVtbl->put_SmtpServer(This,smtpServer);
}
static inline HRESULT IFsrmSetting_get_MailFrom(IFsrmSetting* This,BSTR *mailFrom) {
    return This->lpVtbl->get_MailFrom(This,mailFrom);
}
static inline HRESULT IFsrmSetting_put_MailFrom(IFsrmSetting* This,BSTR mailFrom) {
    return This->lpVtbl->put_MailFrom(This,mailFrom);
}
static inline HRESULT IFsrmSetting_get_AdminEmail(IFsrmSetting* This,BSTR *adminEmail) {
    return This->lpVtbl->get_AdminEmail(This,adminEmail);
}
static inline HRESULT IFsrmSetting_put_AdminEmail(IFsrmSetting* This,BSTR adminEmail) {
    return This->lpVtbl->put_AdminEmail(This,adminEmail);
}
static inline HRESULT IFsrmSetting_get_DisableCommandLine(IFsrmSetting* This,VARIANT_BOOL *disableCommandLine) {
    return This->lpVtbl->get_DisableCommandLine(This,disableCommandLine);
}
static inline HRESULT IFsrmSetting_put_DisableCommandLine(IFsrmSetting* This,VARIANT_BOOL disableCommandLine) {
    return This->lpVtbl->put_DisableCommandLine(This,disableCommandLine);
}
static inline HRESULT IFsrmSetting_get_EnableScreeningAudit(IFsrmSetting* This,VARIANT_BOOL *enableScreeningAudit) {
    return This->lpVtbl->get_EnableScreeningAudit(This,enableScreeningAudit);
}
static inline HRESULT IFsrmSetting_put_EnableScreeningAudit(IFsrmSetting* This,VARIANT_BOOL enableScreeningAudit) {
    return This->lpVtbl->put_EnableScreeningAudit(This,enableScreeningAudit);
}
static inline HRESULT IFsrmSetting_EmailTest(IFsrmSetting* This,BSTR mailTo) {
    return This->lpVtbl->EmailTest(This,mailTo);
}
static inline HRESULT IFsrmSetting_SetActionRunLimitInterval(IFsrmSetting* This,FsrmActionType actionType,LONG delayTimeMinutes) {
    return This->lpVtbl->SetActionRunLimitInterval(This,actionType,delayTimeMinutes);
}
static inline 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 inline HRESULT IFsrmActionEmail_QueryInterface(IFsrmActionEmail* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmActionEmail_AddRef(IFsrmActionEmail* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmActionEmail_Release(IFsrmActionEmail* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmActionEmail_GetTypeInfoCount(IFsrmActionEmail* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmActionEmail_GetTypeInfo(IFsrmActionEmail* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmActionEmail_get_Id(IFsrmActionEmail* This,FSRM_OBJECT_ID *id) {
    return This->lpVtbl->get_Id(This,id);
}
static inline HRESULT IFsrmActionEmail_get_ActionType(IFsrmActionEmail* This,FsrmActionType *actionType) {
    return This->lpVtbl->get_ActionType(This,actionType);
}
static inline HRESULT IFsrmActionEmail_get_RunLimitInterval(IFsrmActionEmail* This,LONG *minutes) {
    return This->lpVtbl->get_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionEmail_put_RunLimitInterval(IFsrmActionEmail* This,LONG minutes) {
    return This->lpVtbl->put_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionEmail_Delete(IFsrmActionEmail* This) {
    return This->lpVtbl->Delete(This);
}
/*** IFsrmActionEmail methods ***/
static inline HRESULT IFsrmActionEmail_get_MailFrom(IFsrmActionEmail* This,BSTR *mailFrom) {
    return This->lpVtbl->get_MailFrom(This,mailFrom);
}
static inline HRESULT IFsrmActionEmail_put_MailFrom(IFsrmActionEmail* This,BSTR mailFrom) {
    return This->lpVtbl->put_MailFrom(This,mailFrom);
}
static inline HRESULT IFsrmActionEmail_get_MailReplyTo(IFsrmActionEmail* This,BSTR *mailReplyTo) {
    return This->lpVtbl->get_MailReplyTo(This,mailReplyTo);
}
static inline HRESULT IFsrmActionEmail_put_MailReplyTo(IFsrmActionEmail* This,BSTR mailReplyTo) {
    return This->lpVtbl->put_MailReplyTo(This,mailReplyTo);
}
static inline HRESULT IFsrmActionEmail_get_MailTo(IFsrmActionEmail* This,BSTR *mailTo) {
    return This->lpVtbl->get_MailTo(This,mailTo);
}
static inline HRESULT IFsrmActionEmail_put_MailTo(IFsrmActionEmail* This,BSTR mailTo) {
    return This->lpVtbl->put_MailTo(This,mailTo);
}
static inline HRESULT IFsrmActionEmail_get_MailCc(IFsrmActionEmail* This,BSTR *mailCc) {
    return This->lpVtbl->get_MailCc(This,mailCc);
}
static inline HRESULT IFsrmActionEmail_put_MailCc(IFsrmActionEmail* This,BSTR mailCc) {
    return This->lpVtbl->put_MailCc(This,mailCc);
}
static inline HRESULT IFsrmActionEmail_get_MailBcc(IFsrmActionEmail* This,BSTR *mailBcc) {
    return This->lpVtbl->get_MailBcc(This,mailBcc);
}
static inline HRESULT IFsrmActionEmail_put_MailBcc(IFsrmActionEmail* This,BSTR mailBcc) {
    return This->lpVtbl->put_MailBcc(This,mailBcc);
}
static inline HRESULT IFsrmActionEmail_get_MailSubject(IFsrmActionEmail* This,BSTR *mailSubject) {
    return This->lpVtbl->get_MailSubject(This,mailSubject);
}
static inline HRESULT IFsrmActionEmail_put_MailSubject(IFsrmActionEmail* This,BSTR mailSubject) {
    return This->lpVtbl->put_MailSubject(This,mailSubject);
}
static inline HRESULT IFsrmActionEmail_get_MessageText(IFsrmActionEmail* This,BSTR *messageText) {
    return This->lpVtbl->get_MessageText(This,messageText);
}
static inline 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 inline HRESULT IFsrmActionEmail2_QueryInterface(IFsrmActionEmail2* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmActionEmail2_AddRef(IFsrmActionEmail2* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmActionEmail2_Release(IFsrmActionEmail2* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmActionEmail2_GetTypeInfoCount(IFsrmActionEmail2* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmActionEmail2_GetTypeInfo(IFsrmActionEmail2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmActionEmail2_get_Id(IFsrmActionEmail2* This,FSRM_OBJECT_ID *id) {
    return This->lpVtbl->get_Id(This,id);
}
static inline HRESULT IFsrmActionEmail2_get_ActionType(IFsrmActionEmail2* This,FsrmActionType *actionType) {
    return This->lpVtbl->get_ActionType(This,actionType);
}
static inline HRESULT IFsrmActionEmail2_get_RunLimitInterval(IFsrmActionEmail2* This,LONG *minutes) {
    return This->lpVtbl->get_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionEmail2_put_RunLimitInterval(IFsrmActionEmail2* This,LONG minutes) {
    return This->lpVtbl->put_RunLimitInterval(This,minutes);
}
static inline HRESULT IFsrmActionEmail2_Delete(IFsrmActionEmail2* This) {
    return This->lpVtbl->Delete(This);
}
/*** IFsrmActionEmail methods ***/
static inline HRESULT IFsrmActionEmail2_get_MailFrom(IFsrmActionEmail2* This,BSTR *mailFrom) {
    return This->lpVtbl->get_MailFrom(This,mailFrom);
}
static inline HRESULT IFsrmActionEmail2_put_MailFrom(IFsrmActionEmail2* This,BSTR mailFrom) {
    return This->lpVtbl->put_MailFrom(This,mailFrom);
}
static inline HRESULT IFsrmActionEmail2_get_MailReplyTo(IFsrmActionEmail2* This,BSTR *mailReplyTo) {
    return This->lpVtbl->get_MailReplyTo(This,mailReplyTo);
}
static inline HRESULT IFsrmActionEmail2_put_MailReplyTo(IFsrmActionEmail2* This,BSTR mailReplyTo) {
    return This->lpVtbl->put_MailReplyTo(This,mailReplyTo);
}
static inline HRESULT IFsrmActionEmail2_get_MailTo(IFsrmActionEmail2* This,BSTR *mailTo) {
    return This->lpVtbl->get_MailTo(This,mailTo);
}
static inline HRESULT IFsrmActionEmail2_put_MailTo(IFsrmActionEmail2* This,BSTR mailTo) {
    return This->lpVtbl->put_MailTo(This,mailTo);
}
static inline HRESULT IFsrmActionEmail2_get_MailCc(IFsrmActionEmail2* This,BSTR *mailCc) {
    return This->lpVtbl->get_MailCc(This,mailCc);
}
static inline HRESULT IFsrmActionEmail2_put_MailCc(IFsrmActionEmail2* This,BSTR mailCc) {
    return This->lpVtbl->put_MailCc(This,mailCc);
}
static inline HRESULT IFsrmActionEmail2_get_MailBcc(IFsrmActionEmail2* This,BSTR *mailBcc) {
    return This->lpVtbl->get_MailBcc(This,mailBcc);
}
static inline HRESULT IFsrmActionEmail2_put_MailBcc(IFsrmActionEmail2* This,BSTR mailBcc) {
    return This->lpVtbl->put_MailBcc(This,mailBcc);
}
static inline HRESULT IFsrmActionEmail2_get_MailSubject(IFsrmActionEmail2* This,BSTR *mailSubject) {
    return This->lpVtbl->get_MailSubject(This,mailSubject);
}
static inline HRESULT IFsrmActionEmail2_put_MailSubject(IFsrmActionEmail2* This,BSTR mailSubject) {
    return This->lpVtbl->put_MailSubject(This,mailSubject);
}
static inline HRESULT IFsrmActionEmail2_get_MessageText(IFsrmActionEmail2* This,BSTR *messageText) {
    return This->lpVtbl->get_MessageText(This,messageText);
}
static inline HRESULT IFsrmActionEmail2_put_MessageText(IFsrmActionEmail2* This,BSTR messageText) {
    return This->lpVtbl->put_MessageText(This,messageText);
}
/*** IFsrmActionEmail2 methods ***/
static inline HRESULT IFsrmActionEmail2_get_AttachmentFileListSize(IFsrmActionEmail2* This,LONG *attachmentFileListSize) {
    return This->lpVtbl->get_AttachmentFileListSize(This,attachmentFileListSize);
}
static inline 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 inline HRESULT IFsrmMutableCollection_QueryInterface(IFsrmMutableCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmMutableCollection_AddRef(IFsrmMutableCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmMutableCollection_Release(IFsrmMutableCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmMutableCollection_GetTypeInfoCount(IFsrmMutableCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmMutableCollection_GetTypeInfo(IFsrmMutableCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline 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 inline 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 inline HRESULT IFsrmMutableCollection_get__NewEnum(IFsrmMutableCollection* This,IUnknown **unknown) {
    return This->lpVtbl->get__NewEnum(This,unknown);
}
static inline HRESULT IFsrmMutableCollection_get_Item(IFsrmMutableCollection* This,LONG index,VARIANT *item) {
    return This->lpVtbl->get_Item(This,index,item);
}
static inline HRESULT IFsrmMutableCollection_get_Count(IFsrmMutableCollection* This,LONG *count) {
    return This->lpVtbl->get_Count(This,count);
}
static inline HRESULT IFsrmMutableCollection_get_State(IFsrmMutableCollection* This,FsrmCollectionState *state) {
    return This->lpVtbl->get_State(This,state);
}
static inline HRESULT IFsrmMutableCollection_Cancel(IFsrmMutableCollection* This) {
    return This->lpVtbl->Cancel(This);
}
static inline HRESULT IFsrmMutableCollection_WaitForCompletion(IFsrmMutableCollection* This,LONG waitSeconds,VARIANT_BOOL *completed) {
    return This->lpVtbl->WaitForCompletion(This,waitSeconds,completed);
}
static inline HRESULT IFsrmMutableCollection_GetById(IFsrmMutableCollection* This,FSRM_OBJECT_ID id,VARIANT *entry) {
    return This->lpVtbl->GetById(This,id,entry);
}
/*** IFsrmMutableCollection methods ***/
static inline HRESULT IFsrmMutableCollection_Add(IFsrmMutableCollection* This,VARIANT item) {
    return This->lpVtbl->Add(This,item);
}
static inline HRESULT IFsrmMutableCollection_Remove(IFsrmMutableCollection* This,LONG index) {
    return This->lpVtbl->Remove(This,index);
}
static inline HRESULT IFsrmMutableCollection_RemoveById(IFsrmMutableCollection* This,FSRM_OBJECT_ID id) {
    return This->lpVtbl->RemoveById(This,id);
}
static inline 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__ */
