Récupérer le lien d'un raccourci [Résolu]

Signaler
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Bonjour à tous et à toutes,

je souhaiterais savoir comment fait-on pour récupérer le lien du fichier qu'un raccourci pointe ?
Je n'ai pas trouvé grand chose (IShellLink et la méthode GetPath) et je n'arrive pas à m'en servir correctement.
Merci d'avance pour votre aide.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Exemple avec compil en mode C et NON unicode:

int __stdcall bnResolveShortcut(TCHAR *pszlnk, TCHAR *pszdst)
{
  IShellLink *psl;
  IPersistFile* ppf;
  WORD wsz[MAX_PATH];
  int r = 1; // PRESUME ERREUR
  if(CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
                              &IID_IShellLink, (LPVOID*) &psl)) goto resEXIT;
  if(psl->lpVtbl->QueryInterface(psl, &IID_IPersistFile, &ppf)) goto relPSL;
  MultiByteToWideChar(CP_ACP, 0, pszlnk, -1, wsz, MAX_PATH);
  if(ppf->lpVtbl->Load(ppf, wsz, 0)) goto relPSTFL;
  if(psl->lpVtbl->Resolve(psl, 0, SLR_NO_UI | SLR_ANY_MATCH)) goto relPSTFL;
  r = psl->lpVtbl->GetPath(psl, pszdst, MAX_PATH, 0, 0);
relPSTFL: ppf->lpVtbl->Release(ppf);
relPSL: psl->lpVtbl->Release(psl);
resEXIT: return r;
}

ciao...
BruNews, MVP VC++
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Merci BruNews !
Après quelques petites modifications ça fonctionne au poil ! (de chat )

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"