| 1 |
/** |
| 2 |
* This file is part of the mingw-w64 runtime package. |
| 3 |
* No warranty is given; refer to the file DISCLAIMER within this package. |
| 4 |
*/ |
| 5 |
|
| 6 |
|
| 7 |
import "oaidl.idl"; |
| 8 |
import "fsrmenums.idl"; |
| 9 |
import "fsrm.idl"; |
| 10 |
|
| 11 |
cpp_quote("#include <winapifamily.h>") |
| 12 |
cpp_quote("") |
| 13 |
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| 14 |
|
| 15 |
interface IFsrmAutoApplyQuota; |
| 16 |
interface IFsrmQuota; |
| 17 |
interface IFsrmQuotaBase; |
| 18 |
interface IFsrmQuotaObject; |
| 19 |
interface IFsrmQuotaManager; |
| 20 |
interface IFsrmQuotaTemplate; |
| 21 |
interface IFsrmQuotaTemplateImported; |
| 22 |
interface IFsrmQuotaTemplateManager; |
| 23 |
|
| 24 |
typedef long FSRM_QUOTA_THRESHOLD; |
| 25 |
|
| 26 |
const DISPID FSRM_DISPID_QUOTA_BASE = FSRM_DISPID_FEATURE_QUOTA | 0x100000; |
| 27 |
const DISPID FSRM_DISPID_QUOTA_OBJECT = FSRM_DISPID_QUOTA_BASE | 0x010000; |
| 28 |
const DISPID FSRM_DISPID_QUOTA = FSRM_DISPID_QUOTA_OBJECT | 0x001000; |
| 29 |
const DISPID FSRM_DISPID_AUTOAPPLYQUOTA = FSRM_DISPID_QUOTA_OBJECT | 0x002000; |
| 30 |
const DISPID FSRM_DISPID_QUOTA_TEMPLATE = FSRM_DISPID_QUOTA_BASE | 0x020000; |
| 31 |
const DISPID FSRM_DISPID_QUOTA_TEMPLATE_IMPORTED = FSRM_DISPID_QUOTA_TEMPLATE | 0x001000; |
| 32 |
const DISPID FSRM_DISPID_QUOTA_MANAGER = FSRM_DISPID_FEATURE_QUOTA | 0x200000; |
| 33 |
const DISPID FSRM_DISPID_QUOTA_TEMPLATE_MANAGER = FSRM_DISPID_FEATURE_QUOTA | 0x300000; |
| 34 |
const DISPID FSRM_DISPID_QUOTA_MANAGER_EX = FSRM_DISPID_FEATURE_QUOTA | 0x400000; |
| 35 |
|
| 36 |
const ULONG FsrmMaxNumberThresholds = 16; |
| 37 |
const ULONG FsrmMinThresholdValue = 1; |
| 38 |
const ULONG FsrmMaxThresholdValue = 250; |
| 39 |
const ULONG FsrmMinQuotaLimit = 1024; |
| 40 |
const ULONG FsrmMaxExcludeFolders = 32; |
| 41 |
|
| 42 |
[object, uuid (8bb68c7d-19d8-4ffb-809e-be4fc1734014), dual, pointer_default (unique)] |
| 43 |
interface IFsrmQuotaManager : IDispatch { |
| 44 |
[propget, id (FSRM_DISPID_QUOTA_MANAGER | 0x81)] HRESULT ActionVariables ([out, retval] SAFEARRAY (VARIANT) *variables); |
| 45 |
[propget, id (FSRM_DISPID_QUOTA_MANAGER | 0x82)] HRESULT ActionVariableDescriptions ([out, retval] SAFEARRAY (VARIANT) *descriptions); |
| 46 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0x1)] HRESULT CreateQuota ([in] BSTR path,[out, retval] IFsrmQuota **quota); |
| 47 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0x2)] HRESULT CreateAutoApplyQuota ([in] BSTR quotaTemplateName,[in] BSTR path,[out, retval] IFsrmAutoApplyQuota **quota); |
| 48 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0x3)] HRESULT GetQuota ([in] BSTR path,[out, retval] IFsrmQuota **quota); |
| 49 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0x4)] HRESULT GetAutoApplyQuota ([in] BSTR path,[out, retval] IFsrmAutoApplyQuota **quota); |
| 50 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0x5)] HRESULT GetRestrictiveQuota ([in] BSTR path,[out, retval] IFsrmQuota **quota); |
| 51 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0x6)] HRESULT EnumQuotas ([in, defaultvalue (L"")] BSTR path,[in, defaultvalue (FsrmEnumOptions_None)] FsrmEnumOptions options,[out, retval] IFsrmCommittableCollection **quotas); |
| 52 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0x7)] HRESULT EnumAutoApplyQuotas ([in, defaultvalue (L"")] BSTR path,[in, defaultvalue (FsrmEnumOptions_None)] FsrmEnumOptions options,[out, retval] IFsrmCommittableCollection **quotas); |
| 53 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0x8)] HRESULT EnumEffectiveQuotas ([in] BSTR path,[in, defaultvalue (FsrmEnumOptions_None)] FsrmEnumOptions options,[out, retval] IFsrmCommittableCollection **quotas); |
| 54 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0x9)] HRESULT Scan ([in] BSTR strPath); |
| 55 |
[id (FSRM_DISPID_QUOTA_MANAGER | 0xa)] HRESULT CreateQuotaCollection ([out, retval] IFsrmCommittableCollection **collection); |
| 56 |
}; |
| 57 |
|
| 58 |
[object, uuid (4173ac41-172d-4d52-963c-fdc7e415f717), dual, pointer_default (unique)] |
| 59 |
interface IFsrmQuotaTemplateManager : IDispatch { |
| 60 |
[id (FSRM_DISPID_QUOTA_TEMPLATE_MANAGER | 0x1)] HRESULT CreateTemplate ([out, retval] IFsrmQuotaTemplate **quotaTemplate); |
| 61 |
[id (FSRM_DISPID_QUOTA_TEMPLATE_MANAGER | 0x2)] HRESULT GetTemplate ([in, defaultvalue (L"")] BSTR name,[out, retval] IFsrmQuotaTemplate **quotaTemplate); |
| 62 |
[id (FSRM_DISPID_QUOTA_TEMPLATE_MANAGER | 0x3)] HRESULT EnumTemplates ([in, defaultvalue (FsrmEnumOptions_None)] FsrmEnumOptions options,[out, retval] IFsrmCommittableCollection **quotaTemplates); |
| 63 |
[id (FSRM_DISPID_QUOTA_TEMPLATE_MANAGER | 0x4)] HRESULT ExportTemplates ([in, defaultvalue (NULL)] VARIANT *quotaTemplateNamesArray,[out, retval] BSTR *serializedQuotaTemplates); |
| 64 |
[id (FSRM_DISPID_QUOTA_TEMPLATE_MANAGER | 0x5)] HRESULT ImportTemplates ([in] BSTR serializedQuotaTemplates,[in, defaultvalue (NULL)] VARIANT *quotaTemplateNamesArray,[out, retval] IFsrmCommittableCollection **quotaTemplates); |
| 65 |
}; |
| 66 |
|
| 67 |
[object, uuid (1568a795-3924-4118-b74b-68d8f0fa5daf), dual, pointer_default (unique)] |
| 68 |
interface IFsrmQuotaBase : IFsrmObject { |
| 69 |
[propget, id (FSRM_DISPID_QUOTA_BASE | 0x81)] HRESULT QuotaLimit ([out, retval] VARIANT *quotaLimit); |
| 70 |
[propput, id (FSRM_DISPID_QUOTA_BASE | 0x81)] HRESULT QuotaLimit ([in] VARIANT quotaLimit); |
| 71 |
[propget, id (FSRM_DISPID_QUOTA_BASE | 0x82)] HRESULT QuotaFlags ([out, retval] long *quotaFlags); |
| 72 |
[propput, id (FSRM_DISPID_QUOTA_BASE | 0x82)] HRESULT QuotaFlags ([in] long quotaFlags); |
| 73 |
[propget, id (FSRM_DISPID_QUOTA_BASE | 0x83)] HRESULT Thresholds ([out, retval] SAFEARRAY (VARIANT) *thresholds); |
| 74 |
[id (FSRM_DISPID_QUOTA_BASE | 0x1)] HRESULT AddThreshold ([in] FSRM_QUOTA_THRESHOLD threshold); |
| 75 |
[id (FSRM_DISPID_QUOTA_BASE | 0x2)] HRESULT DeleteThreshold ([in] FSRM_QUOTA_THRESHOLD threshold); |
| 76 |
[id (FSRM_DISPID_QUOTA_BASE | 0x3)] HRESULT ModifyThreshold ([in] FSRM_QUOTA_THRESHOLD threshold,[in] FSRM_QUOTA_THRESHOLD newThreshold); |
| 77 |
[id (FSRM_DISPID_QUOTA_BASE | 0x4)] HRESULT CreateThresholdAction ([in] FSRM_QUOTA_THRESHOLD threshold,[in] FsrmActionType actionType,[out, retval] IFsrmAction **action); |
| 78 |
[id (FSRM_DISPID_QUOTA_BASE | 0x5)] HRESULT EnumThresholdActions ([in] FSRM_QUOTA_THRESHOLD threshold,[out, retval] IFsrmCollection **actions); |
| 79 |
} |
| 80 |
|
| 81 |
[object, uuid (42dc3511-61d5-48ae-b6dc-59fc00c0a8d6), dual, pointer_default (unique)] |
| 82 |
interface IFsrmQuotaObject : IFsrmQuotaBase { |
| 83 |
[propget, id (FSRM_DISPID_QUOTA_OBJECT | 0x81)] HRESULT Path ([out, retval] BSTR *path); |
| 84 |
[propget, id (FSRM_DISPID_QUOTA_OBJECT | 0x82)] HRESULT UserSid ([out, retval] BSTR *userSid); |
| 85 |
[propget, id (FSRM_DISPID_QUOTA_OBJECT | 0x83)] HRESULT UserAccount ([out, retval] BSTR *userAccount); |
| 86 |
[propget, id (FSRM_DISPID_QUOTA_OBJECT | 0x84)] HRESULT SourceTemplateName ([out, retval] BSTR *quotaTemplateName); |
| 87 |
[propget, id (FSRM_DISPID_QUOTA_OBJECT | 0x85)] HRESULT MatchesSourceTemplate ([out, retval] VARIANT_BOOL *matches); |
| 88 |
[id (FSRM_DISPID_QUOTA_OBJECT | 0x1)] HRESULT ApplyTemplate ([in] BSTR quotaTemplateName); |
| 89 |
}; |
| 90 |
|
| 91 |
[object, uuid (a2efab31-295e-46bb-b976-e86d58b52e8b), dual, pointer_default (unique)] |
| 92 |
interface IFsrmQuotaTemplate : IFsrmQuotaBase { |
| 93 |
[propget, id (FSRM_DISPID_QUOTA_TEMPLATE | 0x81)] HRESULT Name ([out, retval] BSTR *name); |
| 94 |
[propput, id (FSRM_DISPID_QUOTA_TEMPLATE | 0x81)] HRESULT Name ([in] BSTR name); |
| 95 |
[id (FSRM_DISPID_QUOTA_TEMPLATE | 0x1)] HRESULT CopyTemplate ([in] BSTR quotaTemplateName); |
| 96 |
[id (FSRM_DISPID_QUOTA_TEMPLATE | 0x2)] HRESULT CommitAndUpdateDerived ([in] FsrmCommitOptions commitOptions,[in] FsrmTemplateApplyOptions applyOptions,[out, retval] IFsrmDerivedObjectsResult **derivedObjectsResult); |
| 97 |
}; |
| 98 |
|
| 99 |
[object, uuid (377f739d-9647-4b8e-97d2-5ffce6d759cd), dual, pointer_default (unique)] |
| 100 |
interface IFsrmQuota : IFsrmQuotaObject { |
| 101 |
[propget, id (FSRM_DISPID_QUOTA | 0x81)] HRESULT QuotaUsed ([out, retval] VARIANT *used); |
| 102 |
[propget, id (FSRM_DISPID_QUOTA | 0x82)] HRESULT QuotaPeakUsage ([out, retval] VARIANT *peakUsage); |
| 103 |
[propget, id (FSRM_DISPID_QUOTA | 0x83)] HRESULT QuotaPeakUsageTime ([out, retval] DATE *peakUsageDateTime); |
| 104 |
[id (FSRM_DISPID_QUOTA | 0x1)] HRESULT ResetPeakUsage (); |
| 105 |
[id (FSRM_DISPID_QUOTA | 0x2)] HRESULT RefreshUsageProperties (); |
| 106 |
}; |
| 107 |
|
| 108 |
[object, uuid (f82e5729-6aba-4740-bfc7-c7f58f75fb7b), dual, pointer_default (unique)] |
| 109 |
interface IFsrmAutoApplyQuota : IFsrmQuotaObject { |
| 110 |
[propget, id (FSRM_DISPID_AUTOAPPLYQUOTA | 0x81)] HRESULT ExcludeFolders ([out, retval] SAFEARRAY (VARIANT) *folders); |
| 111 |
[propput, id (FSRM_DISPID_AUTOAPPLYQUOTA | 0x81)] HRESULT ExcludeFolders ([in] SAFEARRAY (VARIANT) folders); |
| 112 |
[id (FSRM_DISPID_AUTOAPPLYQUOTA | 0x1)] HRESULT CommitAndUpdateDerived ([in] FsrmCommitOptions commitOptions,[in] FsrmTemplateApplyOptions applyOptions,[out, retval] IFsrmDerivedObjectsResult **derivedObjectsResult); |
| 113 |
}; |
| 114 |
|
| 115 |
[object, uuid (4846cb01-d430-494f-abb4-b1054999fb09), dual, pointer_default (unique)] |
| 116 |
interface IFsrmQuotaManagerEx : IFsrmQuotaManager { |
| 117 |
[id (FSRM_DISPID_QUOTA_MANAGER_EX | 0x1)] HRESULT IsAffectedByQuota ([in] BSTR path,[in, defaultvalue (FsrmEnumOptions_None)] FsrmEnumOptions options,[out, retval] VARIANT_BOOL *affected); |
| 118 |
}; |
| 119 |
|
| 120 |
[object, uuid (9a2bf113-a329-44cc-809a-5c00fce8da40), dual, pointer_default (unique)] |
| 121 |
interface IFsrmQuotaTemplateImported : IFsrmQuotaTemplate { |
| 122 |
[propget, id (FSRM_DISPID_QUOTA_TEMPLATE_IMPORTED | 0x81)] HRESULT OverwriteOnCommit ([out, retval] VARIANT_BOOL *overwrite); |
| 123 |
[propput, id (FSRM_DISPID_QUOTA_TEMPLATE_IMPORTED | 0x81)] HRESULT OverwriteOnCommit ([in] VARIANT_BOOL overwrite); |
| 124 |
}; |
| 125 |
cpp_quote("#endif") |