/*** Autogenerated by WIDL 10.0-rc1 from include/fsrmreports.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 __fsrmreports_h__
#define __fsrmreports_h__

/* Forward declarations */

#ifndef __IFsrmReport_FWD_DEFINED__
#define __IFsrmReport_FWD_DEFINED__
typedef interface IFsrmReport IFsrmReport;
#ifdef __cplusplus
interface IFsrmReport;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmReportScheduler_FWD_DEFINED__
#define __IFsrmReportScheduler_FWD_DEFINED__
typedef interface IFsrmReportScheduler IFsrmReportScheduler;
#ifdef __cplusplus
interface IFsrmReportScheduler;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmFileManagementJobManager_FWD_DEFINED__
#define __IFsrmFileManagementJobManager_FWD_DEFINED__
typedef interface IFsrmFileManagementJobManager IFsrmFileManagementJobManager;
#ifdef __cplusplus
interface IFsrmFileManagementJobManager;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmPropertyCondition_FWD_DEFINED__
#define __IFsrmPropertyCondition_FWD_DEFINED__
typedef interface IFsrmPropertyCondition IFsrmPropertyCondition;
#ifdef __cplusplus
interface IFsrmPropertyCondition;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmReportManager_FWD_DEFINED__
#define __IFsrmReportManager_FWD_DEFINED__
typedef interface IFsrmReportManager IFsrmReportManager;
#ifdef __cplusplus
interface IFsrmReportManager;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmReportJob_FWD_DEFINED__
#define __IFsrmReportJob_FWD_DEFINED__
typedef interface IFsrmReportJob IFsrmReportJob;
#ifdef __cplusplus
interface IFsrmReportJob;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmFileManagementJob_FWD_DEFINED__
#define __IFsrmFileManagementJob_FWD_DEFINED__
typedef interface IFsrmFileManagementJob IFsrmFileManagementJob;
#ifdef __cplusplus
interface IFsrmFileManagementJob;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmFileCondition_FWD_DEFINED__
#define __IFsrmFileCondition_FWD_DEFINED__
typedef interface IFsrmFileCondition IFsrmFileCondition;
#ifdef __cplusplus
interface IFsrmFileCondition;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmFileConditionProperty_FWD_DEFINED__
#define __IFsrmFileConditionProperty_FWD_DEFINED__
typedef interface IFsrmFileConditionProperty IFsrmFileConditionProperty;
#ifdef __cplusplus
interface IFsrmFileConditionProperty;
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <oaidl.h>
#include <fsrmenums.h>
#include <fsrm.h>

#ifdef __cplusplus
extern "C" {
#endif

#include <winapifamily.h>

#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef __IFsrmFileManagementJob_FWD_DEFINED__
#define __IFsrmFileManagementJob_FWD_DEFINED__
typedef interface IFsrmFileManagementJob IFsrmFileManagementJob;
#ifdef __cplusplus
interface IFsrmFileManagementJob;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmFileManagementJobManager_FWD_DEFINED__
#define __IFsrmFileManagementJobManager_FWD_DEFINED__
typedef interface IFsrmFileManagementJobManager IFsrmFileManagementJobManager;
#ifdef __cplusplus
interface IFsrmFileManagementJobManager;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmPropertyCondition_FWD_DEFINED__
#define __IFsrmPropertyCondition_FWD_DEFINED__
typedef interface IFsrmPropertyCondition IFsrmPropertyCondition;
#ifdef __cplusplus
interface IFsrmPropertyCondition;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmReport_FWD_DEFINED__
#define __IFsrmReport_FWD_DEFINED__
typedef interface IFsrmReport IFsrmReport;
#ifdef __cplusplus
interface IFsrmReport;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmReportJob_FWD_DEFINED__
#define __IFsrmReportJob_FWD_DEFINED__
typedef interface IFsrmReportJob IFsrmReportJob;
#ifdef __cplusplus
interface IFsrmReportJob;
#endif /* __cplusplus */
#endif

#ifndef __IFsrmReportManager_FWD_DEFINED__
#define __IFsrmReportManager_FWD_DEFINED__
typedef interface IFsrmReportManager IFsrmReportManager;
#ifdef __cplusplus
interface IFsrmReportManager;
#endif /* __cplusplus */
#endif

#define FSRM_DISPID_REPORT_MANAGER (FSRM_DISPID_FEATURE_REPORTS | 0x100000)

#define FSRM_DISPID_REPORT_JOB (FSRM_DISPID_FEATURE_REPORTS | 0x200000)

#define FSRM_DISPID_REPORT (FSRM_DISPID_FEATURE_REPORTS | 0x300000)

#define FSRM_DISPID_REPORT_SCHEDULER (FSRM_DISPID_FEATURE_REPORTS | 0x400000)

#define FSRM_DISPID_FILE_MANAGEMENT_JOB_MANAGER (FSRM_DISPID_FEATURE_REPORTS | 0x500000)

#define FSRM_DISPID_FILE_MANAGEMENT_JOB (FSRM_DISPID_FEATURE_REPORTS | 0x600000)

#define FSRM_DISPID_FILE_MANAGEMENT_NOTIFICATION (FSRM_DISPID_FEATURE_REPORTS | 0x700000)

#define FSRM_DISPID_PROPERTY_CONDITION (FSRM_DISPID_FEATURE_REPORTS | 0x800000)

#define FSRM_DISPID_FILE_CONDITION (FSRM_DISPID_FEATURE_REPORTS | 0x900000)

#define FSRM_DISPID_FILE_CONDITION_PROPERTY (FSRM_DISPID_FEATURE_REPORTS | 0xa00000)

#define FSRM_DISPID_FILE_MANAGEMENT_JOB_2 (FSRM_DISPID_FEATURE_REPORTS | 0xb00000)

/*****************************************************************************
 * IFsrmReport interface
 */
#ifndef __IFsrmReport_INTERFACE_DEFINED__
#define __IFsrmReport_INTERFACE_DEFINED__

DEFINE_GUID(IID_IFsrmReport, 0xd8cc81d9, 0x46b8, 0x4fa4, 0xbf,0xa5, 0x4a,0xa9,0xde,0xc9,0xb6,0x38);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("d8cc81d9-46b8-4fa4-bfa5-4aa9dec9b638")
IFsrmReport : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_Type(
        FsrmReportType *reportType) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Name(
        BSTR *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Name(
        BSTR name) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Description(
        BSTR *description) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Description(
        BSTR description) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LastGeneratedFileNamePrefix(
        BSTR *prefix) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFilter(
        FsrmReportFilter filter,
        VARIANT *filterValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetFilter(
        FsrmReportFilter filter,
        VARIANT filterValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE Delete(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IFsrmReport, 0xd8cc81d9, 0x46b8, 0x4fa4, 0xbf,0xa5, 0x4a,0xa9,0xde,0xc9,0xb6,0x38)
#endif
#else
typedef struct IFsrmReportVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IFsrmReport *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IFsrmReport *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IFsrmReport *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IFsrmReport *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IFsrmReport *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IFsrmReport *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IFsrmReport *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IFsrmReport methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Type)(
        IFsrmReport *This,
        FsrmReportType *reportType);

    HRESULT (STDMETHODCALLTYPE *get_Name)(
        IFsrmReport *This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *put_Name)(
        IFsrmReport *This,
        BSTR name);

    HRESULT (STDMETHODCALLTYPE *get_Description)(
        IFsrmReport *This,
        BSTR *description);

    HRESULT (STDMETHODCALLTYPE *put_Description)(
        IFsrmReport *This,
        BSTR description);

    HRESULT (STDMETHODCALLTYPE *get_LastGeneratedFileNamePrefix)(
        IFsrmReport *This,
        BSTR *prefix);

    HRESULT (STDMETHODCALLTYPE *GetFilter)(
        IFsrmReport *This,
        FsrmReportFilter filter,
        VARIANT *filterValue);

    HRESULT (STDMETHODCALLTYPE *SetFilter)(
        IFsrmReport *This,
        FsrmReportFilter filter,
        VARIANT filterValue);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        IFsrmReport *This);

    END_INTERFACE
} IFsrmReportVtbl;

interface IFsrmReport {
    CONST_VTBL IFsrmReportVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IFsrmReport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IFsrmReport_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IFsrmReport_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IFsrmReport_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IFsrmReport_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IFsrmReport_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IFsrmReport_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IFsrmReport methods ***/
#define IFsrmReport_get_Type(This,reportType) (This)->lpVtbl->get_Type(This,reportType)
#define IFsrmReport_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
#define IFsrmReport_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
#define IFsrmReport_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
#define IFsrmReport_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
#define IFsrmReport_get_LastGeneratedFileNamePrefix(This,prefix) (This)->lpVtbl->get_LastGeneratedFileNamePrefix(This,prefix)
#define IFsrmReport_GetFilter(This,filter,filterValue) (This)->lpVtbl->GetFilter(This,filter,filterValue)
#define IFsrmReport_SetFilter(This,filter,filterValue) (This)->lpVtbl->SetFilter(This,filter,filterValue)
#define IFsrmReport_Delete(This) (This)->lpVtbl->Delete(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IFsrmReport_QueryInterface(IFsrmReport* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmReport_AddRef(IFsrmReport* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmReport_Release(IFsrmReport* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmReport_GetTypeInfoCount(IFsrmReport* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmReport_GetTypeInfo(IFsrmReport* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline HRESULT IFsrmReport_GetIDsOfNames(IFsrmReport* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static inline HRESULT IFsrmReport_Invoke(IFsrmReport* 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);
}
/*** IFsrmReport methods ***/
static inline HRESULT IFsrmReport_get_Type(IFsrmReport* This,FsrmReportType *reportType) {
    return This->lpVtbl->get_Type(This,reportType);
}
static inline HRESULT IFsrmReport_get_Name(IFsrmReport* This,BSTR *name) {
    return This->lpVtbl->get_Name(This,name);
}
static inline HRESULT IFsrmReport_put_Name(IFsrmReport* This,BSTR name) {
    return This->lpVtbl->put_Name(This,name);
}
static inline HRESULT IFsrmReport_get_Description(IFsrmReport* This,BSTR *description) {
    return This->lpVtbl->get_Description(This,description);
}
static inline HRESULT IFsrmReport_put_Description(IFsrmReport* This,BSTR description) {
    return This->lpVtbl->put_Description(This,description);
}
static inline HRESULT IFsrmReport_get_LastGeneratedFileNamePrefix(IFsrmReport* This,BSTR *prefix) {
    return This->lpVtbl->get_LastGeneratedFileNamePrefix(This,prefix);
}
static inline HRESULT IFsrmReport_GetFilter(IFsrmReport* This,FsrmReportFilter filter,VARIANT *filterValue) {
    return This->lpVtbl->GetFilter(This,filter,filterValue);
}
static inline HRESULT IFsrmReport_SetFilter(IFsrmReport* This,FsrmReportFilter filter,VARIANT filterValue) {
    return This->lpVtbl->SetFilter(This,filter,filterValue);
}
static inline HRESULT IFsrmReport_Delete(IFsrmReport* This) {
    return This->lpVtbl->Delete(This);
}
#endif
#endif

#endif


#endif  /* __IFsrmReport_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IFsrmReportScheduler interface
 */
#ifndef __IFsrmReportScheduler_INTERFACE_DEFINED__
#define __IFsrmReportScheduler_INTERFACE_DEFINED__

DEFINE_GUID(IID_IFsrmReportScheduler, 0x6879caf9, 0x6617, 0x4484, 0x87,0x19, 0x71,0xc3,0xd8,0x64,0x5f,0x94);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6879caf9-6617-4484-8719-71c3d8645f94")
IFsrmReportScheduler : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE VerifyNamespaces(
        VARIANT *namespacesSafeArray) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateScheduleTask(
        BSTR taskName,
        VARIANT *namespacesSafeArray,
        BSTR serializedTask) = 0;

    virtual HRESULT STDMETHODCALLTYPE ModifyScheduleTask(
        BSTR taskName,
        VARIANT *namespacesSafeArray,
        BSTR serializedTask) = 0;

    virtual HRESULT STDMETHODCALLTYPE DeleteScheduleTask(
        BSTR taskName) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IFsrmReportScheduler, 0x6879caf9, 0x6617, 0x4484, 0x87,0x19, 0x71,0xc3,0xd8,0x64,0x5f,0x94)
#endif
#else
typedef struct IFsrmReportSchedulerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IFsrmReportScheduler *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IFsrmReportScheduler *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IFsrmReportScheduler *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IFsrmReportScheduler *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IFsrmReportScheduler *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IFsrmReportScheduler *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IFsrmReportScheduler *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IFsrmReportScheduler methods ***/
    HRESULT (STDMETHODCALLTYPE *VerifyNamespaces)(
        IFsrmReportScheduler *This,
        VARIANT *namespacesSafeArray);

    HRESULT (STDMETHODCALLTYPE *CreateScheduleTask)(
        IFsrmReportScheduler *This,
        BSTR taskName,
        VARIANT *namespacesSafeArray,
        BSTR serializedTask);

    HRESULT (STDMETHODCALLTYPE *ModifyScheduleTask)(
        IFsrmReportScheduler *This,
        BSTR taskName,
        VARIANT *namespacesSafeArray,
        BSTR serializedTask);

    HRESULT (STDMETHODCALLTYPE *DeleteScheduleTask)(
        IFsrmReportScheduler *This,
        BSTR taskName);

    END_INTERFACE
} IFsrmReportSchedulerVtbl;

interface IFsrmReportScheduler {
    CONST_VTBL IFsrmReportSchedulerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IFsrmReportScheduler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IFsrmReportScheduler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IFsrmReportScheduler_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IFsrmReportScheduler_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IFsrmReportScheduler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IFsrmReportScheduler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IFsrmReportScheduler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IFsrmReportScheduler methods ***/
#define IFsrmReportScheduler_VerifyNamespaces(This,namespacesSafeArray) (This)->lpVtbl->VerifyNamespaces(This,namespacesSafeArray)
#define IFsrmReportScheduler_CreateScheduleTask(This,taskName,namespacesSafeArray,serializedTask) (This)->lpVtbl->CreateScheduleTask(This,taskName,namespacesSafeArray,serializedTask)
#define IFsrmReportScheduler_ModifyScheduleTask(This,taskName,namespacesSafeArray,serializedTask) (This)->lpVtbl->ModifyScheduleTask(This,taskName,namespacesSafeArray,serializedTask)
#define IFsrmReportScheduler_DeleteScheduleTask(This,taskName) (This)->lpVtbl->DeleteScheduleTask(This,taskName)
#else
/*** IUnknown methods ***/
static inline HRESULT IFsrmReportScheduler_QueryInterface(IFsrmReportScheduler* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmReportScheduler_AddRef(IFsrmReportScheduler* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmReportScheduler_Release(IFsrmReportScheduler* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmReportScheduler_GetTypeInfoCount(IFsrmReportScheduler* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmReportScheduler_GetTypeInfo(IFsrmReportScheduler* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline HRESULT IFsrmReportScheduler_GetIDsOfNames(IFsrmReportScheduler* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static inline HRESULT IFsrmReportScheduler_Invoke(IFsrmReportScheduler* 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);
}
/*** IFsrmReportScheduler methods ***/
static inline HRESULT IFsrmReportScheduler_VerifyNamespaces(IFsrmReportScheduler* This,VARIANT *namespacesSafeArray) {
    return This->lpVtbl->VerifyNamespaces(This,namespacesSafeArray);
}
static inline HRESULT IFsrmReportScheduler_CreateScheduleTask(IFsrmReportScheduler* This,BSTR taskName,VARIANT *namespacesSafeArray,BSTR serializedTask) {
    return This->lpVtbl->CreateScheduleTask(This,taskName,namespacesSafeArray,serializedTask);
}
static inline HRESULT IFsrmReportScheduler_ModifyScheduleTask(IFsrmReportScheduler* This,BSTR taskName,VARIANT *namespacesSafeArray,BSTR serializedTask) {
    return This->lpVtbl->ModifyScheduleTask(This,taskName,namespacesSafeArray,serializedTask);
}
static inline HRESULT IFsrmReportScheduler_DeleteScheduleTask(IFsrmReportScheduler* This,BSTR taskName) {
    return This->lpVtbl->DeleteScheduleTask(This,taskName);
}
#endif
#endif

#endif


#endif  /* __IFsrmReportScheduler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IFsrmFileManagementJobManager interface
 */
#ifndef __IFsrmFileManagementJobManager_INTERFACE_DEFINED__
#define __IFsrmFileManagementJobManager_INTERFACE_DEFINED__

DEFINE_GUID(IID_IFsrmFileManagementJobManager, 0xee321ecb, 0xd95e, 0x48e9, 0x90,0x7c, 0xc7,0x68,0x5a,0x01,0x32,0x35);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("ee321ecb-d95e-48e9-907c-c7685a013235")
IFsrmFileManagementJobManager : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_ActionVariables(
        SAFEARRAY **variables) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ActionVariableDescriptions(
        SAFEARRAY **descriptions) = 0;

    virtual HRESULT STDMETHODCALLTYPE EnumFileManagementJobs(
        FsrmEnumOptions options,
        IFsrmCollection **fileManagementJobs) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateFileManagementJob(
        IFsrmFileManagementJob **fileManagementJob) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFileManagementJob(
        BSTR name,
        IFsrmFileManagementJob **fileManagementJob) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IFsrmFileManagementJobManager, 0xee321ecb, 0xd95e, 0x48e9, 0x90,0x7c, 0xc7,0x68,0x5a,0x01,0x32,0x35)
#endif
#else
typedef struct IFsrmFileManagementJobManagerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IFsrmFileManagementJobManager *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IFsrmFileManagementJobManager *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IFsrmFileManagementJobManager *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IFsrmFileManagementJobManager *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IFsrmFileManagementJobManager *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IFsrmFileManagementJobManager *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IFsrmFileManagementJobManager *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IFsrmFileManagementJobManager methods ***/
    HRESULT (STDMETHODCALLTYPE *get_ActionVariables)(
        IFsrmFileManagementJobManager *This,
        SAFEARRAY **variables);

    HRESULT (STDMETHODCALLTYPE *get_ActionVariableDescriptions)(
        IFsrmFileManagementJobManager *This,
        SAFEARRAY **descriptions);

    HRESULT (STDMETHODCALLTYPE *EnumFileManagementJobs)(
        IFsrmFileManagementJobManager *This,
        FsrmEnumOptions options,
        IFsrmCollection **fileManagementJobs);

    HRESULT (STDMETHODCALLTYPE *CreateFileManagementJob)(
        IFsrmFileManagementJobManager *This,
        IFsrmFileManagementJob **fileManagementJob);

    HRESULT (STDMETHODCALLTYPE *GetFileManagementJob)(
        IFsrmFileManagementJobManager *This,
        BSTR name,
        IFsrmFileManagementJob **fileManagementJob);

    END_INTERFACE
} IFsrmFileManagementJobManagerVtbl;

interface IFsrmFileManagementJobManager {
    CONST_VTBL IFsrmFileManagementJobManagerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IFsrmFileManagementJobManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IFsrmFileManagementJobManager_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IFsrmFileManagementJobManager_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IFsrmFileManagementJobManager_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IFsrmFileManagementJobManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IFsrmFileManagementJobManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IFsrmFileManagementJobManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IFsrmFileManagementJobManager methods ***/
#define IFsrmFileManagementJobManager_get_ActionVariables(This,variables) (This)->lpVtbl->get_ActionVariables(This,variables)
#define IFsrmFileManagementJobManager_get_ActionVariableDescriptions(This,descriptions) (This)->lpVtbl->get_ActionVariableDescriptions(This,descriptions)
#define IFsrmFileManagementJobManager_EnumFileManagementJobs(This,options,fileManagementJobs) (This)->lpVtbl->EnumFileManagementJobs(This,options,fileManagementJobs)
#define IFsrmFileManagementJobManager_CreateFileManagementJob(This,fileManagementJob) (This)->lpVtbl->CreateFileManagementJob(This,fileManagementJob)
#define IFsrmFileManagementJobManager_GetFileManagementJob(This,name,fileManagementJob) (This)->lpVtbl->GetFileManagementJob(This,name,fileManagementJob)
#else
/*** IUnknown methods ***/
static inline HRESULT IFsrmFileManagementJobManager_QueryInterface(IFsrmFileManagementJobManager* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmFileManagementJobManager_AddRef(IFsrmFileManagementJobManager* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmFileManagementJobManager_Release(IFsrmFileManagementJobManager* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmFileManagementJobManager_GetTypeInfoCount(IFsrmFileManagementJobManager* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmFileManagementJobManager_GetTypeInfo(IFsrmFileManagementJobManager* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline HRESULT IFsrmFileManagementJobManager_GetIDsOfNames(IFsrmFileManagementJobManager* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static inline HRESULT IFsrmFileManagementJobManager_Invoke(IFsrmFileManagementJobManager* 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);
}
/*** IFsrmFileManagementJobManager methods ***/
static inline HRESULT IFsrmFileManagementJobManager_get_ActionVariables(IFsrmFileManagementJobManager* This,SAFEARRAY **variables) {
    return This->lpVtbl->get_ActionVariables(This,variables);
}
static inline HRESULT IFsrmFileManagementJobManager_get_ActionVariableDescriptions(IFsrmFileManagementJobManager* This,SAFEARRAY **descriptions) {
    return This->lpVtbl->get_ActionVariableDescriptions(This,descriptions);
}
static inline HRESULT IFsrmFileManagementJobManager_EnumFileManagementJobs(IFsrmFileManagementJobManager* This,FsrmEnumOptions options,IFsrmCollection **fileManagementJobs) {
    return This->lpVtbl->EnumFileManagementJobs(This,options,fileManagementJobs);
}
static inline HRESULT IFsrmFileManagementJobManager_CreateFileManagementJob(IFsrmFileManagementJobManager* This,IFsrmFileManagementJob **fileManagementJob) {
    return This->lpVtbl->CreateFileManagementJob(This,fileManagementJob);
}
static inline HRESULT IFsrmFileManagementJobManager_GetFileManagementJob(IFsrmFileManagementJobManager* This,BSTR name,IFsrmFileManagementJob **fileManagementJob) {
    return This->lpVtbl->GetFileManagementJob(This,name,fileManagementJob);
}
#endif
#endif

#endif


#endif  /* __IFsrmFileManagementJobManager_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IFsrmPropertyCondition interface
 */
#ifndef __IFsrmPropertyCondition_INTERFACE_DEFINED__
#define __IFsrmPropertyCondition_INTERFACE_DEFINED__

DEFINE_GUID(IID_IFsrmPropertyCondition, 0x326af66f, 0x2ac0, 0x4f68, 0xbf,0x8c, 0x47,0x59,0xf0,0x54,0xfa,0x29);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("326af66f-2ac0-4f68-bf8c-4759f054fa29")
IFsrmPropertyCondition : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_Name(
        BSTR *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Name(
        BSTR name) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Type(
        FsrmPropertyConditionType *type) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Type(
        FsrmPropertyConditionType type) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Value(
        BSTR *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Value(
        BSTR value) = 0;

    virtual HRESULT STDMETHODCALLTYPE Delete(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IFsrmPropertyCondition, 0x326af66f, 0x2ac0, 0x4f68, 0xbf,0x8c, 0x47,0x59,0xf0,0x54,0xfa,0x29)
#endif
#else
typedef struct IFsrmPropertyConditionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IFsrmPropertyCondition *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IFsrmPropertyCondition *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IFsrmPropertyCondition *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IFsrmPropertyCondition *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IFsrmPropertyCondition *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IFsrmPropertyCondition *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IFsrmPropertyCondition *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IFsrmPropertyCondition methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Name)(
        IFsrmPropertyCondition *This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *put_Name)(
        IFsrmPropertyCondition *This,
        BSTR name);

    HRESULT (STDMETHODCALLTYPE *get_Type)(
        IFsrmPropertyCondition *This,
        FsrmPropertyConditionType *type);

    HRESULT (STDMETHODCALLTYPE *put_Type)(
        IFsrmPropertyCondition *This,
        FsrmPropertyConditionType type);

    HRESULT (STDMETHODCALLTYPE *get_Value)(
        IFsrmPropertyCondition *This,
        BSTR *value);

    HRESULT (STDMETHODCALLTYPE *put_Value)(
        IFsrmPropertyCondition *This,
        BSTR value);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        IFsrmPropertyCondition *This);

    END_INTERFACE
} IFsrmPropertyConditionVtbl;

interface IFsrmPropertyCondition {
    CONST_VTBL IFsrmPropertyConditionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IFsrmPropertyCondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IFsrmPropertyCondition_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IFsrmPropertyCondition_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IFsrmPropertyCondition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IFsrmPropertyCondition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IFsrmPropertyCondition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IFsrmPropertyCondition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IFsrmPropertyCondition methods ***/
#define IFsrmPropertyCondition_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
#define IFsrmPropertyCondition_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
#define IFsrmPropertyCondition_get_Type(This,type) (This)->lpVtbl->get_Type(This,type)
#define IFsrmPropertyCondition_put_Type(This,type) (This)->lpVtbl->put_Type(This,type)
#define IFsrmPropertyCondition_get_Value(This,value) (This)->lpVtbl->get_Value(This,value)
#define IFsrmPropertyCondition_put_Value(This,value) (This)->lpVtbl->put_Value(This,value)
#define IFsrmPropertyCondition_Delete(This) (This)->lpVtbl->Delete(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IFsrmPropertyCondition_QueryInterface(IFsrmPropertyCondition* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmPropertyCondition_AddRef(IFsrmPropertyCondition* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmPropertyCondition_Release(IFsrmPropertyCondition* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmPropertyCondition_GetTypeInfoCount(IFsrmPropertyCondition* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmPropertyCondition_GetTypeInfo(IFsrmPropertyCondition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline HRESULT IFsrmPropertyCondition_GetIDsOfNames(IFsrmPropertyCondition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static inline HRESULT IFsrmPropertyCondition_Invoke(IFsrmPropertyCondition* 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);
}
/*** IFsrmPropertyCondition methods ***/
static inline HRESULT IFsrmPropertyCondition_get_Name(IFsrmPropertyCondition* This,BSTR *name) {
    return This->lpVtbl->get_Name(This,name);
}
static inline HRESULT IFsrmPropertyCondition_put_Name(IFsrmPropertyCondition* This,BSTR name) {
    return This->lpVtbl->put_Name(This,name);
}
static inline HRESULT IFsrmPropertyCondition_get_Type(IFsrmPropertyCondition* This,FsrmPropertyConditionType *type) {
    return This->lpVtbl->get_Type(This,type);
}
static inline HRESULT IFsrmPropertyCondition_put_Type(IFsrmPropertyCondition* This,FsrmPropertyConditionType type) {
    return This->lpVtbl->put_Type(This,type);
}
static inline HRESULT IFsrmPropertyCondition_get_Value(IFsrmPropertyCondition* This,BSTR *value) {
    return This->lpVtbl->get_Value(This,value);
}
static inline HRESULT IFsrmPropertyCondition_put_Value(IFsrmPropertyCondition* This,BSTR value) {
    return This->lpVtbl->put_Value(This,value);
}
static inline HRESULT IFsrmPropertyCondition_Delete(IFsrmPropertyCondition* This) {
    return This->lpVtbl->Delete(This);
}
#endif
#endif

#endif


#endif  /* __IFsrmPropertyCondition_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IFsrmReportManager interface
 */
#ifndef __IFsrmReportManager_INTERFACE_DEFINED__
#define __IFsrmReportManager_INTERFACE_DEFINED__

DEFINE_GUID(IID_IFsrmReportManager, 0x27b899fe, 0x6ffa, 0x4481, 0xa1,0x84, 0xd3,0xda,0xad,0xe8,0xa0,0x2b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("27b899fe-6ffa-4481-a184-d3daade8a02b")
IFsrmReportManager : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE EnumReportJobs(
        FsrmEnumOptions options,
        IFsrmCollection **reportJobs) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateReportJob(
        IFsrmReportJob **reportJob) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetReportJob(
        BSTR taskName,
        IFsrmReportJob **reportJob) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetOutputDirectory(
        FsrmReportGenerationContext context,
        BSTR *path) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOutputDirectory(
        FsrmReportGenerationContext context,
        BSTR path) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsFilterValidForReportType(
        FsrmReportType reportType,
        FsrmReportFilter filter,
        VARIANT_BOOL *valid) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDefaultFilter(
        FsrmReportType reportType,
        FsrmReportFilter filter,
        VARIANT *filterValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetDefaultFilter(
        FsrmReportType reportType,
        FsrmReportFilter filter,
        VARIANT filterValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetReportSizeLimit(
        FsrmReportLimit limit,
        VARIANT *limitValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetReportSizeLimit(
        FsrmReportLimit limit,
        VARIANT limitValue) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IFsrmReportManager, 0x27b899fe, 0x6ffa, 0x4481, 0xa1,0x84, 0xd3,0xda,0xad,0xe8,0xa0,0x2b)
#endif
#else
typedef struct IFsrmReportManagerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IFsrmReportManager *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IFsrmReportManager *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IFsrmReportManager *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IFsrmReportManager *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IFsrmReportManager *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IFsrmReportManager *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IFsrmReportManager *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IFsrmReportManager methods ***/
    HRESULT (STDMETHODCALLTYPE *EnumReportJobs)(
        IFsrmReportManager *This,
        FsrmEnumOptions options,
        IFsrmCollection **reportJobs);

    HRESULT (STDMETHODCALLTYPE *CreateReportJob)(
        IFsrmReportManager *This,
        IFsrmReportJob **reportJob);

    HRESULT (STDMETHODCALLTYPE *GetReportJob)(
        IFsrmReportManager *This,
        BSTR taskName,
        IFsrmReportJob **reportJob);

    HRESULT (STDMETHODCALLTYPE *GetOutputDirectory)(
        IFsrmReportManager *This,
        FsrmReportGenerationContext context,
        BSTR *path);

    HRESULT (STDMETHODCALLTYPE *SetOutputDirectory)(
        IFsrmReportManager *This,
        FsrmReportGenerationContext context,
        BSTR path);

    HRESULT (STDMETHODCALLTYPE *IsFilterValidForReportType)(
        IFsrmReportManager *This,
        FsrmReportType reportType,
        FsrmReportFilter filter,
        VARIANT_BOOL *valid);

    HRESULT (STDMETHODCALLTYPE *GetDefaultFilter)(
        IFsrmReportManager *This,
        FsrmReportType reportType,
        FsrmReportFilter filter,
        VARIANT *filterValue);

    HRESULT (STDMETHODCALLTYPE *SetDefaultFilter)(
        IFsrmReportManager *This,
        FsrmReportType reportType,
        FsrmReportFilter filter,
        VARIANT filterValue);

    HRESULT (STDMETHODCALLTYPE *GetReportSizeLimit)(
        IFsrmReportManager *This,
        FsrmReportLimit limit,
        VARIANT *limitValue);

    HRESULT (STDMETHODCALLTYPE *SetReportSizeLimit)(
        IFsrmReportManager *This,
        FsrmReportLimit limit,
        VARIANT limitValue);

    END_INTERFACE
} IFsrmReportManagerVtbl;

interface IFsrmReportManager {
    CONST_VTBL IFsrmReportManagerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IFsrmReportManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IFsrmReportManager_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IFsrmReportManager_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IFsrmReportManager_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IFsrmReportManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IFsrmReportManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IFsrmReportManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IFsrmReportManager methods ***/
#define IFsrmReportManager_EnumReportJobs(This,options,reportJobs) (This)->lpVtbl->EnumReportJobs(This,options,reportJobs)
#define IFsrmReportManager_CreateReportJob(This,reportJob) (This)->lpVtbl->CreateReportJob(This,reportJob)
#define IFsrmReportManager_GetReportJob(This,taskName,reportJob) (This)->lpVtbl->GetReportJob(This,taskName,reportJob)
#define IFsrmReportManager_GetOutputDirectory(This,context,path) (This)->lpVtbl->GetOutputDirectory(This,context,path)
#define IFsrmReportManager_SetOutputDirectory(This,context,path) (This)->lpVtbl->SetOutputDirectory(This,context,path)
#define IFsrmReportManager_IsFilterValidForReportType(This,reportType,filter,valid) (This)->lpVtbl->IsFilterValidForReportType(This,reportType,filter,valid)
#define IFsrmReportManager_GetDefaultFilter(This,reportType,filter,filterValue) (This)->lpVtbl->GetDefaultFilter(This,reportType,filter,filterValue)
#define IFsrmReportManager_SetDefaultFilter(This,reportType,filter,filterValue) (This)->lpVtbl->SetDefaultFilter(This,reportType,filter,filterValue)
#define IFsrmReportManager_GetReportSizeLimit(This,limit,limitValue) (This)->lpVtbl->GetReportSizeLimit(This,limit,limitValue)
#define IFsrmReportManager_SetReportSizeLimit(This,limit,limitValue) (This)->lpVtbl->SetReportSizeLimit(This,limit,limitValue)
#else
/*** IUnknown methods ***/
static inline HRESULT IFsrmReportManager_QueryInterface(IFsrmReportManager* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmReportManager_AddRef(IFsrmReportManager* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmReportManager_Release(IFsrmReportManager* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmReportManager_GetTypeInfoCount(IFsrmReportManager* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmReportManager_GetTypeInfo(IFsrmReportManager* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline HRESULT IFsrmReportManager_GetIDsOfNames(IFsrmReportManager* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static inline HRESULT IFsrmReportManager_Invoke(IFsrmReportManager* 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);
}
/*** IFsrmReportManager methods ***/
static inline HRESULT IFsrmReportManager_EnumReportJobs(IFsrmReportManager* This,FsrmEnumOptions options,IFsrmCollection **reportJobs) {
    return This->lpVtbl->EnumReportJobs(This,options,reportJobs);
}
static inline HRESULT IFsrmReportManager_CreateReportJob(IFsrmReportManager* This,IFsrmReportJob **reportJob) {
    return This->lpVtbl->CreateReportJob(This,reportJob);
}
static inline HRESULT IFsrmReportManager_GetReportJob(IFsrmReportManager* This,BSTR taskName,IFsrmReportJob **reportJob) {
    return This->lpVtbl->GetReportJob(This,taskName,reportJob);
}
static inline HRESULT IFsrmReportManager_GetOutputDirectory(IFsrmReportManager* This,FsrmReportGenerationContext context,BSTR *path) {
    return This->lpVtbl->GetOutputDirectory(This,context,path);
}
static inline HRESULT IFsrmReportManager_SetOutputDirectory(IFsrmReportManager* This,FsrmReportGenerationContext context,BSTR path) {
    return This->lpVtbl->SetOutputDirectory(This,context,path);
}
static inline HRESULT IFsrmReportManager_IsFilterValidForReportType(IFsrmReportManager* This,FsrmReportType reportType,FsrmReportFilter filter,VARIANT_BOOL *valid) {
    return This->lpVtbl->IsFilterValidForReportType(This,reportType,filter,valid);
}
static inline HRESULT IFsrmReportManager_GetDefaultFilter(IFsrmReportManager* This,FsrmReportType reportType,FsrmReportFilter filter,VARIANT *filterValue) {
    return This->lpVtbl->GetDefaultFilter(This,reportType,filter,filterValue);
}
static inline HRESULT IFsrmReportManager_SetDefaultFilter(IFsrmReportManager* This,FsrmReportType reportType,FsrmReportFilter filter,VARIANT filterValue) {
    return This->lpVtbl->SetDefaultFilter(This,reportType,filter,filterValue);
}
static inline HRESULT IFsrmReportManager_GetReportSizeLimit(IFsrmReportManager* This,FsrmReportLimit limit,VARIANT *limitValue) {
    return This->lpVtbl->GetReportSizeLimit(This,limit,limitValue);
}
static inline HRESULT IFsrmReportManager_SetReportSizeLimit(IFsrmReportManager* This,FsrmReportLimit limit,VARIANT limitValue) {
    return This->lpVtbl->SetReportSizeLimit(This,limit,limitValue);
}
#endif
#endif

#endif


#endif  /* __IFsrmReportManager_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IFsrmReportJob interface
 */
#ifndef __IFsrmReportJob_INTERFACE_DEFINED__
#define __IFsrmReportJob_INTERFACE_DEFINED__

DEFINE_GUID(IID_IFsrmReportJob, 0x38e87280, 0x715c, 0x4c7d, 0xa2,0x80, 0xea,0x16,0x51,0xa1,0x9f,0xef);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("38e87280-715c-4c7d-a280-ea1651a19fef")
IFsrmReportJob : public IFsrmObject
{
    virtual HRESULT STDMETHODCALLTYPE get_Task(
        BSTR *taskName) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Task(
        BSTR taskName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_NamespaceRoots(
        SAFEARRAY **namespaceRoots) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_NamespaceRoots(
        SAFEARRAY *namespaceRoots) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Formats(
        SAFEARRAY **formats) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Formats(
        SAFEARRAY *formats) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_MailTo(
        BSTR *mailTo) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_MailTo(
        BSTR mailTo) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_RunningStatus(
        FsrmReportRunningStatus *runningStatus) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LastRun(
        DATE *lastRun) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LastError(
        BSTR *lastError) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LastGeneratedInDirectory(
        BSTR *path) = 0;

    virtual HRESULT STDMETHODCALLTYPE EnumReports(
        IFsrmCollection **reports) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateReport(
        FsrmReportType reportType,
        IFsrmReport **report) = 0;

    virtual HRESULT STDMETHODCALLTYPE Run(
        FsrmReportGenerationContext context) = 0;

    virtual HRESULT STDMETHODCALLTYPE WaitForCompletion(
        LONG waitSeconds,
        VARIANT_BOOL *completed) = 0;

    virtual HRESULT STDMETHODCALLTYPE Cancel(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IFsrmReportJob, 0x38e87280, 0x715c, 0x4c7d, 0xa2,0x80, 0xea,0x16,0x51,0xa1,0x9f,0xef)
#endif
#else
typedef struct IFsrmReportJobVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IFsrmReportJob *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IFsrmReportJob *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IFsrmReportJob *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IFsrmReportJob *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IFsrmReportJob *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IFsrmReportJob *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IFsrmReportJob *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IFsrmObject methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Id)(
        IFsrmReportJob *This,
        FSRM_OBJECT_ID *id);

    HRESULT (STDMETHODCALLTYPE *get_Description)(
        IFsrmReportJob *This,
        BSTR *description);

    HRESULT (STDMETHODCALLTYPE *put_Description)(
        IFsrmReportJob *This,
        BSTR description);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        IFsrmReportJob *This);

    HRESULT (STDMETHODCALLTYPE *Commit)(
        IFsrmReportJob *This);

    /*** IFsrmReportJob methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Task)(
        IFsrmReportJob *This,
        BSTR *taskName);

    HRESULT (STDMETHODCALLTYPE *put_Task)(
        IFsrmReportJob *This,
        BSTR taskName);

    HRESULT (STDMETHODCALLTYPE *get_NamespaceRoots)(
        IFsrmReportJob *This,
        SAFEARRAY **namespaceRoots);

    HRESULT (STDMETHODCALLTYPE *put_NamespaceRoots)(
        IFsrmReportJob *This,
        SAFEARRAY *namespaceRoots);

    HRESULT (STDMETHODCALLTYPE *get_Formats)(
        IFsrmReportJob *This,
        SAFEARRAY **formats);

    HRESULT (STDMETHODCALLTYPE *put_Formats)(
        IFsrmReportJob *This,
        SAFEARRAY *formats);

    HRESULT (STDMETHODCALLTYPE *get_MailTo)(
        IFsrmReportJob *This,
        BSTR *mailTo);

    HRESULT (STDMETHODCALLTYPE *put_MailTo)(
        IFsrmReportJob *This,
        BSTR mailTo);

    HRESULT (STDMETHODCALLTYPE *get_RunningStatus)(
        IFsrmReportJob *This,
        FsrmReportRunningStatus *runningStatus);

    HRESULT (STDMETHODCALLTYPE *get_LastRun)(
        IFsrmReportJob *This,
        DATE *lastRun);

    HRESULT (STDMETHODCALLTYPE *get_LastError)(
        IFsrmReportJob *This,
        BSTR *lastError);

    HRESULT (STDMETHODCALLTYPE *get_LastGeneratedInDirectory)(
        IFsrmReportJob *This,
        BSTR *path);

    HRESULT (STDMETHODCALLTYPE *EnumReports)(
        IFsrmReportJob *This,
        IFsrmCollection **reports);

    HRESULT (STDMETHODCALLTYPE *CreateReport)(
        IFsrmReportJob *This,
        FsrmReportType reportType,
        IFsrmReport **report);

    HRESULT (STDMETHODCALLTYPE *Run)(
        IFsrmReportJob *This,
        FsrmReportGenerationContext context);

    HRESULT (STDMETHODCALLTYPE *WaitForCompletion)(
        IFsrmReportJob *This,
        LONG waitSeconds,
        VARIANT_BOOL *completed);

    HRESULT (STDMETHODCALLTYPE *Cancel)(
        IFsrmReportJob *This);

    END_INTERFACE
} IFsrmReportJobVtbl;

interface IFsrmReportJob {
    CONST_VTBL IFsrmReportJobVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IFsrmReportJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IFsrmReportJob_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IFsrmReportJob_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IFsrmReportJob_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IFsrmReportJob_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IFsrmReportJob_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IFsrmReportJob_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 IFsrmReportJob_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
#define IFsrmReportJob_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
#define IFsrmReportJob_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
#define IFsrmReportJob_Delete(This) (This)->lpVtbl->Delete(This)
#define IFsrmReportJob_Commit(This) (This)->lpVtbl->Commit(This)
/*** IFsrmReportJob methods ***/
#define IFsrmReportJob_get_Task(This,taskName) (This)->lpVtbl->get_Task(This,taskName)
#define IFsrmReportJob_put_Task(This,taskName) (This)->lpVtbl->put_Task(This,taskName)
#define IFsrmReportJob_get_NamespaceRoots(This,namespaceRoots) (This)->lpVtbl->get_NamespaceRoots(This,namespaceRoots)
#define IFsrmReportJob_put_NamespaceRoots(This,namespaceRoots) (This)->lpVtbl->put_NamespaceRoots(This,namespaceRoots)
#define IFsrmReportJob_get_Formats(This,formats) (This)->lpVtbl->get_Formats(This,formats)
#define IFsrmReportJob_put_Formats(This,formats) (This)->lpVtbl->put_Formats(This,formats)
#define IFsrmReportJob_get_MailTo(This,mailTo) (This)->lpVtbl->get_MailTo(This,mailTo)
#define IFsrmReportJob_put_MailTo(This,mailTo) (This)->lpVtbl->put_MailTo(This,mailTo)
#define IFsrmReportJob_get_RunningStatus(This,runningStatus) (This)->lpVtbl->get_RunningStatus(This,runningStatus)
#define IFsrmReportJob_get_LastRun(This,lastRun) (This)->lpVtbl->get_LastRun(This,lastRun)
#define IFsrmReportJob_get_LastError(This,lastError) (This)->lpVtbl->get_LastError(This,lastError)
#define IFsrmReportJob_get_LastGeneratedInDirectory(This,path) (This)->lpVtbl->get_LastGeneratedInDirectory(This,path)
#define IFsrmReportJob_EnumReports(This,reports) (This)->lpVtbl->EnumReports(This,reports)
#define IFsrmReportJob_CreateReport(This,reportType,report) (This)->lpVtbl->CreateReport(This,reportType,report)
#define IFsrmReportJob_Run(This,context) (This)->lpVtbl->Run(This,context)
#define IFsrmReportJob_WaitForCompletion(This,waitSeconds,completed) (This)->lpVtbl->WaitForCompletion(This,waitSeconds,completed)
#define IFsrmReportJob_Cancel(This) (This)->lpVtbl->Cancel(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IFsrmReportJob_QueryInterface(IFsrmReportJob* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmReportJob_AddRef(IFsrmReportJob* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmReportJob_Release(IFsrmReportJob* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmReportJob_GetTypeInfoCount(IFsrmReportJob* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmReportJob_GetTypeInfo(IFsrmReportJob* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline HRESULT IFsrmReportJob_GetIDsOfNames(IFsrmReportJob* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static inline HRESULT IFsrmReportJob_Invoke(IFsrmReportJob* 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 IFsrmReportJob_get_Id(IFsrmReportJob* This,FSRM_OBJECT_ID *id) {
    return This->lpVtbl->get_Id(This,id);
}
static inline HRESULT IFsrmReportJob_get_Description(IFsrmReportJob* This,BSTR *description) {
    return This->lpVtbl->get_Description(This,description);
}
static inline HRESULT IFsrmReportJob_put_Description(IFsrmReportJob* This,BSTR description) {
    return This->lpVtbl->put_Description(This,description);
}
static inline HRESULT IFsrmReportJob_Delete(IFsrmReportJob* This) {
    return This->lpVtbl->Delete(This);
}
static inline HRESULT IFsrmReportJob_Commit(IFsrmReportJob* This) {
    return This->lpVtbl->Commit(This);
}
/*** IFsrmReportJob methods ***/
static inline HRESULT IFsrmReportJob_get_Task(IFsrmReportJob* This,BSTR *taskName) {
    return This->lpVtbl->get_Task(This,taskName);
}
static inline HRESULT IFsrmReportJob_put_Task(IFsrmReportJob* This,BSTR taskName) {
    return This->lpVtbl->put_Task(This,taskName);
}
static inline HRESULT IFsrmReportJob_get_NamespaceRoots(IFsrmReportJob* This,SAFEARRAY **namespaceRoots) {
    return This->lpVtbl->get_NamespaceRoots(This,namespaceRoots);
}
static inline HRESULT IFsrmReportJob_put_NamespaceRoots(IFsrmReportJob* This,SAFEARRAY *namespaceRoots) {
    return This->lpVtbl->put_NamespaceRoots(This,namespaceRoots);
}
static inline HRESULT IFsrmReportJob_get_Formats(IFsrmReportJob* This,SAFEARRAY **formats) {
    return This->lpVtbl->get_Formats(This,formats);
}
static inline HRESULT IFsrmReportJob_put_Formats(IFsrmReportJob* This,SAFEARRAY *formats) {
    return This->lpVtbl->put_Formats(This,formats);
}
static inline HRESULT IFsrmReportJob_get_MailTo(IFsrmReportJob* This,BSTR *mailTo) {
    return This->lpVtbl->get_MailTo(This,mailTo);
}
static inline HRESULT IFsrmReportJob_put_MailTo(IFsrmReportJob* This,BSTR mailTo) {
    return This->lpVtbl->put_MailTo(This,mailTo);
}
static inline HRESULT IFsrmReportJob_get_RunningStatus(IFsrmReportJob* This,FsrmReportRunningStatus *runningStatus) {
    return This->lpVtbl->get_RunningStatus(This,runningStatus);
}
static inline HRESULT IFsrmReportJob_get_LastRun(IFsrmReportJob* This,DATE *lastRun) {
    return This->lpVtbl->get_LastRun(This,lastRun);
}
static inline HRESULT IFsrmReportJob_get_LastError(IFsrmReportJob* This,BSTR *lastError) {
    return This->lpVtbl->get_LastError(This,lastError);
}
static inline HRESULT IFsrmReportJob_get_LastGeneratedInDirectory(IFsrmReportJob* This,BSTR *path) {
    return This->lpVtbl->get_LastGeneratedInDirectory(This,path);
}
static inline HRESULT IFsrmReportJob_EnumReports(IFsrmReportJob* This,IFsrmCollection **reports) {
    return This->lpVtbl->EnumReports(This,reports);
}
static inline HRESULT IFsrmReportJob_CreateReport(IFsrmReportJob* This,FsrmReportType reportType,IFsrmReport **report) {
    return This->lpVtbl->CreateReport(This,reportType,report);
}
static inline HRESULT IFsrmReportJob_Run(IFsrmReportJob* This,FsrmReportGenerationContext context) {
    return This->lpVtbl->Run(This,context);
}
static inline HRESULT IFsrmReportJob_WaitForCompletion(IFsrmReportJob* This,LONG waitSeconds,VARIANT_BOOL *completed) {
    return This->lpVtbl->WaitForCompletion(This,waitSeconds,completed);
}
static inline HRESULT IFsrmReportJob_Cancel(IFsrmReportJob* This) {
    return This->lpVtbl->Cancel(This);
}
#endif
#endif

#endif


#endif  /* __IFsrmReportJob_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IFsrmFileManagementJob interface
 */
#ifndef __IFsrmFileManagementJob_INTERFACE_DEFINED__
#define __IFsrmFileManagementJob_INTERFACE_DEFINED__

#define FsrmDaysNotSpecified (-1)

#define FsrmDateNotSpecified ((DATE)-1)

DEFINE_GUID(IID_IFsrmFileManagementJob, 0x0770687e, 0x9f36, 0x4d6f, 0x87,0x78, 0x59,0x9d,0x18,0x84,0x61,0xc9);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("0770687e-9f36-4d6f-8778-599d188461c9")
IFsrmFileManagementJob : public IFsrmObject
{
    virtual HRESULT STDMETHODCALLTYPE get_Name(
        BSTR *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Name(
        BSTR name) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_NamespaceRoots(
        SAFEARRAY **namespaceRoots) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_NamespaceRoots(
        SAFEARRAY *namespaceRoots) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Enabled(
        VARIANT_BOOL *enabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Enabled(
        VARIANT_BOOL enabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_OperationType(
        FsrmFileManagementType *operationType) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_OperationType(
        FsrmFileManagementType operationType) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ExpirationDirectory(
        BSTR *expirationDirectory) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ExpirationDirectory(
        BSTR expirationDirectory) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_CustomAction(
        IFsrmActionCommand **action) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Notifications(
        SAFEARRAY **notifications) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Logging(
        LONG *loggingFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Logging(
        LONG loggingFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ReportEnabled(
        VARIANT_BOOL *reportEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ReportEnabled(
        VARIANT_BOOL reportEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Formats(
        SAFEARRAY **formats) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Formats(
        SAFEARRAY *formats) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_MailTo(
        BSTR *mailTo) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_MailTo(
        BSTR mailTo) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_DaysSinceFileCreated(
        LONG *daysSinceCreation) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_DaysSinceFileCreated(
        LONG daysSinceCreation) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_DaysSinceFileLastAccessed(
        LONG *daysSinceAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_DaysSinceFileLastAccessed(
        LONG daysSinceAccess) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_DaysSinceFileLastModified(
        LONG *daysSinceModify) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_DaysSinceFileLastModified(
        LONG daysSinceModify) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_PropertyConditions(
        IFsrmCollection **propertyConditions) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_FromDate(
        DATE *fromDate) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_FromDate(
        DATE fromDate) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Task(
        BSTR *taskName) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Task(
        BSTR taskName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Parameters(
        SAFEARRAY **parameters) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Parameters(
        SAFEARRAY *parameters) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_RunningStatus(
        FsrmReportRunningStatus *runningStatus) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LastError(
        BSTR *lastError) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LastReportPathWithoutExtension(
        BSTR *path) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LastRun(
        DATE *lastRun) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_FileNamePattern(
        BSTR *fileNamePattern) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_FileNamePattern(
        BSTR fileNamePattern) = 0;

    virtual HRESULT STDMETHODCALLTYPE Run(
        FsrmReportGenerationContext context) = 0;

    virtual HRESULT STDMETHODCALLTYPE WaitForCompletion(
        LONG waitSeconds,
        VARIANT_BOOL *completed) = 0;

    virtual HRESULT STDMETHODCALLTYPE Cancel(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE AddNotification(
        LONG days) = 0;

    virtual HRESULT STDMETHODCALLTYPE DeleteNotification(
        LONG days) = 0;

    virtual HRESULT STDMETHODCALLTYPE ModifyNotification(
        LONG days,
        LONG newDays) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateNotificationAction(
        LONG days,
        FsrmActionType actionType,
        IFsrmAction **action) = 0;

    virtual HRESULT STDMETHODCALLTYPE EnumNotificationActions(
        LONG days,
        IFsrmCollection **actions) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreatePropertyCondition(
        BSTR name,
        IFsrmPropertyCondition **propertyCondition) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateCustomAction(
        IFsrmActionCommand **customAction) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IFsrmFileManagementJob, 0x0770687e, 0x9f36, 0x4d6f, 0x87,0x78, 0x59,0x9d,0x18,0x84,0x61,0xc9)
#endif
#else
typedef struct IFsrmFileManagementJobVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IFsrmFileManagementJob *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IFsrmFileManagementJob *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IFsrmFileManagementJob *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IFsrmFileManagementJob *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IFsrmFileManagementJob *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IFsrmFileManagementJob *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IFsrmFileManagementJob *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IFsrmObject methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Id)(
        IFsrmFileManagementJob *This,
        FSRM_OBJECT_ID *id);

    HRESULT (STDMETHODCALLTYPE *get_Description)(
        IFsrmFileManagementJob *This,
        BSTR *description);

    HRESULT (STDMETHODCALLTYPE *put_Description)(
        IFsrmFileManagementJob *This,
        BSTR description);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        IFsrmFileManagementJob *This);

    HRESULT (STDMETHODCALLTYPE *Commit)(
        IFsrmFileManagementJob *This);

    /*** IFsrmFileManagementJob methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Name)(
        IFsrmFileManagementJob *This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *put_Name)(
        IFsrmFileManagementJob *This,
        BSTR name);

    HRESULT (STDMETHODCALLTYPE *get_NamespaceRoots)(
        IFsrmFileManagementJob *This,
        SAFEARRAY **namespaceRoots);

    HRESULT (STDMETHODCALLTYPE *put_NamespaceRoots)(
        IFsrmFileManagementJob *This,
        SAFEARRAY *namespaceRoots);

    HRESULT (STDMETHODCALLTYPE *get_Enabled)(
        IFsrmFileManagementJob *This,
        VARIANT_BOOL *enabled);

    HRESULT (STDMETHODCALLTYPE *put_Enabled)(
        IFsrmFileManagementJob *This,
        VARIANT_BOOL enabled);

    HRESULT (STDMETHODCALLTYPE *get_OperationType)(
        IFsrmFileManagementJob *This,
        FsrmFileManagementType *operationType);

    HRESULT (STDMETHODCALLTYPE *put_OperationType)(
        IFsrmFileManagementJob *This,
        FsrmFileManagementType operationType);

    HRESULT (STDMETHODCALLTYPE *get_ExpirationDirectory)(
        IFsrmFileManagementJob *This,
        BSTR *expirationDirectory);

    HRESULT (STDMETHODCALLTYPE *put_ExpirationDirectory)(
        IFsrmFileManagementJob *This,
        BSTR expirationDirectory);

    HRESULT (STDMETHODCALLTYPE *get_CustomAction)(
        IFsrmFileManagementJob *This,
        IFsrmActionCommand **action);

    HRESULT (STDMETHODCALLTYPE *get_Notifications)(
        IFsrmFileManagementJob *This,
        SAFEARRAY **notifications);

    HRESULT (STDMETHODCALLTYPE *get_Logging)(
        IFsrmFileManagementJob *This,
        LONG *loggingFlags);

    HRESULT (STDMETHODCALLTYPE *put_Logging)(
        IFsrmFileManagementJob *This,
        LONG loggingFlags);

    HRESULT (STDMETHODCALLTYPE *get_ReportEnabled)(
        IFsrmFileManagementJob *This,
        VARIANT_BOOL *reportEnabled);

    HRESULT (STDMETHODCALLTYPE *put_ReportEnabled)(
        IFsrmFileManagementJob *This,
        VARIANT_BOOL reportEnabled);

    HRESULT (STDMETHODCALLTYPE *get_Formats)(
        IFsrmFileManagementJob *This,
        SAFEARRAY **formats);

    HRESULT (STDMETHODCALLTYPE *put_Formats)(
        IFsrmFileManagementJob *This,
        SAFEARRAY *formats);

    HRESULT (STDMETHODCALLTYPE *get_MailTo)(
        IFsrmFileManagementJob *This,
        BSTR *mailTo);

    HRESULT (STDMETHODCALLTYPE *put_MailTo)(
        IFsrmFileManagementJob *This,
        BSTR mailTo);

    HRESULT (STDMETHODCALLTYPE *get_DaysSinceFileCreated)(
        IFsrmFileManagementJob *This,
        LONG *daysSinceCreation);

    HRESULT (STDMETHODCALLTYPE *put_DaysSinceFileCreated)(
        IFsrmFileManagementJob *This,
        LONG daysSinceCreation);

    HRESULT (STDMETHODCALLTYPE *get_DaysSinceFileLastAccessed)(
        IFsrmFileManagementJob *This,
        LONG *daysSinceAccess);

    HRESULT (STDMETHODCALLTYPE *put_DaysSinceFileLastAccessed)(
        IFsrmFileManagementJob *This,
        LONG daysSinceAccess);

    HRESULT (STDMETHODCALLTYPE *get_DaysSinceFileLastModified)(
        IFsrmFileManagementJob *This,
        LONG *daysSinceModify);

    HRESULT (STDMETHODCALLTYPE *put_DaysSinceFileLastModified)(
        IFsrmFileManagementJob *This,
        LONG daysSinceModify);

    HRESULT (STDMETHODCALLTYPE *get_PropertyConditions)(
        IFsrmFileManagementJob *This,
        IFsrmCollection **propertyConditions);

    HRESULT (STDMETHODCALLTYPE *get_FromDate)(
        IFsrmFileManagementJob *This,
        DATE *fromDate);

    HRESULT (STDMETHODCALLTYPE *put_FromDate)(
        IFsrmFileManagementJob *This,
        DATE fromDate);

    HRESULT (STDMETHODCALLTYPE *get_Task)(
        IFsrmFileManagementJob *This,
        BSTR *taskName);

    HRESULT (STDMETHODCALLTYPE *put_Task)(
        IFsrmFileManagementJob *This,
        BSTR taskName);

    HRESULT (STDMETHODCALLTYPE *get_Parameters)(
        IFsrmFileManagementJob *This,
        SAFEARRAY **parameters);

    HRESULT (STDMETHODCALLTYPE *put_Parameters)(
        IFsrmFileManagementJob *This,
        SAFEARRAY *parameters);

    HRESULT (STDMETHODCALLTYPE *get_RunningStatus)(
        IFsrmFileManagementJob *This,
        FsrmReportRunningStatus *runningStatus);

    HRESULT (STDMETHODCALLTYPE *get_LastError)(
        IFsrmFileManagementJob *This,
        BSTR *lastError);

    HRESULT (STDMETHODCALLTYPE *get_LastReportPathWithoutExtension)(
        IFsrmFileManagementJob *This,
        BSTR *path);

    HRESULT (STDMETHODCALLTYPE *get_LastRun)(
        IFsrmFileManagementJob *This,
        DATE *lastRun);

    HRESULT (STDMETHODCALLTYPE *get_FileNamePattern)(
        IFsrmFileManagementJob *This,
        BSTR *fileNamePattern);

    HRESULT (STDMETHODCALLTYPE *put_FileNamePattern)(
        IFsrmFileManagementJob *This,
        BSTR fileNamePattern);

    HRESULT (STDMETHODCALLTYPE *Run)(
        IFsrmFileManagementJob *This,
        FsrmReportGenerationContext context);

    HRESULT (STDMETHODCALLTYPE *WaitForCompletion)(
        IFsrmFileManagementJob *This,
        LONG waitSeconds,
        VARIANT_BOOL *completed);

    HRESULT (STDMETHODCALLTYPE *Cancel)(
        IFsrmFileManagementJob *This);

    HRESULT (STDMETHODCALLTYPE *AddNotification)(
        IFsrmFileManagementJob *This,
        LONG days);

    HRESULT (STDMETHODCALLTYPE *DeleteNotification)(
        IFsrmFileManagementJob *This,
        LONG days);

    HRESULT (STDMETHODCALLTYPE *ModifyNotification)(
        IFsrmFileManagementJob *This,
        LONG days,
        LONG newDays);

    HRESULT (STDMETHODCALLTYPE *CreateNotificationAction)(
        IFsrmFileManagementJob *This,
        LONG days,
        FsrmActionType actionType,
        IFsrmAction **action);

    HRESULT (STDMETHODCALLTYPE *EnumNotificationActions)(
        IFsrmFileManagementJob *This,
        LONG days,
        IFsrmCollection **actions);

    HRESULT (STDMETHODCALLTYPE *CreatePropertyCondition)(
        IFsrmFileManagementJob *This,
        BSTR name,
        IFsrmPropertyCondition **propertyCondition);

    HRESULT (STDMETHODCALLTYPE *CreateCustomAction)(
        IFsrmFileManagementJob *This,
        IFsrmActionCommand **customAction);

    END_INTERFACE
} IFsrmFileManagementJobVtbl;

interface IFsrmFileManagementJob {
    CONST_VTBL IFsrmFileManagementJobVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IFsrmFileManagementJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IFsrmFileManagementJob_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IFsrmFileManagementJob_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IFsrmFileManagementJob_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IFsrmFileManagementJob_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IFsrmFileManagementJob_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IFsrmFileManagementJob_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IFsrmObject methods ***/
#define IFsrmFileManagementJob_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
#define IFsrmFileManagementJob_get_Description(This,description) (This)->lpVtbl->get_Description(This,description)
#define IFsrmFileManagementJob_put_Description(This,description) (This)->lpVtbl->put_Description(This,description)
#define IFsrmFileManagementJob_Delete(This) (This)->lpVtbl->Delete(This)
#define IFsrmFileManagementJob_Commit(This) (This)->lpVtbl->Commit(This)
/*** IFsrmFileManagementJob methods ***/
#define IFsrmFileManagementJob_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
#define IFsrmFileManagementJob_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
#define IFsrmFileManagementJob_get_NamespaceRoots(This,namespaceRoots) (This)->lpVtbl->get_NamespaceRoots(This,namespaceRoots)
#define IFsrmFileManagementJob_put_NamespaceRoots(This,namespaceRoots) (This)->lpVtbl->put_NamespaceRoots(This,namespaceRoots)
#define IFsrmFileManagementJob_get_Enabled(This,enabled) (This)->lpVtbl->get_Enabled(This,enabled)
#define IFsrmFileManagementJob_put_Enabled(This,enabled) (This)->lpVtbl->put_Enabled(This,enabled)
#define IFsrmFileManagementJob_get_OperationType(This,operationType) (This)->lpVtbl->get_OperationType(This,operationType)
#define IFsrmFileManagementJob_put_OperationType(This,operationType) (This)->lpVtbl->put_OperationType(This,operationType)
#define IFsrmFileManagementJob_get_ExpirationDirectory(This,expirationDirectory) (This)->lpVtbl->get_ExpirationDirectory(This,expirationDirectory)
#define IFsrmFileManagementJob_put_ExpirationDirectory(This,expirationDirectory) (This)->lpVtbl->put_ExpirationDirectory(This,expirationDirectory)
#define IFsrmFileManagementJob_get_CustomAction(This,action) (This)->lpVtbl->get_CustomAction(This,action)
#define IFsrmFileManagementJob_get_Notifications(This,notifications) (This)->lpVtbl->get_Notifications(This,notifications)
#define IFsrmFileManagementJob_get_Logging(This,loggingFlags) (This)->lpVtbl->get_Logging(This,loggingFlags)
#define IFsrmFileManagementJob_put_Logging(This,loggingFlags) (This)->lpVtbl->put_Logging(This,loggingFlags)
#define IFsrmFileManagementJob_get_ReportEnabled(This,reportEnabled) (This)->lpVtbl->get_ReportEnabled(This,reportEnabled)
#define IFsrmFileManagementJob_put_ReportEnabled(This,reportEnabled) (This)->lpVtbl->put_ReportEnabled(This,reportEnabled)
#define IFsrmFileManagementJob_get_Formats(This,formats) (This)->lpVtbl->get_Formats(This,formats)
#define IFsrmFileManagementJob_put_Formats(This,formats) (This)->lpVtbl->put_Formats(This,formats)
#define IFsrmFileManagementJob_get_MailTo(This,mailTo) (This)->lpVtbl->get_MailTo(This,mailTo)
#define IFsrmFileManagementJob_put_MailTo(This,mailTo) (This)->lpVtbl->put_MailTo(This,mailTo)
#define IFsrmFileManagementJob_get_DaysSinceFileCreated(This,daysSinceCreation) (This)->lpVtbl->get_DaysSinceFileCreated(This,daysSinceCreation)
#define IFsrmFileManagementJob_put_DaysSinceFileCreated(This,daysSinceCreation) (This)->lpVtbl->put_DaysSinceFileCreated(This,daysSinceCreation)
#define IFsrmFileManagementJob_get_DaysSinceFileLastAccessed(This,daysSinceAccess) (This)->lpVtbl->get_DaysSinceFileLastAccessed(This,daysSinceAccess)
#define IFsrmFileManagementJob_put_DaysSinceFileLastAccessed(This,daysSinceAccess) (This)->lpVtbl->put_DaysSinceFileLastAccessed(This,daysSinceAccess)
#define IFsrmFileManagementJob_get_DaysSinceFileLastModified(This,daysSinceModify) (This)->lpVtbl->get_DaysSinceFileLastModified(This,daysSinceModify)
#define IFsrmFileManagementJob_put_DaysSinceFileLastModified(This,daysSinceModify) (This)->lpVtbl->put_DaysSinceFileLastModified(This,daysSinceModify)
#define IFsrmFileManagementJob_get_PropertyConditions(This,propertyConditions) (This)->lpVtbl->get_PropertyConditions(This,propertyConditions)
#define IFsrmFileManagementJob_get_FromDate(This,fromDate) (This)->lpVtbl->get_FromDate(This,fromDate)
#define IFsrmFileManagementJob_put_FromDate(This,fromDate) (This)->lpVtbl->put_FromDate(This,fromDate)
#define IFsrmFileManagementJob_get_Task(This,taskName) (This)->lpVtbl->get_Task(This,taskName)
#define IFsrmFileManagementJob_put_Task(This,taskName) (This)->lpVtbl->put_Task(This,taskName)
#define IFsrmFileManagementJob_get_Parameters(This,parameters) (This)->lpVtbl->get_Parameters(This,parameters)
#define IFsrmFileManagementJob_put_Parameters(This,parameters) (This)->lpVtbl->put_Parameters(This,parameters)
#define IFsrmFileManagementJob_get_RunningStatus(This,runningStatus) (This)->lpVtbl->get_RunningStatus(This,runningStatus)
#define IFsrmFileManagementJob_get_LastError(This,lastError) (This)->lpVtbl->get_LastError(This,lastError)
#define IFsrmFileManagementJob_get_LastReportPathWithoutExtension(This,path) (This)->lpVtbl->get_LastReportPathWithoutExtension(This,path)
#define IFsrmFileManagementJob_get_LastRun(This,lastRun) (This)->lpVtbl->get_LastRun(This,lastRun)
#define IFsrmFileManagementJob_get_FileNamePattern(This,fileNamePattern) (This)->lpVtbl->get_FileNamePattern(This,fileNamePattern)
#define IFsrmFileManagementJob_put_FileNamePattern(This,fileNamePattern) (This)->lpVtbl->put_FileNamePattern(This,fileNamePattern)
#define IFsrmFileManagementJob_Run(This,context) (This)->lpVtbl->Run(This,context)
#define IFsrmFileManagementJob_WaitForCompletion(This,waitSeconds,completed) (This)->lpVtbl->WaitForCompletion(This,waitSeconds,completed)
#define IFsrmFileManagementJob_Cancel(This) (This)->lpVtbl->Cancel(This)
#define IFsrmFileManagementJob_AddNotification(This,days) (This)->lpVtbl->AddNotification(This,days)
#define IFsrmFileManagementJob_DeleteNotification(This,days) (This)->lpVtbl->DeleteNotification(This,days)
#define IFsrmFileManagementJob_ModifyNotification(This,days,newDays) (This)->lpVtbl->ModifyNotification(This,days,newDays)
#define IFsrmFileManagementJob_CreateNotificationAction(This,days,actionType,action) (This)->lpVtbl->CreateNotificationAction(This,days,actionType,action)
#define IFsrmFileManagementJob_EnumNotificationActions(This,days,actions) (This)->lpVtbl->EnumNotificationActions(This,days,actions)
#define IFsrmFileManagementJob_CreatePropertyCondition(This,name,propertyCondition) (This)->lpVtbl->CreatePropertyCondition(This,name,propertyCondition)
#define IFsrmFileManagementJob_CreateCustomAction(This,customAction) (This)->lpVtbl->CreateCustomAction(This,customAction)
#else
/*** IUnknown methods ***/
static inline HRESULT IFsrmFileManagementJob_QueryInterface(IFsrmFileManagementJob* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmFileManagementJob_AddRef(IFsrmFileManagementJob* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmFileManagementJob_Release(IFsrmFileManagementJob* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmFileManagementJob_GetTypeInfoCount(IFsrmFileManagementJob* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmFileManagementJob_GetTypeInfo(IFsrmFileManagementJob* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline HRESULT IFsrmFileManagementJob_GetIDsOfNames(IFsrmFileManagementJob* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static inline HRESULT IFsrmFileManagementJob_Invoke(IFsrmFileManagementJob* 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 IFsrmFileManagementJob_get_Id(IFsrmFileManagementJob* This,FSRM_OBJECT_ID *id) {
    return This->lpVtbl->get_Id(This,id);
}
static inline HRESULT IFsrmFileManagementJob_get_Description(IFsrmFileManagementJob* This,BSTR *description) {
    return This->lpVtbl->get_Description(This,description);
}
static inline HRESULT IFsrmFileManagementJob_put_Description(IFsrmFileManagementJob* This,BSTR description) {
    return This->lpVtbl->put_Description(This,description);
}
static inline HRESULT IFsrmFileManagementJob_Delete(IFsrmFileManagementJob* This) {
    return This->lpVtbl->Delete(This);
}
static inline HRESULT IFsrmFileManagementJob_Commit(IFsrmFileManagementJob* This) {
    return This->lpVtbl->Commit(This);
}
/*** IFsrmFileManagementJob methods ***/
static inline HRESULT IFsrmFileManagementJob_get_Name(IFsrmFileManagementJob* This,BSTR *name) {
    return This->lpVtbl->get_Name(This,name);
}
static inline HRESULT IFsrmFileManagementJob_put_Name(IFsrmFileManagementJob* This,BSTR name) {
    return This->lpVtbl->put_Name(This,name);
}
static inline HRESULT IFsrmFileManagementJob_get_NamespaceRoots(IFsrmFileManagementJob* This,SAFEARRAY **namespaceRoots) {
    return This->lpVtbl->get_NamespaceRoots(This,namespaceRoots);
}
static inline HRESULT IFsrmFileManagementJob_put_NamespaceRoots(IFsrmFileManagementJob* This,SAFEARRAY *namespaceRoots) {
    return This->lpVtbl->put_NamespaceRoots(This,namespaceRoots);
}
static inline HRESULT IFsrmFileManagementJob_get_Enabled(IFsrmFileManagementJob* This,VARIANT_BOOL *enabled) {
    return This->lpVtbl->get_Enabled(This,enabled);
}
static inline HRESULT IFsrmFileManagementJob_put_Enabled(IFsrmFileManagementJob* This,VARIANT_BOOL enabled) {
    return This->lpVtbl->put_Enabled(This,enabled);
}
static inline HRESULT IFsrmFileManagementJob_get_OperationType(IFsrmFileManagementJob* This,FsrmFileManagementType *operationType) {
    return This->lpVtbl->get_OperationType(This,operationType);
}
static inline HRESULT IFsrmFileManagementJob_put_OperationType(IFsrmFileManagementJob* This,FsrmFileManagementType operationType) {
    return This->lpVtbl->put_OperationType(This,operationType);
}
static inline HRESULT IFsrmFileManagementJob_get_ExpirationDirectory(IFsrmFileManagementJob* This,BSTR *expirationDirectory) {
    return This->lpVtbl->get_ExpirationDirectory(This,expirationDirectory);
}
static inline HRESULT IFsrmFileManagementJob_put_ExpirationDirectory(IFsrmFileManagementJob* This,BSTR expirationDirectory) {
    return This->lpVtbl->put_ExpirationDirectory(This,expirationDirectory);
}
static inline HRESULT IFsrmFileManagementJob_get_CustomAction(IFsrmFileManagementJob* This,IFsrmActionCommand **action) {
    return This->lpVtbl->get_CustomAction(This,action);
}
static inline HRESULT IFsrmFileManagementJob_get_Notifications(IFsrmFileManagementJob* This,SAFEARRAY **notifications) {
    return This->lpVtbl->get_Notifications(This,notifications);
}
static inline HRESULT IFsrmFileManagementJob_get_Logging(IFsrmFileManagementJob* This,LONG *loggingFlags) {
    return This->lpVtbl->get_Logging(This,loggingFlags);
}
static inline HRESULT IFsrmFileManagementJob_put_Logging(IFsrmFileManagementJob* This,LONG loggingFlags) {
    return This->lpVtbl->put_Logging(This,loggingFlags);
}
static inline HRESULT IFsrmFileManagementJob_get_ReportEnabled(IFsrmFileManagementJob* This,VARIANT_BOOL *reportEnabled) {
    return This->lpVtbl->get_ReportEnabled(This,reportEnabled);
}
static inline HRESULT IFsrmFileManagementJob_put_ReportEnabled(IFsrmFileManagementJob* This,VARIANT_BOOL reportEnabled) {
    return This->lpVtbl->put_ReportEnabled(This,reportEnabled);
}
static inline HRESULT IFsrmFileManagementJob_get_Formats(IFsrmFileManagementJob* This,SAFEARRAY **formats) {
    return This->lpVtbl->get_Formats(This,formats);
}
static inline HRESULT IFsrmFileManagementJob_put_Formats(IFsrmFileManagementJob* This,SAFEARRAY *formats) {
    return This->lpVtbl->put_Formats(This,formats);
}
static inline HRESULT IFsrmFileManagementJob_get_MailTo(IFsrmFileManagementJob* This,BSTR *mailTo) {
    return This->lpVtbl->get_MailTo(This,mailTo);
}
static inline HRESULT IFsrmFileManagementJob_put_MailTo(IFsrmFileManagementJob* This,BSTR mailTo) {
    return This->lpVtbl->put_MailTo(This,mailTo);
}
static inline HRESULT IFsrmFileManagementJob_get_DaysSinceFileCreated(IFsrmFileManagementJob* This,LONG *daysSinceCreation) {
    return This->lpVtbl->get_DaysSinceFileCreated(This,daysSinceCreation);
}
static inline HRESULT IFsrmFileManagementJob_put_DaysSinceFileCreated(IFsrmFileManagementJob* This,LONG daysSinceCreation) {
    return This->lpVtbl->put_DaysSinceFileCreated(This,daysSinceCreation);
}
static inline HRESULT IFsrmFileManagementJob_get_DaysSinceFileLastAccessed(IFsrmFileManagementJob* This,LONG *daysSinceAccess) {
    return This->lpVtbl->get_DaysSinceFileLastAccessed(This,daysSinceAccess);
}
static inline HRESULT IFsrmFileManagementJob_put_DaysSinceFileLastAccessed(IFsrmFileManagementJob* This,LONG daysSinceAccess) {
    return This->lpVtbl->put_DaysSinceFileLastAccessed(This,daysSinceAccess);
}
static inline HRESULT IFsrmFileManagementJob_get_DaysSinceFileLastModified(IFsrmFileManagementJob* This,LONG *daysSinceModify) {
    return This->lpVtbl->get_DaysSinceFileLastModified(This,daysSinceModify);
}
static inline HRESULT IFsrmFileManagementJob_put_DaysSinceFileLastModified(IFsrmFileManagementJob* This,LONG daysSinceModify) {
    return This->lpVtbl->put_DaysSinceFileLastModified(This,daysSinceModify);
}
static inline HRESULT IFsrmFileManagementJob_get_PropertyConditions(IFsrmFileManagementJob* This,IFsrmCollection **propertyConditions) {
    return This->lpVtbl->get_PropertyConditions(This,propertyConditions);
}
static inline HRESULT IFsrmFileManagementJob_get_FromDate(IFsrmFileManagementJob* This,DATE *fromDate) {
    return This->lpVtbl->get_FromDate(This,fromDate);
}
static inline HRESULT IFsrmFileManagementJob_put_FromDate(IFsrmFileManagementJob* This,DATE fromDate) {
    return This->lpVtbl->put_FromDate(This,fromDate);
}
static inline HRESULT IFsrmFileManagementJob_get_Task(IFsrmFileManagementJob* This,BSTR *taskName) {
    return This->lpVtbl->get_Task(This,taskName);
}
static inline HRESULT IFsrmFileManagementJob_put_Task(IFsrmFileManagementJob* This,BSTR taskName) {
    return This->lpVtbl->put_Task(This,taskName);
}
static inline HRESULT IFsrmFileManagementJob_get_Parameters(IFsrmFileManagementJob* This,SAFEARRAY **parameters) {
    return This->lpVtbl->get_Parameters(This,parameters);
}
static inline HRESULT IFsrmFileManagementJob_put_Parameters(IFsrmFileManagementJob* This,SAFEARRAY *parameters) {
    return This->lpVtbl->put_Parameters(This,parameters);
}
static inline HRESULT IFsrmFileManagementJob_get_RunningStatus(IFsrmFileManagementJob* This,FsrmReportRunningStatus *runningStatus) {
    return This->lpVtbl->get_RunningStatus(This,runningStatus);
}
static inline HRESULT IFsrmFileManagementJob_get_LastError(IFsrmFileManagementJob* This,BSTR *lastError) {
    return This->lpVtbl->get_LastError(This,lastError);
}
static inline HRESULT IFsrmFileManagementJob_get_LastReportPathWithoutExtension(IFsrmFileManagementJob* This,BSTR *path) {
    return This->lpVtbl->get_LastReportPathWithoutExtension(This,path);
}
static inline HRESULT IFsrmFileManagementJob_get_LastRun(IFsrmFileManagementJob* This,DATE *lastRun) {
    return This->lpVtbl->get_LastRun(This,lastRun);
}
static inline HRESULT IFsrmFileManagementJob_get_FileNamePattern(IFsrmFileManagementJob* This,BSTR *fileNamePattern) {
    return This->lpVtbl->get_FileNamePattern(This,fileNamePattern);
}
static inline HRESULT IFsrmFileManagementJob_put_FileNamePattern(IFsrmFileManagementJob* This,BSTR fileNamePattern) {
    return This->lpVtbl->put_FileNamePattern(This,fileNamePattern);
}
static inline HRESULT IFsrmFileManagementJob_Run(IFsrmFileManagementJob* This,FsrmReportGenerationContext context) {
    return This->lpVtbl->Run(This,context);
}
static inline HRESULT IFsrmFileManagementJob_WaitForCompletion(IFsrmFileManagementJob* This,LONG waitSeconds,VARIANT_BOOL *completed) {
    return This->lpVtbl->WaitForCompletion(This,waitSeconds,completed);
}
static inline HRESULT IFsrmFileManagementJob_Cancel(IFsrmFileManagementJob* This) {
    return This->lpVtbl->Cancel(This);
}
static inline HRESULT IFsrmFileManagementJob_AddNotification(IFsrmFileManagementJob* This,LONG days) {
    return This->lpVtbl->AddNotification(This,days);
}
static inline HRESULT IFsrmFileManagementJob_DeleteNotification(IFsrmFileManagementJob* This,LONG days) {
    return This->lpVtbl->DeleteNotification(This,days);
}
static inline HRESULT IFsrmFileManagementJob_ModifyNotification(IFsrmFileManagementJob* This,LONG days,LONG newDays) {
    return This->lpVtbl->ModifyNotification(This,days,newDays);
}
static inline HRESULT IFsrmFileManagementJob_CreateNotificationAction(IFsrmFileManagementJob* This,LONG days,FsrmActionType actionType,IFsrmAction **action) {
    return This->lpVtbl->CreateNotificationAction(This,days,actionType,action);
}
static inline HRESULT IFsrmFileManagementJob_EnumNotificationActions(IFsrmFileManagementJob* This,LONG days,IFsrmCollection **actions) {
    return This->lpVtbl->EnumNotificationActions(This,days,actions);
}
static inline HRESULT IFsrmFileManagementJob_CreatePropertyCondition(IFsrmFileManagementJob* This,BSTR name,IFsrmPropertyCondition **propertyCondition) {
    return This->lpVtbl->CreatePropertyCondition(This,name,propertyCondition);
}
static inline HRESULT IFsrmFileManagementJob_CreateCustomAction(IFsrmFileManagementJob* This,IFsrmActionCommand **customAction) {
    return This->lpVtbl->CreateCustomAction(This,customAction);
}
#endif
#endif

#endif


#endif  /* __IFsrmFileManagementJob_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IFsrmFileCondition interface
 */
#ifndef __IFsrmFileCondition_INTERFACE_DEFINED__
#define __IFsrmFileCondition_INTERFACE_DEFINED__

DEFINE_GUID(IID_IFsrmFileCondition, 0x70684ffc, 0x691a, 0x4a1a, 0xb9,0x22, 0x97,0x75,0x2e,0x13,0x8c,0xc1);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("70684ffc-691a-4a1a-b922-97752e138cc1")
IFsrmFileCondition : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_Type(
        FsrmFileConditionType *pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE Delete(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IFsrmFileCondition, 0x70684ffc, 0x691a, 0x4a1a, 0xb9,0x22, 0x97,0x75,0x2e,0x13,0x8c,0xc1)
#endif
#else
typedef struct IFsrmFileConditionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IFsrmFileCondition *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IFsrmFileCondition *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IFsrmFileCondition *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IFsrmFileCondition *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IFsrmFileCondition *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IFsrmFileCondition *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IFsrmFileCondition *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IFsrmFileCondition methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Type)(
        IFsrmFileCondition *This,
        FsrmFileConditionType *pVal);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        IFsrmFileCondition *This);

    END_INTERFACE
} IFsrmFileConditionVtbl;

interface IFsrmFileCondition {
    CONST_VTBL IFsrmFileConditionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IFsrmFileCondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IFsrmFileCondition_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IFsrmFileCondition_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IFsrmFileCondition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IFsrmFileCondition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IFsrmFileCondition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IFsrmFileCondition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IFsrmFileCondition methods ***/
#define IFsrmFileCondition_get_Type(This,pVal) (This)->lpVtbl->get_Type(This,pVal)
#define IFsrmFileCondition_Delete(This) (This)->lpVtbl->Delete(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IFsrmFileCondition_QueryInterface(IFsrmFileCondition* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmFileCondition_AddRef(IFsrmFileCondition* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmFileCondition_Release(IFsrmFileCondition* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmFileCondition_GetTypeInfoCount(IFsrmFileCondition* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmFileCondition_GetTypeInfo(IFsrmFileCondition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline HRESULT IFsrmFileCondition_GetIDsOfNames(IFsrmFileCondition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static inline HRESULT IFsrmFileCondition_Invoke(IFsrmFileCondition* 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);
}
/*** IFsrmFileCondition methods ***/
static inline HRESULT IFsrmFileCondition_get_Type(IFsrmFileCondition* This,FsrmFileConditionType *pVal) {
    return This->lpVtbl->get_Type(This,pVal);
}
static inline HRESULT IFsrmFileCondition_Delete(IFsrmFileCondition* This) {
    return This->lpVtbl->Delete(This);
}
#endif
#endif

#endif


#endif  /* __IFsrmFileCondition_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IFsrmFileConditionProperty interface
 */
#ifndef __IFsrmFileConditionProperty_INTERFACE_DEFINED__
#define __IFsrmFileConditionProperty_INTERFACE_DEFINED__

DEFINE_GUID(IID_IFsrmFileConditionProperty, 0x81926775, 0xb981, 0x4479, 0x98,0x8f, 0xda,0x17,0x1d,0x62,0x73,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("81926775-b981-4479-988f-da171d627360")
IFsrmFileConditionProperty : public IFsrmFileCondition
{
    virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
        BSTR *pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_PropertyName(
        BSTR newVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
        FsrmFileSystemPropertyId *pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_PropertyId(
        FsrmFileSystemPropertyId newVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Operator(
        FsrmPropertyConditionType *pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Operator(
        FsrmPropertyConditionType newVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ValueType(
        FsrmPropertyValueType *pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ValueType(
        FsrmPropertyValueType newVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Value(
        VARIANT *pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Value(
        VARIANT newVal) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IFsrmFileConditionProperty, 0x81926775, 0xb981, 0x4479, 0x98,0x8f, 0xda,0x17,0x1d,0x62,0x73,0x60)
#endif
#else
typedef struct IFsrmFileConditionPropertyVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IFsrmFileConditionProperty *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IFsrmFileConditionProperty *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IFsrmFileConditionProperty *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IFsrmFileConditionProperty *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IFsrmFileConditionProperty *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IFsrmFileConditionProperty *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IFsrmFileConditionProperty *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IFsrmFileCondition methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Type)(
        IFsrmFileConditionProperty *This,
        FsrmFileConditionType *pVal);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        IFsrmFileConditionProperty *This);

    /*** IFsrmFileConditionProperty methods ***/
    HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
        IFsrmFileConditionProperty *This,
        BSTR *pVal);

    HRESULT (STDMETHODCALLTYPE *put_PropertyName)(
        IFsrmFileConditionProperty *This,
        BSTR newVal);

    HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
        IFsrmFileConditionProperty *This,
        FsrmFileSystemPropertyId *pVal);

    HRESULT (STDMETHODCALLTYPE *put_PropertyId)(
        IFsrmFileConditionProperty *This,
        FsrmFileSystemPropertyId newVal);

    HRESULT (STDMETHODCALLTYPE *get_Operator)(
        IFsrmFileConditionProperty *This,
        FsrmPropertyConditionType *pVal);

    HRESULT (STDMETHODCALLTYPE *put_Operator)(
        IFsrmFileConditionProperty *This,
        FsrmPropertyConditionType newVal);

    HRESULT (STDMETHODCALLTYPE *get_ValueType)(
        IFsrmFileConditionProperty *This,
        FsrmPropertyValueType *pVal);

    HRESULT (STDMETHODCALLTYPE *put_ValueType)(
        IFsrmFileConditionProperty *This,
        FsrmPropertyValueType newVal);

    HRESULT (STDMETHODCALLTYPE *get_Value)(
        IFsrmFileConditionProperty *This,
        VARIANT *pVal);

    HRESULT (STDMETHODCALLTYPE *put_Value)(
        IFsrmFileConditionProperty *This,
        VARIANT newVal);

    END_INTERFACE
} IFsrmFileConditionPropertyVtbl;

interface IFsrmFileConditionProperty {
    CONST_VTBL IFsrmFileConditionPropertyVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IFsrmFileConditionProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IFsrmFileConditionProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IFsrmFileConditionProperty_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IFsrmFileConditionProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IFsrmFileConditionProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IFsrmFileConditionProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IFsrmFileConditionProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IFsrmFileCondition methods ***/
#define IFsrmFileConditionProperty_get_Type(This,pVal) (This)->lpVtbl->get_Type(This,pVal)
#define IFsrmFileConditionProperty_Delete(This) (This)->lpVtbl->Delete(This)
/*** IFsrmFileConditionProperty methods ***/
#define IFsrmFileConditionProperty_get_PropertyName(This,pVal) (This)->lpVtbl->get_PropertyName(This,pVal)
#define IFsrmFileConditionProperty_put_PropertyName(This,newVal) (This)->lpVtbl->put_PropertyName(This,newVal)
#define IFsrmFileConditionProperty_get_PropertyId(This,pVal) (This)->lpVtbl->get_PropertyId(This,pVal)
#define IFsrmFileConditionProperty_put_PropertyId(This,newVal) (This)->lpVtbl->put_PropertyId(This,newVal)
#define IFsrmFileConditionProperty_get_Operator(This,pVal) (This)->lpVtbl->get_Operator(This,pVal)
#define IFsrmFileConditionProperty_put_Operator(This,newVal) (This)->lpVtbl->put_Operator(This,newVal)
#define IFsrmFileConditionProperty_get_ValueType(This,pVal) (This)->lpVtbl->get_ValueType(This,pVal)
#define IFsrmFileConditionProperty_put_ValueType(This,newVal) (This)->lpVtbl->put_ValueType(This,newVal)
#define IFsrmFileConditionProperty_get_Value(This,pVal) (This)->lpVtbl->get_Value(This,pVal)
#define IFsrmFileConditionProperty_put_Value(This,newVal) (This)->lpVtbl->put_Value(This,newVal)
#else
/*** IUnknown methods ***/
static inline HRESULT IFsrmFileConditionProperty_QueryInterface(IFsrmFileConditionProperty* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IFsrmFileConditionProperty_AddRef(IFsrmFileConditionProperty* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IFsrmFileConditionProperty_Release(IFsrmFileConditionProperty* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static inline HRESULT IFsrmFileConditionProperty_GetTypeInfoCount(IFsrmFileConditionProperty* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static inline HRESULT IFsrmFileConditionProperty_GetTypeInfo(IFsrmFileConditionProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static inline HRESULT IFsrmFileConditionProperty_GetIDsOfNames(IFsrmFileConditionProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static inline HRESULT IFsrmFileConditionProperty_Invoke(IFsrmFileConditionProperty* 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);
}
/*** IFsrmFileCondition methods ***/
static inline HRESULT IFsrmFileConditionProperty_get_Type(IFsrmFileConditionProperty* This,FsrmFileConditionType *pVal) {
    return This->lpVtbl->get_Type(This,pVal);
}
static inline HRESULT IFsrmFileConditionProperty_Delete(IFsrmFileConditionProperty* This) {
    return This->lpVtbl->Delete(This);
}
/*** IFsrmFileConditionProperty methods ***/
static inline HRESULT IFsrmFileConditionProperty_get_PropertyName(IFsrmFileConditionProperty* This,BSTR *pVal) {
    return This->lpVtbl->get_PropertyName(This,pVal);
}
static inline HRESULT IFsrmFileConditionProperty_put_PropertyName(IFsrmFileConditionProperty* This,BSTR newVal) {
    return This->lpVtbl->put_PropertyName(This,newVal);
}
static inline HRESULT IFsrmFileConditionProperty_get_PropertyId(IFsrmFileConditionProperty* This,FsrmFileSystemPropertyId *pVal) {
    return This->lpVtbl->get_PropertyId(This,pVal);
}
static inline HRESULT IFsrmFileConditionProperty_put_PropertyId(IFsrmFileConditionProperty* This,FsrmFileSystemPropertyId newVal) {
    return This->lpVtbl->put_PropertyId(This,newVal);
}
static inline HRESULT IFsrmFileConditionProperty_get_Operator(IFsrmFileConditionProperty* This,FsrmPropertyConditionType *pVal) {
    return This->lpVtbl->get_Operator(This,pVal);
}
static inline HRESULT IFsrmFileConditionProperty_put_Operator(IFsrmFileConditionProperty* This,FsrmPropertyConditionType newVal) {
    return This->lpVtbl->put_Operator(This,newVal);
}
static inline HRESULT IFsrmFileConditionProperty_get_ValueType(IFsrmFileConditionProperty* This,FsrmPropertyValueType *pVal) {
    return This->lpVtbl->get_ValueType(This,pVal);
}
static inline HRESULT IFsrmFileConditionProperty_put_ValueType(IFsrmFileConditionProperty* This,FsrmPropertyValueType newVal) {
    return This->lpVtbl->put_ValueType(This,newVal);
}
static inline HRESULT IFsrmFileConditionProperty_get_Value(IFsrmFileConditionProperty* This,VARIANT *pVal) {
    return This->lpVtbl->get_Value(This,pVal);
}
static inline HRESULT IFsrmFileConditionProperty_put_Value(IFsrmFileConditionProperty* This,VARIANT newVal) {
    return This->lpVtbl->put_Value(This,newVal);
}
#endif
#endif

#endif


#endif  /* __IFsrmFileConditionProperty_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 /* __fsrmreports_h__ */
