FSPROCESSCHANGEDIRCALLBACK
Пользовательская функция FSPROCESSCHANGEDIRCALLBACK используется
для обработки события "смена каталога" при поиске объектов по
дискам. Прототип функции следующий:
void WINAPI FSPROCESSCHANGEDIRCALLBACK(
void *UserData,
DWORD *Param,
int Reason
);
UserData
Указатель на пользовательские данные. Вы передали его в
функции
FS_Search.
Param
Указатель на переменную типа DWORD. Вы можете
использовать эту переменную для своих нужд, например, при входе в каталог
запомнить состояние некоего счетчика в этой переменной, а при выходе из
каталога восстановить предварительно сохраненное состояние счетчика.
Reason
Указывает, в какой момент вызвана эта функция:
TRUE
Функция вызвана при входе в каталог.
FALSE
Функция вызвана при выходе из каталога.
Возвращаемое значение
Нет. Но если вы запишете в
SRWORKSTATUS.ExitCode (ее адрес вы
передали в
FS_Set) код, отличный
от
SRWE_OK, то функция
FS_Search прекратит свою работу
после возврата из FSPROCESSCHANGEDIRCALLBACK.
Пример
void WINAPI ProcessChangeDirCallBack (void *UserData, DWORD *Param, int Reason)
{
if (Reason) // вошли в каталог
{
*Param = (DWORD) SRInfo.RRE_GetCounter ((CReplaceRegExp *)UserData));
SRInfo.RRE_SetCounter ((CReplaceRegExp *) UserData, 0);
}
else // выходим из каталога
{
SRInfo.RRE_SetCounter ((CReplaceRegExp *) UserData, (int) *Param);
}
}
Смотрите также: