mirror of https://github.com/UMSKT/xpmgr.git
329 lines
9.0 KiB
Plaintext
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
|
|
);
|
|
}
|
|
|