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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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