Voila un exemple:
int __stdcall CreateShortcut(char* szflSrc, char* szLink, char *szTooltip) { IShellLink* psl; HANDLE hheap; WORD* pwsz; IPersistFile* ppf; int bOK; if(CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*) &psl)) return 0; hheap = GetProcessHeap(); bOK = 0; if((pwsz = (WORD*) HeapAlloc(hheap, 0, MAX_PATH*2)) == 0) goto outPsl; if(psl->QueryInterface(IID_IPersistFile, (LPVOID *) &ppf)) goto outHeap; psl->SetPath(szflSrc); psl->SetDescription(szTooltip); if(MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szLink, -1, pwsz, MAX_PATH)) bOK = (ppf->Save(pwsz, TRUE) == 0); ppf->Release(); outHeap: HeapFree(hheap, 0, pwsz); outPsl: psl->Release(); return bOK; }
BruNews, ciao...
------------------------------- Réponse au message : -------------------------------
> Bonjour > > Je cherche à transformer une chaine de caractères (char*) en une chaine UNICODE donc wchar_t* ou WCHAR*. > > J'utilise (surement mal) la fonction: > MultiByteToWideChar > > Pb: J'ai dans ma variable finale une chaine nulle! > > Je voudrais savoir comment l'utiliser correctement ou s'il en existe une autre. > > Merci d'avance > > Chouchou182
|