//+---------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (C) Microsoft Corporation, 1999 - 2000.
//
//  File:       nusrmgr.idl
//
//  Contents:   MIDL definitions for ICommonDialog, IPassportManager
//
//----------------------------------------------------------------------------

import "oaidl.idl";
import "ocidl.idl";


[
    uuid(A5064420-D541-11D4-9523-00B0D022CA64),     // LIBID_NUSRMGRLib
    helpstring("NUSRMGR 1.0 Type Library"),
    lcid(0x0000),
    version(1.0)
]
library NUSRMGRLib
{
    importlib("stdole2.tlb");


    [
        object,
        uuid(A5064421-D541-11D4-9523-00B0D022CA64),
        dual,
        hidden,
        helpstring("ICommonDialog Interface"),
        oleautomation
    ]
    interface ICommonDialog : IDispatch
    {
        // Properties
        [id(1), propget, helpstring("Get the filter.")]
        HRESULT Filter([out, retval] BSTR* pbstrFilter);

        [id(1), propput, helpstring("Set the filter.")]
        HRESULT Filter([in] BSTR bstrFilter);

        [id(2), propget, helpstring("Get the filter index.")]
        HRESULT FilterIndex([out, retval] UINT* uiFilterIndex);

        [id(2), propput, helpstring("Set the filter index.")]
        HRESULT FilterIndex([in] UINT uiFilterIndex);

        [id(3), propget, helpstring("Get the file name of the selected file.")]
        HRESULT FileName([out, retval] BSTR* pbstrFileName);

        [id(3), propput, helpstring("Set the initial file name.")]
        HRESULT FileName([in] BSTR bstrFileName);

        [id(4), propget, helpstring("Get the flags used for the common dialog.")]
        HRESULT Flags([out, retval] UINT* uiFlags);

        [id(4), propput, helpstring("Set the flags used for the common dialog.")]
        HRESULT Flags([in] UINT uiFlags);

        [id(5), propput, helpstring("Set Owner of the window.")]
        HRESULT Owner([in] VARIANT varOwner);

        [id(6), propget, helpstring("Get the initial directory.")]
        HRESULT InitialDir([out, retval] BSTR* pbstrInitialDir);

        [id(6), propput, helpstring("Set the initial directory.")]
        HRESULT InitialDir([in] BSTR bstrInitialDir);

        // Methods
        [id(10), helpstring("Create the common file open dialog.")]
        HRESULT ShowOpen([out, retval] VARIANT_BOOL* pbSucces);
    };
    [
        uuid(A5064422-D541-11D4-9523-00B0D022CA64),
        helpstring("CommonDialog Class")
    ]
    coclass CommonDialog
    {
        [default] interface ICommonDialog;
    };


    [
        object,
        uuid(A5064423-D541-11D4-9523-00B0D022CA64),
        dual,
        hidden,
        helpstring("IPassportManager Interface"),
        oleautomation
    ]
    interface IPassportManager : IDispatch
    {
        // Properties
        [id(1), propget, helpstring("Get the current passport name, if any.")]
        HRESULT currentPassport([out, retval] BSTR* pbstrPassport);

        [id(2), propget, helpstring("Get the member services URL.")]
        HRESULT memberServicesURL([out, retval] BSTR* pbstrURL);

        // Methods
        [id(10), helpstring("Show the passport wizard.")]
        HRESULT showWizard([in] VARIANT varOwner, [out, retval] VARIANT_BOOL* pbRet);

        [id(11), helpstring("Show the Key Manager dialog.")]
        HRESULT showKeyManager([in] VARIANT varOwner, [out, retval] VARIANT_BOOL* pbRet);
    };    
    [
        uuid(A5064424-D541-11D4-9523-00B0D022CA64),
        helpstring("PassportManager Class") 
    ]
    coclass PassportManager
    {
        [default] interface IPassportManager;
    };

    [
        object,
        uuid(A5064425-D541-11D4-9523-00B0D022CA64),
        dual,
        helpstring("IToolbar Interface"),
        pointer_default(unique)
    ]
    interface IToolbar : IDispatch
    {
        [propget, id(1), helpstring("property enabled")] HRESULT enabled([in] VARIANT vIndex, [out, retval] VARIANT_BOOL *pVal);
        [propput, id(1), helpstring("property enabled")] HRESULT enabled([in] VARIANT vIndex, [in] VARIANT_BOOL newVal);
    };
    [
        uuid(A5064427-D541-11D4-9523-00B0D022CA64),
        helpstring("IToolbarEvents Interface")
    ]
    dispinterface DToolbarEvents
    {
    properties:
    methods:
        [id(1)] void OnButtonClick([in] int buttonIndex);
    };
    [
        uuid(A5064426-D541-11D4-9523-00B0D022CA64),
        helpstring("Toolbar Class")
    ]
    coclass Toolbar
    {
        [default] interface IToolbar;
        [default, source] dispinterface DToolbarEvents;
    };
};