//+---------------------------------------------------------------------------
//
//  Copyright Microsoft Corporation. All Rights Reserved.
//
//  Contents:   OLE Hyperlinking interfaces
//
//----------------------------------------------------------------------------

cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// HTIframe.h")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// (C) Copyright 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("// OLE Hyperlinking ITargetFrame2 Interfaces.")
cpp_quote("")

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

interface ITargetFrame2;
interface ITargetContainer;

cpp_quote("EXTERN_C const IID IID_ITargetFrame2;")
cpp_quote("EXTERN_C const IID IID_ITargetContainer;")


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

cpp_quote("#ifndef _LPTARGETFRAME2_DEFINED")
cpp_quote("#define _LPTARGETFRAME2_DEFINED")

cpp_quote("#define TF_NAVIGATE 0x7FAEABAC")
cpp_quote("#define TARGET_NOTIFY_OBJECT_NAME L\"863a99a0-21bc-11d0-82b4-00a0c90c29c5\"")




[
    object,
    uuid(863a99a0-21bc-11d0-82b4-00a0c90c29c5),
    pointer_default(unique)
]
interface ITargetNotify: IUnknown
{
    typedef [unique] ITargetNotify *LPTARGETNOTIFY;


    HRESULT OnCreate(
        [in] IUnknown *pUnkDestination,
        [in] ULONG cbCookie);

    HRESULT OnReuse(
        [in] IUnknown *pUnkDestination);

}

[
    object,
    uuid(3050f6b1-98b5-11cf-bb82-00aa00bdce0b),
    pointer_default(unique)
]
interface ITargetNotify2: ITargetNotify
{
    typedef [unique] ITargetNotify2 *LPTARGETNOTIFY2;

    HRESULT GetOptionString(
        [in,out] BSTR * pbstrOptions);
}

[
    object,
    uuid(86D52E11-94A8-11d0-82AF-00C04FD5AE38),
    pointer_default(unique)
]
interface ITargetFrame2: IUnknown
{
    typedef [unique] ITargetFrame2 *LPTARGETFRAME2;

    typedef enum
        {   
        FINDFRAME_NONE  = 0,
        FINDFRAME_JUSTTESTEXISTENCE = 1,
        FINDFRAME_INTERNAL = 0x80000000,
        }   FINDFRAME_FLAGS;

    // values indicating frame layout options
    typedef enum
        {   
        FRAMEOPTIONS_SCROLL_YES     = 0x00000001,
        FRAMEOPTIONS_SCROLL_NO      = 0x00000002,
        FRAMEOPTIONS_SCROLL_AUTO    = 0x00000004,
        FRAMEOPTIONS_NORESIZE       = 0x00000008,
        FRAMEOPTIONS_NO3DBORDER     = 0x00000010,
        FRAMEOPTIONS_DESKTOP        = 0x00000020,
        FRAMEOPTIONS_BROWSERBAND    = 0x00000040,
        }   FRAMEOPTIONS_FLAGS;

    HRESULT SetFrameName(
        [in] LPCWSTR pszFrameName);

    HRESULT GetFrameName(
        [out] LPWSTR *ppszFrameName);

    HRESULT GetParentFrame(
        [out] IUnknown **ppunkParent);

    HRESULT SetFrameSrc(
        [in] LPCWSTR pszFrameSrc);

    HRESULT GetFrameSrc(
        [out] LPWSTR *ppszFrameSrc);

    HRESULT GetFramesContainer(
        [out] IOleContainer **ppContainer);

    HRESULT SetFrameOptions(
        [in] DWORD dwFlags);

    HRESULT GetFrameOptions(
        [out] DWORD *pdwFlags);

    HRESULT SetFrameMargins(
        [in] DWORD dwWidth,
        [in] DWORD dwHeight);

    HRESULT GetFrameMargins(
        [out] DWORD *pdwWidth,
        [out] DWORD *pdwHeight);

    HRESULT FindFrame(
        [in,unique] LPCWSTR pszTargetName,
        [in] DWORD dwFlags,
        [out] IUnknown **ppunkTargetFrame);

    HRESULT GetTargetAlias(
        [in,unique] LPCWSTR pszTargetName,
        [out] LPWSTR *ppszTargetAlias);


}

[
    object,
    uuid(7847EC01-2BEC-11d0-82B4-00A0C90C29C5),
    pointer_default(unique)
]
interface ITargetContainer: IUnknown
{
    typedef [unique] ITargetContainer *LPTARGETCONTAINER;

    HRESULT GetFrameUrl(
        [out] LPWSTR *ppszFrameSrc);

    HRESULT GetFramesContainer(
        [out] IOleContainer **ppContainer);

}

cpp_quote("#endif")

