![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Файлы Office. [D6, D7]
frost63 © (2003-10-02 07:16:00)
Как выташить инфу о создателе, заголовке и т.д. т.е. все то что возможно.
me (2003-10-02 16:57:00) [1]
Почитать в MSDN, Summary Information Property Set
Так можно прочесть инфу об авторн документа, заданного именем FileName:
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
OleCheck(StgOpenStorage(PFileName, nil, STGM_DIRECT or STGM_READ or STGM_SHARE_EXCLUSIVE, nil, 0, Storage));
finally
SysFreeString(PFileName);
end;
PropSetStg := Storage as IPropertySetStorage;
OleCheck(PropSetStg.Open(FMTID_SummaryInformation, STGM_DIRECT or STGM_READ or STGM_SHARE_EXCLUSIVE, PropStg));
ps.ulKind := PRSPEC_PROPID;
ps.propid := PIDSI_AUTHOR;
PropStg.ReadMultiple(1, @ps, @pv);
Result := pv.pszVal;
end;