Récupérer le lien d'un raccourci

Résolu
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 16 janv. 2007 à 13:58
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 16 janv. 2007 à 14:51
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 janv. 2007 à 14:03
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++
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
16 janv. 2007 à 14:51
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 !"
0
Rejoignez-nous