windows-nt/Source/XPSP1/NT/admin/wmi/wbem/common/idl/wbemtran.idl
2020-09-26 16:20:57 +08:00

241 lines
6.4 KiB
Plaintext

/*++
Copyright (C) 1996-2001 Microsoft Corporation
Module Name:
WBEMTRAN.IDL
Abstract:
This IDL file contains interfaces needed only by implementors of custom
transports and custom security systems. These interfaces are not needed
for either client or provider access to CIMOM.
See WBEMCLI.IDL for client interfaces, and WBEMPROV.IDL for provider
extensions.
History:
--*/
import "objidl.idl";
import "oleidl.idl";
import "oaidl.idl";
import "wbemcli.idl";
#define OPTIONAL in, unique
[uuid(027947f3-d731-11ce-a357-000000000001)]
library WbemTransports_v1
{
interface IWbemTransport;
interface IWbemLevel1Login;
interface IWbemConnectorLogin;
interface IWbemAddressResolution;
typedef enum tag_WBEM_LOGIN_TYPE
{
WBEM_FLAG_INPROC_LOGIN = 0,
WBEM_FLAG_LOCAL_LOGIN = 1,
WBEM_FLAG_REMOTE_LOGIN = 2,
WBEM_AUTHENTICATION_METHOD_MASK = 0xF,
WBEM_FLAG_USE_MULTIPLE_CHALLENGES = 0x10,
} WBEM_LOGIN_TYPE;
typedef [size_is(16), length_is(16)] BYTE* WBEM_128BITS;
[restricted, uuid(8BC3F05E-D86B-11d0-A075-00C04FB68820)]
coclass WbemLevel1Login
{
interface IWbemLevel1Login;
interface IWbemConnectorLogin;
};
[restricted, uuid(A1044801-8F7E-11d1-9E7C-00C04FC324A8)]
coclass WbemLocalAddrRes
{
interface IWbemAddressResolution;
};
[restricted, uuid(7a0227f6-7108-11d1-ad90-00c04fd8fdff)]
coclass WbemUninitializedClassObject
{
interface IWbemClassObject;
interface IWbemObjectAccess;
interface IWbemConstructClassObject;
};
interface IWbemClientTransport;
interface IWbemClientConnectionTransport;
[restricted, uuid(F7CE2E13-8C90-11d1-9E7B-00C04FC324A8)]
coclass WbemDCOMTransport
{
interface IWbemClientTransport;
interface IWbemClientConnectionTransport;
};
};
[object, restricted, uuid(F309AD18-D86A-11d0-A075-00C04FB68820),
pointer_default(unique)]
interface IWbemLevel1Login : IUnknown
{
HRESULT EstablishPosition(
[in, unique, string] LPWSTR wszClientMachineName,
[in] DWORD dwProcessId,
[out] DWORD* phAuthEventHandle);
// WBEM portion
HRESULT RequestChallenge(
[in, unique, string] LPWSTR wszNetworkResource,
[in, unique, string] LPWSTR wszUser,
[out] WBEM_128BITS Nonce
);
HRESULT WBEMLogin(
[in, unique, string] LPWSTR wszPreferredLocale,
[in, unique] WBEM_128BITS AccessToken,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemServices** ppNamespace
);
// NTLM portion
HRESULT NTLMLogin(
[in, unique, string] LPWSTR wszNetworkResource,
[in, unique, string] LPWSTR wszPreferredLocale,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemServices** ppNamespace);
};
[object, restricted, uuid(d8ec9cb1-b135-4f10-8b1b-c7188bb0d186),
pointer_default(unique)]
interface IWbemConnectorLogin : IUnknown
{
HRESULT ConnectorLogin(
[in, unique, string] LPWSTR wszNetworkResource,
[in, unique, string] LPWSTR wszPreferredLocale,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] REFIID riid,
[out, iid_is(riid)] void **pInterface
);
};
[object, local, uuid(F7CE2E12-8C90-11d1-9E7B-00C04FC324A8),
restricted, pointer_default(unique)]
interface IWbemAddressResolution : IUnknown
{
HRESULT Resolve(
[in] LPWSTR wszNamespacePath,
[out] LPWSTR wszAddressType,
[out] DWORD* pdwAddressLength,
[out, size_is(,*pdwAddressLength)] BYTE** pabBinaryAddress);
};
/////////////////////////////////////////////////////////////////
//
//
[restricted, local, object, uuid(553fe584-2156-11d0-b6ae-00aa003240c7)]
interface IWbemTransport : IUnknown
{
HRESULT Initialize();
}
[restricted, local, object, uuid(9ef76194-70d5-11d1-ad90-00c04fd8fdff)]
interface IWbemConstructClassObject : IUnknown
{
HRESULT SetInheritanceChain(
[in] long lNumAntecedents,
[in, size_is(lNumAntecedents), string] LPWSTR* awszAntecedents);
HRESULT SetPropertyOrigin(
[in, string] LPCWSTR wszPropertyName,
[in] long lOriginIndex);
HRESULT SetMethodOrigin(
[in, string] LPCWSTR wszMethodName,
[in] long lOriginIndex);
HRESULT SetServerNamespace(
[in, string] LPCWSTR wszServer,
[in, string] LPCWSTR wszNamespace);
};
[object, local, uuid(F7CE2E11-8C90-11d1-9E7B-00C04FC324A8),
restricted, pointer_default(unique)]
interface IWbemClientTransport : IUnknown
{
HRESULT ConnectServer(
[in] BSTR strAddressType,
[in] DWORD dwBinaryAddressLength,
[in, size_is(dwBinaryAddressLength)] BYTE* abBinaryAddress,
[in] BSTR strNetworkResource,
[in] BSTR strUser,
[in] BSTR strPassword,
[in] BSTR strLocale,
[in] long lSecurityFlags,
[in] BSTR strAuthority,
[in] IWbemContext* pCtx,
[out] IWbemServices** ppNamespace
);
};
[object, local, uuid(a889c72a-fcc1-4a9e-af61-ed071333fb5b),
restricted, pointer_default(unique)]
interface IWbemClientConnectionTransport : IUnknown
{
HRESULT Open(
[in] BSTR strAddressType,
[in] DWORD dwBinaryAddressLength,
[in, size_is(dwBinaryAddressLength)] BYTE* abBinaryAddress,
[in] const BSTR strObject,
[in] const BSTR strUser,
[in] const BSTR strPassword,
[in] const BSTR strLocale,
[in] long lFlags,
[in] IWbemContext *pCtx,
[in] REFIID riid,
[out, iid_is(riid)] void **pInterface,
[out] IWbemCallResult **pCallRes
);
HRESULT OpenAsync(
[in] BSTR strAddressType,
[in] DWORD dwBinaryAddressLength,
[in, size_is(dwBinaryAddressLength)] BYTE* abBinaryAddress,
[in] const BSTR strObject,
[in] const BSTR strUser,
[in] const BSTR strPassword,
[in] const BSTR strLocale,
[in] long lFlags,
[in] IWbemContext *pCtx,
[in] REFIID riid,
[in] IWbemObjectSink *pResponseHandler
);
HRESULT Cancel(
[in] long lFlags,
[in] IWbemObjectSink *pHandler
);
};