Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > IStorage.CreateStream


Автор: Rennigth 11.3.2005, 17:18
создаю Storage и в нем мне нужно создавать елементы с GUIDым названием, и возникла проблема в том что есть ограничение на длинну имени елементов в 31 символ. (GUID даже если убрать скобки и тире 32 знака).

Код

var
  lGUID: string;
  lstr: array [0..63] of WideChar;
  lStream:  IStream;
begin
//...  
  lGUID := '{24991513-DC46-4FCC-8CE2-46D9C963A2B6}';
  StringToWideChar(lGUID, @lstr, 64);
  //lstr если 31 символ то все ок если больше то :( 
  Storage.CreateStream(@lstr, STGM_CREATE + STGM_DIRECT + STGM_READWRITE + STGM_SHARE_EXCLUSIVE, 0,  0, lStream);

//lStream = nil; <- :(
//...
end;


может есть какой способ увеличить макс длинну, 31 на самом деле же мало.


Автор: Fantasist 12.3.2005, 01:53
Подожди, где это ты ограничение такое нашел?

Автор: Rennigth 15.3.2005, 14:50
Цитата

  Подожди, где это ты ограничение такое нашел?


из MSDN
Цитата

pwcsName
[in] A pointer to a wide character null-terminated Unicode string that contains the name of the stream to open. The 000 through 01f characters, serving as the first character of the stream/storage name, are reserved for use by OLE. This is a compound file restriction, not a structured storage restriction.


вот на длинну имени и стоит ограничение в 01f символов. а жаль пришлось извращаться с индексацией гуидов.
smile smile smile

Автор: p0s0l 15.3.2005, 16:15
Цитата
The 000 through 01f characters, serving as the first character of the stream/storage name, are reserved for use by OLE.
Тут имеется в виду, что если первый символ имеет код от 0 до 31, то такое имя зарезервировано для использования OLE... Тут нигде не говорится про ограничение на длину...

Автор: Rennigth 15.3.2005, 16:45
мдя, внимательно не читал...
но попробуйте сами задать имя ОЛЕСтриму длиннее 31 символа...
тогда это все еще страннее...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)