2010-05-04 2 views
2
#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; 
} 

dans le programme ci-dessus intializeforbackup échoue avec le code d'erreur E_UNEXPECTED. Le service VSS est en cours d'exécution. Dans le journal des événements, il s'affiche en tant que "Erreur du service de cliché instantané de volume: Erreur inattendue appel CoCreateInstance. Hr = 0x800401f0." .. Toutes les solutions pour le InitializeForBackup pour retourner S_OK?vss intializepour la sauvegarde échoue avec le code retour E_UNEXPECTED

Répondre

2

Vous devez initialiser la bibliothèque COM avec la fonction CoInitialize.

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

Cela vous donnera tous S_OKs

Questions connexes