VSS IntializeFor Backup не удается с возвратом кода e_unexpected

StackOverflow https://stackoverflow.com/questions/2769320

Вопрос

#include "vss.h"
#include "vswriter.h"
#include <VsBackup.h>
#include <stdio.h>

#define CHECK_PRINT(result) printf("%s\n",result==S_OK?"S_OK":"error")
int main(int argc, char* argv[])
{
 BSTR xml;
 LPTSTR errorText;
 IVssBackupComponents *VssHandle;


 HRESULT  result = CreateVssBackupComponents(&VssHandle);
 CHECK_PRINT(result);
 result = VssHandle->InitializeForBackup();
 printf("unexpected%x\n",result);

 system("pause");
 return 0;
}

В вышеуказанной программе IntializeForbackup не удается с кодом ошибки e_unexpected. Служба VSS работает. В журнале событий он показывает как «Ошибка службы Copy Copy Thume Copy: неожиданная ошибка, вызывающая рутинное CoCreateinstance. HR = 0x800401F0» .. Любые решения для INatealizyForbackup для возврата S_OK?

Это было полезно?

Решение

Вам необходимо инициализировать библиотеку COM с помощью функции coinitialize.

HRESULT  result = CoInitialize(NULL);
CHECK_PRINT(result);
result = CreateVssBackupComponents(&VssHandle);
CHECK_PRINT(result);
result = VssHandle->InitializeForBackup();
CHECK_PRINT(result);

Это даст вам все S_OKS

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top