Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нуль-терминал в OLE-строку. [D7, Win95/98, WinXP]


tytus ©   (2004-01-11 00:00:00) 

Доброе время суток. для SHellFolder.SetNameOf нужно преобразовать PAnsiChar в PWideChar. И хотелось бы узнать, как установить размер PWideChar, как это делается для PAnsiChar:
Size:=MAX_PATH+1;
Path:=StrAlloc(Size);, где Path:PAnsiChar.


VMcL   (2004-01-11 03:17:00) [1]

>> tytus ©  (11.01.04 00:00)

Если нужно передать PWideChar в функцию, котрая не изменяет переданную строку, то можно так:
SomeFunc(PWideChar(WideString(SomeAnsiString)));
или
SomeFunc(PWideChar(WideString(SomePAnsiChar)));

Если же изменяет (то есть это выходной параметр), то как-то так:
var
 ResStr: WideString;
// ...
SetLength(ResStr, MaxLenOfStr);
SomeFunc(PWideChar(ResStr));


tytus   (2004-01-11 01:01:00) [2]

Ок, а как мне указать размер Size в StringToWideChar? Наверное из-за этого у меня AccessViolation в:
Res:=ShellFolder.SetNameOf(Application.Handle,IDList,PPath,96,ID);
, где Res:HRESULT(что вообщето не мешает),
IDList,ID:PItemIDList;


Игорь Шевченко   (2004-01-11 00:44:00) [3]

StringToWideChar


Наверх

Титульная страница Поиск, карта сайта Написать письмо