//+---------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (C) Microsoft Corporation, 1992-1998.
//
//  File:       optary.idl
//
//  Contents:   IOptionArray interfaces
//
//  Classes:
//
//  Functions:
//
//  History:    08-07-97   DBau (David Bau)   Created
//
//----------------------------------------------------------------------------
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// optary.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("// IOptionArray Interface.")
cpp_quote("")

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

interface IOptionArray;

//+---------------------------------------------------------------------------
//
//  Copyright (C) Microsoft Corporation, 1995-1998.
//
//  Contents:  IOptionArray interface definition
//
//----------------------------------------------------------------------------

cpp_quote("#ifndef _LPOPTIONARRAY_DEFINED")
cpp_quote("#define _LPOPTIONARRAY_DEFINED")

[local, object, uuid(22b6d492-0f88-11d1-ba19-00c04fd912d0), pointer_default(unique)]
interface IOptionArray : IUnknown
{
	typedef [unique] IOptionArray *LPOPTIONARRAY;

    HRESULT QueryOption(
            [in]                    DWORD  dwOption,
            [out, size_is(*pcbBuf)] LPVOID pBuffer,
            [in, out]               ULONG *pcbBuf);

    HRESULT SetOption(
            [in]                    DWORD dwOption,
            [in, size_is(cbBuf)]    LPVOID pBuffer,
            [in]                    ULONG cbBuf);
}

//+---------------------------------------------------------------------------
//
//  Copyright (C) Microsoft Corporation, 1995-1998.
//
//  Contents:  IHtmlLoadOptions interface definition
//
//----------------------------------------------------------------------------

cpp_quote("// HTMLLoadOptions CLSID")
cpp_quote("EXTERN_C const CLSID CLSID_HTMLLoadOptions; // {18845040-0fa5-11d1-ba19-00c04fd912d0}")

[local, object, uuid(a71a0808-0f88-11d1-ba19-00c04fd912d0), pointer_default(unique)]
interface IHtmlLoadOptions : IOptionArray
{
    typedef enum
    {
        HTMLLOADOPTION_CODEPAGE         = 0x00000000, // default codepage, 4 bytes
        HTMLLOADOPTION_INETSHORTCUTPATH = 0x00000001, // Path to Shortcut, Wide Char String Variable size
        HTMLLOADOPTION_HYPERLINK        = 0x00000002, // true if true hyperlink load (not init subframe load), 4 bytes
        HTMLLOADOPTION_FRAMELOAD        = 0x00000003, // unused - to be removed
    } HTMLLOADOPTION;
}

cpp_quote("#endif")

