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);
    }
}
Смотрите также:
Разное | FS_Search | FS_Set | SRWORKSTATUS