/*++ 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 ); };