// nusrmgr.idl : IDL source for nusrmgr.dll
//

// This file will be processed by the MIDL tool to
// produce the type library (nusrmgr.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";
#include "olectl.h"

[
    uuid(C56D0377-A9AC-46A7-9FAE-8E5B7FD880D2),
    version(1.0),
    helpstring("nusrmgr 1.0 Type Library")
]
library NUSRMGRLib
{
    importlib("stdole2.tlb");

    [
        object, dual,
        uuid(8E8922A2-5BA0-4DC3-9F35-A952FE4DD299),
        helpstring("IExternalUI Interface"),
        pointer_default(unique)
    ]
    interface IExternalUI : IDispatch
    {
        [propget, id(1), helpstring("property cssPath")] HRESULT cssPath([out, retval] BSTR *pVal);
        [id(50), helpstring("method navigate")] HRESULT navigate([in] VARIANT varClsid, [in] VARIANT_BOOL bTrimHistory, [in, optional] VARIANT var2);
        [id(51), helpstring("method goBack")] HRESULT goBack([in, optional] VARIANT varCount);
        [id(52), helpstring("method goForward")] HRESULT goForward();
        [id(53), helpstring("method showHelp")] HRESULT showHelp([in] VARIANT var);
    };

    [
        object, dual,
        uuid(F949E516-D265-4990-9AE8-9456BEC4C8A5),
        helpstring("IMainPageUI Interface"),
        pointer_default(unique)
    ]
    interface IMainPageUI : IExternalUI
    {
        [id(200), helpstring("method createUserTable")] HRESULT createUserTable([in] IDispatch* pdispParent);
    };

    [
        object, dual,
        uuid(B5C84CF1-1ED4-49E4-AD34-07C41B956CB8),
        helpstring("IUserPageUI Interface"),
        pointer_default(unique)
    ]
    interface IUserPageUI : IExternalUI
    {
        [propget, id(100), helpstring("property isSelf")] HRESULT isSelf([out, retval] VARIANT_BOOL *pVal);
        [propget, id(101), helpstring("property runningAsOwner")] HRESULT runningAsOwner([out, retval] VARIANT_BOOL *pVal);
        [propget, id(102), helpstring("property runningAsAdmin")] HRESULT runningAsAdmin([out, retval] VARIANT_BOOL *pVal);
        [propget, id(103), helpstring("property passwordRequired")] HRESULT passwordRequired([out, retval] VARIANT_BOOL *pVal);
        [propget, id(104), helpstring("property isAdmin")] HRESULT isAdmin([out, retval] VARIANT_BOOL *pVal);
        [propget, id(105), helpstring("property isGuest")] HRESULT isGuest([out, retval] VARIANT_BOOL *pVal);
        [propget, id(106), helpstring("property isOwner")] HRESULT isOwner([out, retval] VARIANT_BOOL *pVal);
        [propget, id(107), helpstring("property userDisplayName")] HRESULT userDisplayName([out, retval] BSTR *pVal);
        [id(200), helpstring("method createUserDisplayHTML")] HRESULT createUserDisplayHTML([out, retval] BSTR *pVal);
        [id(201), helpstring("method countOwners")] HRESULT countOwners([out, retval] UINT *pVal);
        [id(202), helpstring("method enableGuest")] HRESULT enableGuest([in] VARIANT_BOOL bEnable);
    };

    [
        object, dual,
        uuid(65A05330-87EC-46FA-9497-824135168D54),
        helpstring("ILogonPageUI Interface"),
        pointer_default(unique)
    ]
    interface ILogonPageUI : IExternalUI
    {
        [id(200), helpstring("method initPage")] HRESULT initPage([in] IDispatch* pdispLogonTypeCheckbox, [in] IDispatch* pdispTSModeCheckbox);
        [id(201), helpstring("method onApply")] HRESULT onOK();
    };

};

cpp_quote("")
cpp_quote("// Well-known properties")
cpp_quote("#define UA_PROP_USERLIST             L\"UA_UserList\"")
cpp_quote("#define UA_PROP_PAGEINITDATA         L\"UA_PageInitData\"")
cpp_quote("#define UA_PROP_CSSPATH              L\"UA_CssPath\"")
cpp_quote("")
