Prorpiété URL d'une icône raccourci internet ?

Résolu
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 - 7 déc. 2009 à 15:58
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 - 8 déc. 2009 à 14:03
Bonjour

Voilà! j'essaye d'extraire les propriétés d'un raccourci internet
mais je n'arrive pas à récupérer l'URL associée.
La fonction ne me renvoie pas d'erreur mais une chaine vide

Voici le code:
"
#include <shellapi.h>

//(...)
bool GetShortCutUrl(LPCSTR ShortcutFile, char* buf,
int nSize)
{

HRESULT result;
wchar_t wsz[MAX_PATH];
LPWSTR lpTemp = NULL;
IPersistFile* ppf;

IUniformResourceLocatorW* urlLink = NULL; //nsnull;

result = CoCreateInstance(CLSID_InternetShortcut, NULL, CLSCTX_INPROC_SERVER,
IID_IUniformResourceLocatorW, (void**)&urlLink);

if (SUCCEEDED(result) && urlLink)
{
ppf = NULL; //nsnull;

result = urlLink->QueryInterface(IID_IPersistFile, (void**)&ppf);
if (SUCCEEDED(result)) // && urlFile)
{
MultiByteToWideChar(CP_ACP, 0,
ShortcutFile, -1, wsz, MAX_PATH);
result = ppf->Load(wsz, STGM_READ);
if (SUCCEEDED(result) )
{
LPWSTR lpTemp ;
result = urlLink->GetURL(&lpTemp );
sprintf(buf, "%*s", nSize, lpTemp);
}
ppf->Release();
}
urlLink->Release();
}

}
"

Merci de votre aide

Cordialement

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
7 déc. 2009 à 21:40
Tu as essayé de le lire comme un simple fichier INI ???

ciao...
BruNews, MVP VC++
3
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 1
8 déc. 2009 à 14:03
Salut BruNews

Comme on se retrouve

Je n'ai pas réussi à faire fonctionner ma méthode avec GetURL
mais j'ai eu l'idée hier soir (la nuit dernière devrais-je dire)
d'ouvrir ces fichiers comme de simples flux de texte (impossible avec un éditeur de texte, windows lance les raccourcis, même avec notepad)

et ça marche!

Il suffit de rechercher la ligne commençant par "URL=",
le raccourci est derrière, effectivement comme dans
une rubrique de fichier INI...

En espérant que la solution soit portable d'un windows à l'autre (essayé sur Vista)

Merci. A+
0
Rejoignez-nous