创建自定义队列回调例程
除了使用默认队列回调之外,还可以编写自定义回调例程。 此函数必须具有与 FileCallback 相同的格式。 如果需要回调例程以默认队列回调例程提供的方式处理通知,这非常有用。
如果只需要更改默认队列回调例程的一小部分行为,则可以创建自定义回调例程来筛选通知,仅处理需要特殊行为的通知,并为其他人调用 SetupDefaultQueueCallback 。
例如,如果要自定义处理文件删除错误,则可以创建自定义回调函数 MyCallback。 此函数将截获和处理 SPFILENOTIFY_DELETEERROR 通知,并为所有其他通知调用默认队列回调函数。 MyCallback 返回删除错误通知的值。 对于所有其他通知, MyCallback 会将默认队列回调例程返回的任何值传递给队列。
下图演示了此控制流。
重要
如果自定义回调函数调用默认队列回调例程,则必须将 SetupInitDefaultQueueCallback 或 SetupInitDefaultQueueCallbackEx 返回的 void 指针传递给默认回调例程。