//----------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (C) Microsoft Corporation, 2001.
//
//  File:       snapdata.idl
//
//  Contents:  WiF Policy Snapin
//
//
//  History:    TaroonM
//              10/30/01
//
//----------------------------------------------------------------------------

import "unknwn.idl";
import "wtypes.idl";
import "mmc.idl";

/****************************************************************************
 * Interface IWirelessSnapInData
 *  WIRELESS snap-in data interface.  This interface is implemented by every
 *  scope and result item associated with the WIRELESS snap-in.
 ****************************************************************************/

[
    object,
    uuid(DDD146DB-00A1-11d2-8429-006008960A34),
    helpstring("IWirelessSnapInDataObject Interface"),
    pointer_default(unique)
]
interface IWirelessSnapInDataObject : IUnknown
{
    typedef [unique] IWirelessSnapInDataObject *LPWIFISNAPINDATAOBJECT;

    /* handle IExtendContextMenu */
    HRESULT AddMenuItems(
                [in] LPCONTEXTMENUCALLBACK piCallback,
                [in, out] long *pInsertionAllowed );
    HRESULT Command( 
    [in] long lCommandID,
    [in] IConsoleNameSpace *pNameSpace );
    /* handle IExtendPropertySheet */
    HRESULT CreatePropertyPages( 
                [in] LPPROPERTYSHEETCALLBACK lpProvider,
                [in] LONG_PTR handle );
    HRESULT QueryPagesFor( void );
    /* handle IExtendControlbar */
    HRESULT ControlbarNotify( 
                [in] IControlbar *pControlbar,
                [in] IExtendControlbar *pExtendControlbar,
                [in] MMC_NOTIFY_TYPE event,
                [in] LPARAM arg,
                [in] LPARAM param );
    HRESULT SetControlbar( 
                [in] IControlbar *pControlbar,
                [in] IExtendControlbar *pExtendControlbar );
 /* handle destroy notification */
 HRESULT Destroy( void ); 
    /* handle IComponent and IComponentData */
    HRESULT Notify( 
                [in] MMC_NOTIFY_TYPE event,
                [in] LPARAM arg,
                [in] LPARAM param,
                [in] BOOL bComponentData, /* TRUE when caller is IComponentData */
                [in] IConsole *pConsole,
                [in] IHeaderCtrl *pHeader );
    /* handle IComponent */
    HRESULT GetResultDisplayInfo( [in, out] RESULTDATAITEM *pResultDataItem );
    /* handle IComponentData */
    HRESULT GetScopeDisplayInfo( [in, out] SCOPEDATAITEM *pScopeDataItem );
    /* IWirelessSnapInData */
    HRESULT GetScopeData( [in,out] SCOPEDATAITEM **ppScopeDataItem );
    HRESULT GetResultData( [in,out] RESULTDATAITEM **ppResultDataItem );
    HRESULT GetGuidForCompare( [in, out] GUID *pGuid );
 HRESULT GetDataObjectType( [in,out] DATA_OBJECT_TYPES *ptype );
 HRESULT SetDataObjectType( [in] DATA_OBJECT_TYPES type );
 HRESULT EnablePropertyChangeHook( [in] BOOL bEnable );
};
