Я создаю службу на основе ac # для расширения истории файлов Windows.
Просмотр API Я не вижу способа добавления папки или библиотеки «include».Кажется, есть только способ добавления папки «исключить» (FYI, включает и исключает, указывает, была ли создана резервная копия конкретной папки или библиотеки или нет).
Я проверил заголовок fhchg.hфайл в SDK и не видите никакого метода для добавления папок или библиотек, определенных там, либо:
EXTERN_C const IID IID_IFhConfigMgr;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6A5FEA5B-BF8F-4EE5-B8C3-44D8A0D7331C")
IFhConfigMgr : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE LoadConfiguration( void) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateDefaultConfiguration(
/* [in] */ BOOL OverwriteIfExists) = 0;
virtual HRESULT STDMETHODCALLTYPE SaveConfiguration( void) = 0;
virtual HRESULT STDMETHODCALLTYPE AddRemoveExcludeRule(
/* [in] */ BOOL Add,
/* [in] */ FH_PROTECTED_ITEM_CATEGORY Category,
/* [in] */ __RPC__in BSTR Item) = 0;
virtual HRESULT STDMETHODCALLTYPE GetIncludeExcludeRules(
/* [in] */ BOOL Include,
/* [in] */ FH_PROTECTED_ITEM_CATEGORY Category,
/* [out] */ __RPC__deref_out_opt IFhScopeIterator **Iterator) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLocalPolicy(
/* [in] */ FH_LOCAL_POLICY_TYPE LocalPolicyType,
/* [out] */ __RPC__out ULONGLONG *PolicyValue) = 0;
virtual HRESULT STDMETHODCALLTYPE SetLocalPolicy(
/* [in] */ FH_LOCAL_POLICY_TYPE LocalPolicyType,
/* [in] */ ULONGLONG PolicyValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetBackupStatus(
/* [out] */ __RPC__out FH_BACKUP_STATUS *BackupStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE SetBackupStatus(
/* [in] */ FH_BACKUP_STATUS BackupStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDefaultTarget(
/* [out] */ __RPC__deref_out_opt IFhTarget **DefaultTarget) = 0;
virtual HRESULT STDMETHODCALLTYPE ValidateTarget(
/* [in] */ __RPC__in BSTR TargetUrl,
/* [out] */ __RPC__out PFH_DEVICE_VALIDATION_RESULT ValidationResult) = 0;
virtual HRESULT STDMETHODCALLTYPE ProvisionAndSetNewTarget(
/* [in] */ __RPC__in BSTR TargetUrl,
/* [in] */ __RPC__in BSTR TargetName) = 0;
virtual HRESULT STDMETHODCALLTYPE ChangeDefaultTargetRecommendation(
/* [in] */ BOOL Recommend) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryProtectionStatus(
/* [out] */ __RPC__out DWORD *ProtectionState,
/* [out] */ __RPC__deref_out_opt BSTR *ProtectedUntilTime) = 0;
};
#else /* C style interface */
typedef struct IFhConfigMgrVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IFhConfigMgr * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IFhConfigMgr * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IFhConfigMgr * This);
HRESULT ( STDMETHODCALLTYPE *LoadConfiguration )(
__RPC__in IFhConfigMgr * This);
HRESULT ( STDMETHODCALLTYPE *CreateDefaultConfiguration )(
__RPC__in IFhConfigMgr * This,
/* [in] */ BOOL OverwriteIfExists);
HRESULT ( STDMETHODCALLTYPE *SaveConfiguration )(
__RPC__in IFhConfigMgr * This);
HRESULT ( STDMETHODCALLTYPE *AddRemoveExcludeRule )(
__RPC__in IFhConfigMgr * This,
/* [in] */ BOOL Add,
/* [in] */ FH_PROTECTED_ITEM_CATEGORY Category,
/* [in] */ __RPC__in BSTR Item);
HRESULT ( STDMETHODCALLTYPE *GetIncludeExcludeRules )(
__RPC__in IFhConfigMgr * This,
/* [in] */ BOOL Include,
/* [in] */ FH_PROTECTED_ITEM_CATEGORY Category,
/* [out] */ __RPC__deref_out_opt IFhScopeIterator **Iterator);
HRESULT ( STDMETHODCALLTYPE *GetLocalPolicy )(
__RPC__in IFhConfigMgr * This,
/* [in] */ FH_LOCAL_POLICY_TYPE LocalPolicyType,
/* [out] */ __RPC__out ULONGLONG *PolicyValue);
HRESULT ( STDMETHODCALLTYPE *SetLocalPolicy )(
__RPC__in IFhConfigMgr * This,
/* [in] */ FH_LOCAL_POLICY_TYPE LocalPolicyType,
/* [in] */ ULONGLONG PolicyValue);
HRESULT ( STDMETHODCALLTYPE *GetBackupStatus )(
__RPC__in IFhConfigMgr * This,
/* [out] */ __RPC__out FH_BACKUP_STATUS *BackupStatus);
HRESULT ( STDMETHODCALLTYPE *SetBackupStatus )(
__RPC__in IFhConfigMgr * This,
/* [in] */ FH_BACKUP_STATUS BackupStatus);
HRESULT ( STDMETHODCALLTYPE *GetDefaultTarget )(
__RPC__in IFhConfigMgr * This,
/* [out] */ __RPC__deref_out_opt IFhTarget **DefaultTarget);
HRESULT ( STDMETHODCALLTYPE *ValidateTarget )(
__RPC__in IFhConfigMgr * This,
/* [in] */ __RPC__in BSTR TargetUrl,
/* [out] */ __RPC__out PFH_DEVICE_VALIDATION_RESULT ValidationResult);
HRESULT ( STDMETHODCALLTYPE *ProvisionAndSetNewTarget )(
__RPC__in IFhConfigMgr * This,
/* [in] */ __RPC__in BSTR TargetUrl,
/* [in] */ __RPC__in BSTR TargetName);
HRESULT ( STDMETHODCALLTYPE *ChangeDefaultTargetRecommendation )(
__RPC__in IFhConfigMgr * This,
/* [in] */ BOOL Recommend);
HRESULT ( STDMETHODCALLTYPE *QueryProtectionStatus )(
__RPC__in IFhConfigMgr * This,
/* [out] */ __RPC__out DWORD *ProtectionState,
/* [out] */ __RPC__deref_out_opt BSTR *ProtectedUntilTime);
END_INTERFACE
} IFhConfigMgrVtbl;
interface IFhConfigMgr
{
CONST_VTBL struct IFhConfigMgrVtbl *lpVtbl;
};
Тем не менее, папки / библиотеки могут быть включены через интерфейс настроек рабочего стола в историю файлов.Так что я явно что-то упускаю.