xpmgr/BuildTools/Include/ndhelper.idl

329 lines
9.0 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992-2004.
//
// NDHelper.idl : IDL source for Network Diagnostics Helper Class
// provider
//
// This file will be processed by the MIDL tool to
// produce the .h file for C++ COM client.
// type library and marshaling code are registered by the .NET serviced component
//
//
//--------------------------------------------------------------------------
cpp_quote("//+--------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1992-2007.")
cpp_quote("//")
cpp_quote("//---------------------------------------------------------------------------")
cpp_quote("#if ( _MSC_VER >= 800 )")
cpp_quote("#pragma warning(disable:4201)")
cpp_quote("#endif")
#ifndef DO_NO_IMPORTS
import "oaidl.idl";
import "unknwn.idl";
import "wtypes.idl";
#endif
cpp_quote("")
//cpp_quote("EXTERN_C const CLSID CLSID_NetDiagEng;")
// Reserved GUIDS for our use
//
// Reserved GUIDS for our use
// CLSID and LIBID
//c0b35736-ebf5-11d8-bbe9-505054503030
//c0b35737-ebf5-11d8-bbe9-505054503030 LIBID_NetDiagEng
//c0b35738-ebf5-11d8-bbe9-505054503030 CLSID_NetDiagEng
//c0b35739-ebf5-11d8-bbe9-505054503030
//c0b3573a-ebf5-11d8-bbe9-505054503030
//c0b3573b-ebf5-11d8-bbe9-505054503030
//c0b3573c-ebf5-11d8-bbe9-505054503030
//c0b3573d-ebf5-11d8-bbe9-505054503030
//c0b3573e-ebf5-11d8-bbe9-505054503030
//c0b3573f-ebf5-11d8-bbe9-505054503030
// IID
//c0b35740-ebf5-11d8-bbe9-505054503030 IID_INetDiagClientCallback
//c0b35741-ebf5-11d8-bbe9-505054503030 IID_INetDiagClientIncident
//c0b35742-ebf5-11d8-bbe9-505054503030
//c0b35743-ebf5-11d8-bbe9-505054503030
//c0b35744-ebf5-11d8-bbe9-505054503030
//c0b35745-ebf5-11d8-bbe9-505054503030
//c0b35746-ebf5-11d8-bbe9-505054503030 IID_INetDiagHelper
//c0b35747-ebf5-11d8-bbe9-505054503030 IID_INetDiagHelperInfo
//c0b35748-ebf5-11d8-bbe9-505054503030 IID_INetDiagExtensibleHelper
//c0b3575f-ebf5-11d8-bbe9-505054503030
// Network Diagnostics Helper class CLSID
//c0b35760-ebf5-11d8-bbe9-505054503030
//c0b35761-ebf5-11d8-bbe9-505054503030
//...
//c0b35b15-ebf5-11d8-bbe9-505054503030
//c0b35b16-ebf5-11d8-bbe9-505054503030
//c0b35b17-ebf5-11d8-bbe9-505054503030
//c0b35b18-ebf5-11d8-bbe9-505054503030
//c0b35b19-ebf5-11d8-bbe9-505054503030
//c0b35b1a-ebf5-11d8-bbe9-505054503030
//c0b35b1b-ebf5-11d8-bbe9-505054503030
//c0b35b1c-ebf5-11d8-bbe9-505054503030
//c0b35b1d-ebf5-11d8-bbe9-505054503030
import "ndattrib.idl";
// Forward declaration
// interface INetDiagClientCallback;
// interface INetDiagIncident;
interface INetDiagHelper;
//
// types for network diagnostics framework
//
typedef [v1_enum] enum tagDIAGNOSIS_STATUS
{
DS_NOT_IMPLEMENTED = 0,
DS_CONFIRMED,
DS_REJECTED,
DS_INDETERMINATE,
DS_DEFERRED,
DS_PASSTHROUGH
}DIAGNOSIS_STATUS;
typedef [v1_enum] enum tagREPAIR_STATUS
{
RS_NOT_IMPLEMENTED = 0,
RS_REPAIRED,
RS_UNREPAIRED,
RS_DEFERRED,
RS_USER_ACTION
}REPAIR_STATUS;
typedef [v1_enum] enum tagPROBLEM_TYPE
{
PT_INVALID = 0,
PT_LOW_HEALTH = 1,
PT_LOWER_HEALTH = 2,
PT_DOWN_STREAM_HEALTH = 4,
PT_HIGH_UTILIZATION = 8,
PT_HIGHER_UTILIZATION = 16,
PT_UP_STREAM_UTILIZATION = 32
}PROBLEM_TYPE;
typedef struct tagHYPOTHESIS
{
[string] LPWSTR pwszClassName;
[string] LPWSTR pwszDescription;
ULONG celt;
[size_is(celt)]
PHELPER_ATTRIBUTE rgAttributes;
}HYPOTHESIS, *PHYPOTHESIS;
typedef struct tagHelperAttributeInfo
{
[string] LPWSTR pwszName;
ATTRIBUTE_TYPE type;
} HelperAttributeInfo, *PHelperAttributeInfo;
cpp_quote("#define DF_IMPERSONATION 0x80000000")
cpp_quote("#define DF_TRACELESS 0x40000000")
typedef struct tagDiagnosticsInfo
{
long cost;
ULONG flags;
} DiagnosticsInfo, *PDiagnosticsInfo;
//
// interfaces implemented by Network Diagnostics Helper Classes
//
[
object,
uuid(c0b35746-ebf5-11d8-bbe9-505054503030),
helpstring("INetDiagHelper Interface"),
pointer_default(unique) // default embedded ptrs to [unique]
]
interface INetDiagHelper : IUnknown
{
HRESULT Initialize(
[in] ULONG celt,
[in, size_is(celt)]
HELPER_ATTRIBUTE rgAttributes[]
);
HRESULT GetDiagnosticsInfo(
[out, retval] DiagnosticsInfo** ppInfo);
HRESULT GetKeyAttributes(
[out] ULONG* pcelt,
[out, size_is(,*pcelt)]
HELPER_ATTRIBUTE** pprgAttributes
);
HRESULT LowHealth(
[in, string, unique] LPCWSTR pwszInstanceDescription,
[out, string] LPWSTR* ppwszDescription,
[out] long* pDeferredTime,
[out] DIAGNOSIS_STATUS* pStatus);
HRESULT HighUtilization(
[in, string, unique] LPCWSTR pwszInstanceDescription,
[out, string] LPWSTR* ppwszDescription,
[out] long* pDeferredTime,
[out] DIAGNOSIS_STATUS* pStatus);
HRESULT GetLowerHypotheses(
[out] ULONG* pcelt,
[out, size_is(,*pcelt)] HYPOTHESIS** pprgHypotheses
);
HRESULT GetDownStreamHypotheses(
[out] ULONG* pcelt,
[out, size_is(,*pcelt)] HYPOTHESIS** pprgHypotheses
);
HRESULT GetHigherHypotheses(
[out] ULONG* pcelt,
[out, size_is(,*pcelt)] HYPOTHESIS** pprgHypotheses
);
HRESULT GetUpStreamHypotheses(
[out] ULONG* pcelt,
[out, size_is(,*pcelt)] HYPOTHESIS** pprgHypotheses
);
HRESULT Repair(
[in] RepairInfo* pInfo,
[out] long* pDeferredTime,
[out] REPAIR_STATUS* pStatus);
HRESULT Validate(
[in] PROBLEM_TYPE problem,
[out] long* pDeferredTime,
[out] REPAIR_STATUS* pStatus);
HRESULT GetRepairInfo(
[in] PROBLEM_TYPE problem,
[out] ULONG* pcelt,
[out, size_is(,*pcelt)] RepairInfo** ppInfo);
HRESULT GetLifeTime(
[out] LIFE_TIME* pLifeTime
);
HRESULT SetLifeTime(
[in] LIFE_TIME lifeTime
);
HRESULT GetCacheTime(
[out] FILETIME* pCacheTime
);
HRESULT GetAttributes(
[out] ULONG* pcelt,
[out, size_is(,*pcelt)]
HELPER_ATTRIBUTE** pprgAttributes
);
HRESULT Cancel();
HRESULT Cleanup();
//...
};
typedef struct tagHypothesisResult
{
HYPOTHESIS hypothesis;
DIAGNOSIS_STATUS pathStatus;
} HypothesisResult;
[ object,
uuid(104613FB-BC57-4178-95BA-88809698354A),
helpstring("INetDiagHelperUtilFactory Interface"),
pointer_default(unique) // default embedded ptrs to [unique]
]
interface INetDiagHelperUtilFactory : IUnknown
{
HRESULT CreateUtilityInstance(
[in] REFIID riid,
[out, iid_is(riid)] void ** ppvObject
);
}
//
// interface implemented by Network Diagnostics Helper Classes
//
[
object,
uuid(972DAB4D-E4E3-4fc6-AE54-5F65CCDE4A15),
helpstring("INetDiagHelperEx Interface"),
pointer_default(unique) // default embedded ptrs to [unique]
]
interface INetDiagHelperEx : IUnknown
{
HRESULT ReconfirmLowHealth(
[in] ULONG celt,
[in, size_is(celt)] HypothesisResult *pResults,
[out, string] LPWSTR *ppwszUpdatedDescription,
[out] DIAGNOSIS_STATUS *pUpdatedStatus
);
HRESULT SetUtilities(
[in] INetDiagHelperUtilFactory *pUtilities
);
HRESULT ReproduceFailure(
);
}
//
// interfaces implemented by Network Diagnostics Helper Classes
//
[
object,
uuid(c0b35747-ebf5-11d8-bbe9-505054503030),
helpstring("INetDiagHelperInfo Interface"),
pointer_default(unique) // default embedded ptrs to [unique]
]
interface INetDiagHelperInfo : IUnknown
{
HRESULT GetAttributeInfo(
[out] ULONG* pcelt,
[out, size_is(,*pcelt)]
HelperAttributeInfo** pprgAttributeInfos
);
}
//
// interface implemented by Extensible Helper Class
//
[
object,
uuid(c0b35748-ebf5-11d8-bbe9-505054503030),
helpstring("INetDiagExtensibleHelper Interface"),
pointer_default(unique) // default embedded ptrs to [unique]
]
interface INetDiagExtensibleHelper : IUnknown
{
HRESULT ResolveAttributes(
[in] ULONG celt,
[in, size_is(celt)] HELPER_ATTRIBUTE rgKeyAttributes[],
[out] ULONG* pcelt,
[out, size_is(,*pcelt)] HELPER_ATTRIBUTE** prgMatchValues
);
}