HRESULT PrjNotifyOperationCB()

in ProjectedFSLib.Managed.API/VirtualizationInstance.cpp [1654:1690]


HRESULT PrjNotifyOperationCB(_In_ PRJ_CALLBACK_DATA* callbackData,
                             _In_ BOOLEAN isDirectory,
                             _In_ PRJ_NOTIFICATION_TYPE notificationType,
                             _In_opt_ LPCWSTR destinationFileName,
                             _Inout_ PRJ_OPERATION_PARAMETERS* operationParameters)
{
    HRESULT hr;
    PRJ_NOTIFICATION_PARAMETERS notificationParameters = {};

    // Transfer input parameters to 1803-style parameter structure.
    switch (notificationType)
    {
    case PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED:
        notificationParameters.FileDeletedOnHandleClose.IsFileModified = operationParameters->FileDeletedOnHandleClose.IsFileModified;
        break;
    }

    hr = PrjNotificationCB(callbackData, isDirectory, notificationType, destinationFileName, &notificationParameters);

    // Transfer output parameters from 1803-style parameter structure.
    switch (notificationType)
    {
    case PRJ_NOTIFICATION_FILE_OPENED:
    case PRJ_NOTIFICATION_NEW_FILE_CREATED:
    case PRJ_NOTIFICATION_FILE_OVERWRITTEN:

        operationParameters->PostCreate.NotificationMask = notificationParameters.PostCreate.NotificationMask;
        break;

    case PRJ_NOTIFICATION_FILE_RENAMED:

        operationParameters->FileRenamed.NotificationMask = notificationParameters.FileRenamed.NotificationMask;
        break;
    }

    return hr;
}