qwerty1 Гость
|
Добавлено: Пн Май 24 2004 16:12 Заголовок сообщения: WideChar |
|
|
Проблема такого рода - есть программа для считывания информации из ярлыков.
Проблема в том, что в Desc информация попадает в Юникоде (т.к. WinNT), и в эдитах пустая строка (естессно) как ее потом в нормальный вид привести Ansi?
procedure TForm1.ShowLinkInfo;
Var
Desc : Array[0..MAX_PATH] of Char;
SL : IShellLink;
PF : IPersistFile;
HRES : HRESULT;
FD : TWin32FindData;
begin
CoInitialize(Nil);
HRes := COCreateInstance(CLSID_ShellLink, Nil, CLSCTX_INPROC_SERVER,
IID_IShellLinkW, SL);
If Succeeded(HRes) Then
Begin
HRes := SL.QueryInterface(IID_IPersistFile, PF);
If Succeeded(HRes) Then
Begin
Edit0.Text := 'D:\LINKDEMO.LNK';
PF.Load('D:\LINKDEMO.LNK', STGM_READ);
SL.Resolve(Handle, SLR_ANY_MATCH);
SL.GetPath(Desc, MAX_PATH, FD, SLGP_UNCPRIORITY);
Edit1.Text := StrPas(Desc);
SL.GetDescription(Desc, MAX_PATH);
Edit2.Text := StrPas(Desc);
SL.GetWorkingDirectory(Desc, MAX_PATH);
Edit3.Text := StrPas(Desc);
SL.GetArguments(Desc, MAX_PATH);
Edit4.Text := StrPas(Desc);
PF.Release;
SL.Release;
End;
End;
end;
end. |
|