//***************************************************************************
//
//  Copyright (c) 1998-1999 Microsoft Corporation
//
//  DISPI.IDL
//
//  WBEMDISP Internal IDL Definitions
//
//***************************************************************************

import "wbemcli.idl";
import "wbemdisp.idl";

[
	uuid(D097D45A-37BC-11d2-8B3C-00600806D9B6),
	lcid(0x00),
	version(1.0)
]
library WbemScriptingI
{
	importlib("stdole2.tlb");
	interface ISWbemInternalContext;
	interface ISWbemInternalObject;
	interface ISWbemInternalServices;
	interface ISWbemInternalSecurity;
}

[
	object,
	local,
	uuid(61EA8DBC-37B8-11d2-8B3C-00600806D9B6)
]
interface ISWbemInternalContext : IUnknown
{
	[id(1)] HRESULT GetIWbemContext ([out,retval] IWbemContext **ppContext);
};

[
	object,
	local,
	uuid(9AF56A1A-37C1-11d2-8B3C-00600806D9B6)
]
interface ISWbemInternalObject : IUnknown
{
	[id(1)] HRESULT GetIWbemClassObject ([out,retval] IWbemClassObject **ppObject);

	[id(2)] HRESULT SetSite (
		[in] ISWbemInternalObject *pSObject, 
		[in] BSTR propertyName, 
		[in] long index
	);

	[id(3)] HRESULT UpdateSite ();
};

[
	object,
	local,
	uuid(67CB17B2-DB43-11d3-B38F-00105A1F473A)
]
interface ISWbemInternalServices : IUnknown
{
	[id(1)] HRESULT GetIWbemServices ([out,retval] IWbemServices **ppServices);
	[id(2)] HRESULT GetNamespacePath ([out,retval] BSTR *bsNamespacePath);
	[id(3)] HRESULT GetLocale ([out,retval] BSTR *bsLocale);
	[id(4)] HRESULT GetISWbemInternalSecurity ([out,retval] ISWbemInternalSecurity **ppISWbemInternalSecurity);
};

[
	object,
	local,
	uuid(CB0733BE-DB49-11d3-B38F-00105A1F473A)
]
interface ISWbemInternalSecurity : IUnknown
{
	[id(1)] HRESULT GetAuthority ([out,retval] BSTR *bsAuthority);
	[id(2)] HRESULT GetUPD ([out] BSTR *bsUser, [out] BSTR *bsPassword, [out] BSTR *bsDomain);
	[id(3)] HRESULT GetPrincipal ([out,retval] BSTR *bsPrincipal);
};

[
	object, 
	local, 
	uuid(8D24A115-21AE-4f0b-89E4-95BD08BE3EBB), 
	hidden,
	nonextensible,
 	pointer_default(unique),
]
interface ISWbemPrivateSinkLocator  : IUnknown
{

	[
		id(1),
	]
    HRESULT GetPrivateSink(
		[out] IUnknown **objWbemPrivateSink
		);
};


[
	object, 
	local, 
	uuid(073C58A9-3793-11d2-A1CE-00C04FB6C223), 
	hidden,
	nonextensible,
 	pointer_default(unique),
]
interface ISWbemPrivateSink  : IUnknown
{

	[
		id(1),
	]
    HRESULT OnObjectReady(
		[in] /* ISWbemObject */ IDispatch *objObject,
		[in] /* ISWbemNamedValueSet */ IDispatch *objAsyncContext
		);

	[
		id(2),
	]
    HRESULT OnCompleted (
		[in] HRESULT iHResult,
		[in] /* ISWbemObject */ IDispatch *objPath,
		[in] /* ISWbemObject */ IDispatch *objErrorObject,
		[in] /* ISWbemNamedValueSet */ IDispatch *objAsyncContext
		);

	[
		id(3),
	]
    HRESULT OnProgress (
		[in] long iUpperBound,
		[in] long iCurrent,
		[in] BSTR strMessage,
		[in] /* ISWbemNamedValueSet */ IDispatch *objAsyncContext
		);

	[
		id(4),
	]
    	HRESULT AddObjectSink (
		[in] IUnknown *objWbemSink,
		[in] IWbemServices *objServices
	);

	[
		id(5),
	]
    	HRESULT RemoveObjectSink (
		[in] IUnknown *objWbemSink
	);
};


