//+---------------------------------------------------------------------------
//    Microsoft (R) Windows Search Engine
//
//    Copyright (C) Microsoft Corporation, 2005.
//    All Rights Reserved
//
//    File:
//        gthrntfyinline.idl
//
//    Contents:
//        IDL for Pusher Interface
//
//    History:
//        10/05     mabarbis    Created
//
//----------------------------------------------------------------------------


interface ISearchNotifyInlineSite;

[
    object,
    uuid(7900F4F4-BA3F-4D53-8744-51626542351A),
    pointer_default(unique),
    helpstring("Gatherer Inline Notification Interface")
]
interface IGatherNotifyInline : IUnknown
{
    typedef struct _INLINE_NOTIFY_DATA_CHANGE_ENTRY
    {
        LONG        eChangeAdviseCode;
        LPCWSTR     pszPhysicalAddress;
        const BLOB* pUserData;
    } INLINE_NOTIFY_DATA_CHANGE_ENTRY;

    HRESULT Initialize(
        [in]    LPCWSTR                     pszApplication,
        [in]    LPCWSTR                     pszCatalog,
        [in]    ISearchNotifyInlineSite*    pClientSite,
        [out]   GUID*                       pGUIDCatalogResetSignature,
        [out]   GUID*                       pGUIDCheckPointSignature,
        [out]   DWORD*                      pdwLastCheckPointNumber );

    HRESULT OnDataChange(
        [in]                            DWORD                           dwNumberEntries,
        [in,  size_is(dwNumberEntries)] INLINE_NOTIFY_DATA_CHANGE_ENTRY rgDataChangeEntries[],
        [out, size_is(dwNumberEntries)] DWORD                           rgdwDocIDs[],
        [out, size_is(dwNumberEntries)] HRESULT                         rghrCompletionCodes[] );
};

