//+---------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (C) Microsoft Corporation, 1992-1999.
//
//  File:       fuspriv.idl
//
//  Contents:   Private fusion interfaces
//
//  Classes:
//
//  Functions:
//
//
//----------------------------------------------------------------------------
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// fuspriv.h")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// (C) Copyright 1995-1998 Microsoft Corporation.  All Rights Reserved.")
cpp_quote("//")
cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
cpp_quote("// PARTICULAR PURPOSE.")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("")
cpp_quote("#pragma comment(lib,\"uuid.lib\")")
cpp_quote("")
cpp_quote("//---------------------------------------------------------------------------=")
cpp_quote("// Name Object Interfaces.")
cpp_quote("")

import "objidl.idl";
import "oleidl.idl";

[
        local,
        object,
        uuid(D8FB9BD6-3969-11d3-B4AF-00C04F8ECB26),
        pointer_default(unique)
]
interface ICodebaseList : IUnknown
{
    HRESULT AddCodebase
    (
        [in]       LPCWSTR              wzCodebase
    );
    
    HRESULT RemoveCodebase
    (
        [in]       DWORD               dwIndex
    );
    
    HRESULT RemoveAll();
    
    HRESULT GetCount
    (
        [out]      DWORD              *pdwCount
    );
    
    HRESULT GetCodebase
    (
        [in]       DWORD               dwIndex,
        [out]      LPWSTR              wzCodebase,
        [in, out]  DWORD              *pcbCodebase
    );
}

[
        local,
        object,
        uuid(0A6F16F8-ACD7-11d3-B4ED-00C04F8ECB26),
        pointer_default(unique)
]
interface IDownloadMgr : IUnknown
{
    HRESULT PreDownloadCheck
    (
        [out]      void **ppv
    );
    
    HRESULT DoSetup
    (
        [in]       LPCWSTR              wzSourceUrl,
        [in]       LPCWSTR              wzFilePath,
        [out]      IUnknown             **ppUnk
    );
    
    HRESULT ProbeFailed
    (
        [out]      IUnknown             **ppUnk
    );
    
    HRESULT IsDuplicate
    (
        [out]      IDownloadMgr         *ppDLMgr
    );
    
    BOOL LogResult();
}


