Валентин Скирдин
vskirdin@mail.ru
Замечание
В FIDO этот вопрос задавали, здесь повторяют...
Решил я поэкспериментировать с этим вопросом, и вот что у меня получилось. Очень кратко, самую суть...
После получения информации о
редактируемом файле в EditorInfo->Filename
находится имя редактируемого файла. Если имя
файла без пути, то файл явно в текущем каталоге.
Воспользуемся экспортируемой функцией ProcessEditorEvent
(событие EE_READ) и тем фактом, что в полный
путь входит имя диска.
char Buffer[250]={0};
char *FilePart;
int WINAPI _export ProcessEditorEvent( int Event, void *Param)
{
if(Event == EE_READ)
{
struct EditorInfo ei;
Info.EditorControl(ECTL_GETINFO,&ei);
if(!strrchr(ei.FileName,':'))
{
DWORD retlen;
retlen= GetFullPathName (ei.FileName,240,Buffer,&FilePart);
}
else
lstrcpy(Buffer,ei.FileName);
}
return 0;
}
Событие EE_READ происходит один раз, после того, как редактор загрузил файл на редактирование. На этом и построен весь механизм определения полного пути к файлу. После отработки этого фрагмента у Вас всегда в переменной Buffer будет имя редактируемого файла с полным путем.
19.08.1999