| 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") |