Некоторое время тому назад вы задавали вопрос по поводу динамического OLE без создания диалогового окна для просмотра файла. Я таки добился этого и вот код...
Uses ..., BOleDefs, ... procedure TPreview.previewOLEFile(fileName: string); var Info: ^BOleInitInfo; cString: array[0..80] of char; begin Screen.Cursor := crHourGlass; try GetMem(Info,sizeof(BoleInitInfo)); Info^.How := BOLE_EMBED; Info^.Where := BOLE_FILE; Info^.pContainer := nil; Info^.hIcon := 0; Info^.Storage := nil; StrPCopy(cString,fileName); Info^.Path := cString; oleDocument.PInitInfo := Info; ReleaseOLEInitInfo(Info); { данная функция освобождает (getmem) память ! } oleDocument.Visible := True; finally Screen.Cursor := crDefault; end; end; |
[000510]