Interface IVssBackupComponents dans une DLL
Bonjour à tous,
J'essaie d'écrire ma première dll, et je me heurte à deux problèmes:
Premier problème, j'initialise ma variable pBackupComponent avec cette première fonction, et je voudrais la récupérer. Le return (pBackupComponent) ne focntionne pas, avec une erreur de conversion de type :-/
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
int InitSnapShot(void)
{
HRESULT hr;
CComBSTR pbstrBackupXML = L"";
CComPtr<IVssBackupComponents> pBackupComponent;
CHECK_SUCCESS(CreateVssBackupComponents(&pBackupComponent));
CHECK_SUCCESS(pBackupComponent->InitializeForBackup(pbstrBackupXML));
CHECK_SUCCESS(pBackupComponent->SetBackupState(TRUE, TRUE, VSS_BT_FULL, FALSE));
CComPtr<IVssAsync> pIVssAsync1;
CHECK_SUCCESS(pBackupComponent->GatherWriterMetadata(&pIVssAsync1));
CHECK_SUCCESS(pIVssAsync1->Wait());
return (pBackupComponent);
} |
Ensuite, dans une fonction suivante de ma DLL, je voudrais prendre en argument cette fameuse variable pBackupComponent, alors j'ai essayer ça:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
int VerifSnapShotSupported(VSS_PWSZ Volume, IVSSBackupComponents pBackupComponent)
{
HRESULT hr;
BOOL IsVolumeSupported = TRUE;
CHECK_SUCCESS(pBackupComponent->IsVolumeSupported(GUID_NULL, Volume, &IsVolumeSupported));
if (IsVolumeSupported == TRUE)
{
printf("\n***Le volume supporte les SnapShots, on continue...***\n\n");
}
else
{
printf("***Le volume ne supporte pas les SnapShot, on arrête...dommage***\n\n");
exit(1);
}
} |
Et j'ai les erreur suivantes:
Code:
1 2 3
|
1>.\SyDoGWinDLL.cpp(72) : error C2061: erreur de syntaxe*: identificateur 'IVSSBackupComponents'
1>.\SyDoGWinDLL.cpp(76) : error C2065: 'pBackupComponent'*: identificateur non déclaré |
Quelqu'un saurait-il comment je peux résoudre le problème?
D'avance merci beaucoup