Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 427

•  TDictionary Custom Sort  6 457

•  Fast Watermark Sources  6 241

•  3D Designer  9 202

•  Sik Screen Capture  6 588

•  Patch Maker  6 980

•  Айболит (remote control)  6 975

•  ListBox Drag & Drop  5 844

•  Доска для игры Реверси  96 955

•  Графические эффекты  7 179

•  Рисование по маске  6 478

•  Перетаскивание изображений  5 344

•  Canvas Drawing  5 713

•  Рисование Луны  5 424

•  Поворот изображения  4 960

•  Рисование стержней  3 523

•  Paint on Shape  2 793

•  Генератор кроссвордов  3 661

•  Головоломка Paletto  2 952

•  Теорема Монжа об окружностях  3 760

•  Пазл Numbrix  2 478

•  Заборы и коммивояжеры  3 163

•  Игра HIP  2 127

•  Игра Go (Го)  2 060

•  Симулятор лифта  2 421

•  Программа укладки плитки  2 108

•  Генератор лабиринта  2 567

•  Проверка числового ввода  2 258

•  HEX View  2 584

•  Физический маятник  2 200

 
скрыть

Delphi Sources

Как узнать автора файла документа



Автор: Asmith

Вот простой пример, подробности в MSDN:


uses ActiveX, ComObj, SysUtils;

function GetSummaryInfAuthor(FileName: TFileName): string;
var
 PFileName: PWideChar;
 Storage: IStorage;
 PropSetStg: IPropertySetStorage;
 PropStg: IPropertyStorage;
 ps: PROPSPEC;
 pv: PROPVARIANT;
const
 FMTID_SummaryInformation: TGUID = '{F29F85E0-4FF9-1068-AB91-08002B27B3D9}';
begin
 PFileName := StringToOleStr(FileName);
 try
   // Open compound storage
   OleCheck(StgOpenStorage(PFileName, nil,
   STGM_DIRECT or STGM_READ or STGM_SHARE_EXCLUSIVE, nil, 0, Storage));
 finally
   SysFreeString(PFileName);
 end;

 // Summary information is in a stream under the root storage
 PropSetStg := Storage as IPropertySetStorage;
 // Get the IPropertyStorage
 OleCheck(PropSetStg.Open(FMTID_SummaryInformation,
 STGM_DIRECT or STGM_READ or STGM_SHARE_EXCLUSIVE, PropStg));

 // We want the author property value
 ps.ulKind := PRSPEC_PROPID;
 ps.propid := PIDSI_AUTHOR;

 // Read this property
 PropStg.ReadMultiple(1, @ps, @pv);

 Result := pv.pszVal;
end;