//*********************************************************************
//*                  Microsoft Windows                               **
//*            Copyright(c) Microsoft Corp., 1999                    **
//*********************************************************************
//
//  OBSHEL.IDL - Component description and Type Library for ObShell (MSOBSHEL)
//
//  HISTORY:
//  
//  1/27/99 a-jaswed Created.

import "unknwn.idl";
import "oaidl.idl";

///////////////////////////////////////////////////////////
//
//
// Component descriptions
//

///////////////////////////////////////////////////////////
// Interface IObShellStatusPane
//
[
    object,
    uuid(2DD760C5-BB27-11D2-9D62-00C04F7F8935),
    helpstring("IObShellMainPane Interface"),
    pointer_default(unique)
]
interface IObShellMainPane : IUnknown
{
    HRESULT CreateMainPane           ([in]  HANDLE_PTR hInstance,    
                                      [in]  HWND      hwndParent, 
                                      [in]  RECT*     rectWindowSize,
									  [in]	BSTR      bstrStartPage);
    HRESULT ExecScriptFn             ([in]  BSTR      bstrScriptFn, 
									  [out] VARIANT* pvarRet);
    HRESULT Navigate                 ([in]  WCHAR*    pszUrl);
    HRESULT ListenToMainPaneEvents   ([in]  IUnknown* pUnk);
    HRESULT SetExternalInterface     ([in]  IUnknown* pUnk);
    HRESULT PreTranslateMessage      ([in]  LPMSG     lpMsg);
    HRESULT AddStatusItem            ([in]  BSTR      bstrText,  
									  [in] int  iIndex);
    HRESULT RemoveStatusItem         ([in]  int       iIndex);
    HRESULT SelectStatusItem         ([in]  int       iIndex);   
    HRESULT SetStatusLogo            ([in]  BSTR      bstrPath);
    HRESULT SetAppMode               ([in]  DWORD     dwAppMode);
    HRESULT GetNumberOfStatusItems   ([out] int*      piTotal);
    HRESULT OnDialing                ([in]  UINT      uiType); 
    HRESULT OnConnecting             ([in]  UINT      uiType);
    HRESULT OnConnected              ([in]  UINT      uiType);
    HRESULT OnDownloading            ([in]  UINT      uiType);
    HRESULT OnDisconnect             ([in]  UINT      uiType);
    HRESULT OnDialingError           ([in]  UINT      uiType, 
									  [in]  UINT      uiErrorCode);
    HRESULT OnServerError            ([in]  UINT      uiType, 
									  [in]  UINT      uiErrorCode);
    HRESULT OnRefDownloadProgress    ([in]  UINT      uiType, 
									  [in]  UINT uiPercentDone);
    HRESULT OnRefDownloadComplete    ([in]  UINT      uiType, 
									  [in]  UINT uiErrorCode);
    HRESULT OnISPDownloadComplete    ([in]  UINT      uiType, 
									  [in]  BSTR bstrURL);
    HRESULT MainPaneShowWindow       ();
    HRESULT DestroyMainPane          ();
    HRESULT Walk                     ([out] BOOL*      pbRet);
    HRESULT get_PageType             ([out] DWORD*     pdwPageType);
    HRESULT get_PageFlag             ([out] DWORD* pdwPageFlag);
    HRESULT get_PageID               ([out] BSTR* pbstrPageID);
    HRESULT get_URL                  ([in]  BOOL bForward, 
									  [out] BSTR* pbstrReturnURL);
    HRESULT get_IsQuickFinish        ([out] BOOL*      pbRet);
    HRESULT SaveISPFile              ([in]  BSTR bstrSrcFileName, 
									  [in]  BSTR bstrDestFileName);
    HRESULT OnDeviceArrival          ([in]  UINT uiDeviceType);
    HRESULT OnHelp                   ();
    HRESULT OnIcsConnectionStatus    ([in]  UINT       uiType);
    HRESULT PlayBackgroundMusic      ();
    HRESULT StopBackgroundMusic      ();
    HRESULT UnhookScriptErrorHandler ();

};

///////////////////////////////////////////////////////////
// ObShell Type Library
//
[
    uuid(2DD760C1-BB27-11D2-9D62-00C04F7F8935),
    version(1.0),
    helpstring("ObShell 1.0 Type Library")
]
library ObShellLib
{
    importlib("stdole32.tlb");

    //
    // ObShellMainPane
    //
    [
        uuid(2DD760C4-BB27-11D2-9D62-00C04F7F8935),
        helpstring("ObShellMainPane Class")
    ]
    coclass ObShellMainPane
    {
        [default] interface IObShellMainPane;
    };
};  
