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

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

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


blackman ©   (2003-01-19 11:46:00) 

Имя, дата, размер - без проблем.
А автор?
И то-же для DOC файлов. Где и как выдернуть ?


blackman   (2003-01-19 17:58:00) [1]

Извините сам понял, что не прав. Если нужна такая программка, напишите выложу исходник


asmith   (2003-01-19 17:37:00) [2]

Это для любых structured storage file, офисные документы как раз таковыми и являются.


blackman   (2003-01-19 17:35:00) [3]

А для Word"овских ?
Из них я выдергиваю статистику, а вот автора и ключевые слова как ?


asmith   (2003-01-19 16:55:00) [4]

Вот простой пример, подробности в 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;


AlexKniga   (2003-01-19 15:13:00) [5]

Это реализовывает интерфейс {83799FE0-1F5A-11d1-95C7-00609797EA4F}
Если возникнут общие вопросы, то см. COM, ShellEx


Наверх

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