Поделиться через


Уведомления (API установки)

Уведомления — это значения, которые функция установки отправляет в подпрограмму обратного вызова для указания состояния или события. Два параметра, Param1 и Param2, отправляются с уведомлением и содержат дополнительные сведения, относящиеся к уведомлению.

Подпрограмма обратного вызова обрабатывает уведомление и возвращает целое число без знака в функцию установки. В зависимости от функции установки можно использовать это значение, чтобы указать операцию или выбор пользователя, или игнорировать ее.

Функции установки отправляют уведомления в подпрограммы обратного вызова с помощью следующего синтаксиса.

MsgHandler(          //the specified callback routine
    Context,         //context used by the callback routine
    Notification,    //notification code
    Param1,          //additional notification information
    Param2           //additional notification information
);

Параметр контекста — это указатель на переменную контекста или структуру, которую подпрограмма обратного вызова может использовать для хранения информации, которая должна сохраняться между последующими вызовами подпрограммы обратного вызова.

Так как подпрограмма обратного вызова указывает реализацию контекста, и она никогда не ссылается или не изменяется функциями установки, контекст не документируется в справочном материале для следующих сообщений уведомлений.

Параметр уведомления указывает значение целого числа без знака для события или состояния, которое приводит к вызову подпрограммы обратного вызова функции установки.

Param1 и Param2 являются необязательными параметрами, которые могут содержать дополнительные сведения, относящиеся к уведомлению. Эти параметры являются целыми числами без знака. Если Param1 или Param2 возвращать сведения, которые не являются целым числом без знака, то он добавляется к незначимому целому порядку и должен быть переадресован в исходный тип данных, прежде чем его можно будет использовать подпрограммой обратного вызова.

Заметка

Следующие уведомления представляют каждое уведомление, используемое функциями установки. Отдельные функции используют подмножество этих уведомлений. Другими словами, не каждое уведомление используется каждой функцией.

 

Следующие уведомления используются функциями установки.

Уведомление Описание
SPFILENOTIFY_COPYERROR Произошла ошибка во время операции копирования файлов.
SPFILENOTIFY_DELETEERROR Произошла ошибка во время операции удаления файла.
SPFILENOTIFY_ENDCOPY Операция копирования файлов закончилась.
SPFILENOTIFY_ENDDELETE Операция удаления файлов закончилась.
SPFILENOTIFY_ENDQUEUE Очередь завершила фиксацию.
SPFILENOTIFY_ENDREGISTRATION Регистрация или отмена регистрации файла завершена.
SPFILENOTIFY_ENDRENAME Операция переименования файла закончилась.
SPFILENOTIFY_ENDSUBQUEUE Подзапуск (копирование, переименование или удаление) завершился.
SPFILENOTIFY_FILEEXTRACTED Файл извлечен из шкафа.
SPFILENOTIFY_FILEINCABINET Файл встречается в кабинете.
SPFILENOTIFY_FILEOPDELAYED Файл использовался, и текущая операция была отложена до перезагрузки системы.
SPFILENOTIFY_LANGMISMATCH Язык текущей операции не соответствует системным языку.
SPFILENOTIFY_NEEDMEDIA Требуется новый исходный носитель.
SPFILENOTIFY_NEEDNEWCABINET Текущий файл продолжается в следующем кабинете.
SPFILENOTIFY_QUEUESCAN Узел в очереди файлов был сканирован.
SPFILENOTIFY_QUEUESCAN_EX Узел в очереди файлов был сканирован.
SPFILENOTIFY_QUEUESCAN_SIGNERINFO Узел в очереди файлов был сканирован.
SPFILENOTIFY_RENAMEERROR Произошла ошибка во время операции переименования файла.
SPFILENOTIFY_STARTCOPY Запущена операция копирования файлов.
SPFILENOTIFY_STARTDELETE Запущена операция удаления файла.
SPFILENOTIFY_STARTQUEUE Очередь начала фиксации.
SPFILENOTIFY_STARTREGISTRATION Началась регистрация или отмена регистрации файла.
SPFILENOTIFY_STARTRENAME Запущена операция переименования файла.
SPFILENOTIFY_STARTSUBQUEUE Запущен вложенный запрос (копирование, переименование или удаление).
SPFILENOTIFY_TARGETEXISTS Копия указанного файла уже существует в целевом объекте.
SPFILENOTIFY_TARGETNEWER Более новая версия указанного файла существует в целевом объекте.