我正在编写一个C ++应用程序,其数据库和配置文件位于programData处。我安装了该应用程序,创建了一个还原点,然后卸载了该应用程序并尝试还原到该应用程序可以工作的位置。我无法在programData中获取文件。为了解决这个问题,我写了一个作家,但是尽管它没有失败并且没有错误注册,但是我仍然错过了那些文件。
到目前为止,我已经尝试使用Windows经典示例代码(https://github.com/microsoft/Windows-classic-samples/tree/master/Samples/VolumeShadowCopyServiceWriter/cpp)使用vssWriter和vssExpressWriter编写编写器。 我试图设置不同的路径和不同的检索方法。不幸的是,使用当前文档,我无法理解我做错了什么。
任何想法都会受到欢迎!
这是我的vssExpressWriter的代码的简化版本:
int main()
{
::CoInitialize(NULL);
createAndRegister();
}
int createAndRegister()
{
CComPtr<IVssExpressWriter> spExpressWriter;
CComPtr<IVssCreateExpressWriterMetadata> spMetadata;
CreateVssExpressWriter(&spExpressWriter);
spExpressWriter->CreateMetadata(EXPRESS_WRITER_SAMPLE_GUID, L"Sample Express Writer", VSS_UT_USERDATA, 1, 0, 0, &spMetadata);
PCWSTR wszComponent = L"myExpressWriter";
spMetadata->SetRestoreMethod(
VSS_RME_RESTORE_AT_REBOOT, ////I've also tried it with different option of this enum
NULL,
NULL,
VSS_WRE_NEVER,
false),
L"SetRestoreMethod failed");
spMetadata->AddComponent(
VSS_CT_FILEGROUP,
NULL,
wszComponent,
wszComponent,
NULL,
0,
false,
false,
false);
spMetadata->AddFilesToFileGroup(
NULL,
wszComponent,
L"c:\\ProgramData\\myFolder",
L"*.*",
true,
NULL,
NULL);
spExpressWriter->Register();
}