Revision control
Copy as Markdown
Other Tools
// Licensed under the Apache License, Version 2.0
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
use ctypes::{c_long, c_void};
use shared::guiddef::REFIID;
use shared::minwindef::{BYTE, DWORD};
use shared::winerror::HRESULT;
use shared::wtypes::BSTR;
use um::unknwnbase::{IUnknown, IUnknownVtbl};
use um::wbemcli::{IWbemCallResult, IWbemContext, IWbemObjectSink, IWbemServices};
use um::winnt::{LPCWSTR, LPWSTR};
// extern RPC_IF_HANDLE __MIDL_itf_wbemtran_0000_0000_v0_0_c_ifspec;
// extern RPC_IF_HANDLE __MIDL_itf_wbemtran_0000_0000_v0_0_s_ifspec;
ENUM!{enum 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,
}}
pub type WBEM_128BITS = *mut BYTE;
// EXTERN_C const IID LIBID_WbemTransports_v1;
// EXTERN_C const IID IID_IWbemTransport;
DEFINE_GUID!{IID_IWbemTransport,
0x553fe584, 0x2156, 0x11d0, 0xb6, 0xae, 0x00, 0xaa, 0x00, 0x32, 0x40, 0xc7}
RIDL!{#[uuid(0x553fe584, 0x2156, 0x11d0, 0xb6, 0xae, 0x00, 0xaa, 0x00, 0x32, 0x40, 0xc7)]
interface IWbemTransport(IWbemTransportVtbl): IUnknown(IUnknownVtbl) {
fn Initialize() -> HRESULT,
}}
// EXTERN_C const IID IID_IWbemLevel1Login;
DEFINE_GUID!{IID_IWbemLevel1Login,
0xf309ad18, 0xd86a, 0x11d0, 0xa0, 0x75, 0x00, 0xc0, 0x4f, 0xb6, 0x88, 0x20}
RIDL!{#[uuid(0xf309ad18, 0xd86a, 0x11d0, 0xa0, 0x75, 0x00, 0xc0, 0x4f, 0xb6, 0x88, 0x20)]
interface IWbemLevel1Login(IWbemLevel1LoginVtbl): IUnknown(IUnknownVtbl) {
fn EstablishPosition(
wszLocaleList: LPWSTR,
dwNumLocales: DWORD,
reserved: *mut DWORD,
) -> HRESULT,
fn RequestChallenge(
wszNetworkResource: LPWSTR,
wszUser: LPWSTR,
Nonce: WBEM_128BITS,
) -> HRESULT,
fn WBEMLogin(
wszPreferredLocale: LPWSTR,
AccessToken: WBEM_128BITS,
lFlags: c_long,
pCtx: *mut IWbemContext,
ppNamespace: *mut *mut IWbemServices,
) -> HRESULT,
fn NTLMLogin(
wszNetworkResource: LPWSTR,
wszPreferredLocale: LPWSTR,
lFlags: c_long,
pCtx: *mut IWbemContext,
ppNamespace: *mut *mut IWbemServices,
) -> HRESULT,
}}
// EXTERN_C const IID IID_IWbemConnectorLogin;
DEFINE_GUID!{IID_IWbemConnectorLogin,
0xd8ec9cb1, 0xb135, 0x4f10, 0x8b, 0x1b, 0xc7, 0x18, 0x8b, 0xb0, 0xd1, 0x86}
RIDL!{#[uuid(0xd8ec9cb1, 0xb135, 0x4f10, 0x8b, 0x1b, 0xc7, 0x18, 0x8b, 0xb0, 0xd1, 0x86)]
interface IWbemConnectorLogin(IWbemConnectorLoginVtbl): IUnknown(IUnknownVtbl) {
fn ConnectorLogin(
wszNetworkResource: LPWSTR,
wszPreferredLocale: LPWSTR,
lFlags: c_long,
pCtx: *mut IWbemContext,
riid: REFIID,
pInterface: *mut *mut c_void,
) -> HRESULT,
}}
// EXTERN_C const IID IID_IWbemAddressResolution;
DEFINE_GUID!{IID_IWbemAddressResolution,
0xf7ce2e12, 0x8c90, 0x11d1, 0x9e, 0x7b, 0x00, 0xc0, 0x4f, 0xc3, 0x24, 0xa8}
RIDL!{#[uuid(0xf7ce2e12, 0x8c90, 0x11d1, 0x9e, 0x7b, 0x00, 0xc0, 0x4f, 0xc3, 0x24, 0xa8)]
interface IWbemAddressResolution(IWbemAddressResolutionVtbl): IUnknown(IUnknownVtbl) {
fn Resolve(
wszNamespacePath: LPWSTR,
wszAddressType: LPWSTR,
pdwAddressLength: *mut DWORD,
pabBinaryAddress: *mut *mut BYTE,
) -> HRESULT,
}}
DEFINE_GUID!{CLSID_WbemLevel1Login,
0x8BC3F05E, 0xD86B, 0x11d0, 0xA0, 0x75, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20}
// class DECLSPEC_UUID("8BC3F05E-D86B-11d0-A075-00C04FB68820")
// WbemLevel1Login;
DEFINE_GUID!{CLSID_WbemLocalAddrRes,
0xA1044801, 0x8F7E, 0x11d1, 0x9E, 0x7C, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8}
// class DECLSPEC_UUID("A1044801-8F7E-11d1-9E7C-00C04FC324A8")
// WbemLocalAddrRes;
DEFINE_GUID!{CLSID_WbemUninitializedClassObject,
0x7a0227f6, 0x7108, 0x11d1, 0xad, 0x90, 0x00, 0xc0, 0x4f, 0xd8, 0xfd, 0xff}
// class DECLSPEC_UUID("7a0227f6-7108-11d1-ad90-00c04fd8fdff")
// WbemUninitializedClassObject;
// EXTERN_C const IID IID_IWbemClientTransport;
DEFINE_GUID!{IID_IWbemClientTransport,
0xf7ce2e11, 0x8c90, 0x11d1, 0x9e, 0x7b, 0x00, 0xc0, 0x4f, 0xc3, 0x24, 0xa8}
RIDL!{#[uuid(0xf7ce2e11, 0x8c90, 0x11d1, 0x9e, 0x7b, 0x00, 0xc0, 0x4f, 0xc3, 0x24, 0xa8)]
interface IWbemClientTransport(IWbemClientTransportVtbl): IUnknown(IUnknownVtbl) {
fn ConnectServer(
strAddressType: BSTR,
dwBinaryAddressLength: DWORD,
abBinaryAddress: *mut BYTE,
strNetworkResource: BSTR,
strUser: BSTR,
strPassword: BSTR,
strLocale: BSTR,
lSecurityFlags: c_long,
strAuthority: BSTR,
pCtx: *mut IWbemContext,
ppNamespace: *mut *mut IWbemServices,
) -> HRESULT,
}}
// EXTERN_C const IID IID_IWbemClientConnectionTransport;
DEFINE_GUID!{IID_IWbemClientConnectionTransport,
0xa889c72a, 0xfcc1, 0x4a9e, 0xaf, 0x61, 0xed, 0x07, 0x13, 0x33, 0xfb, 0x5b}
RIDL!{#[uuid(0xa889c72a, 0xfcc1, 0x4a9e, 0xaf, 0x61, 0xed, 0x07, 0x13, 0x33, 0xfb, 0x5b)]
interface IWbemClientConnectionTransport(IWbemClientConnectionTransportVtbl):
IUnknown(IUnknownVtbl) {
fn Open(
strAddressType: BSTR,
dwBinaryAddressLength: DWORD,
abBinaryAddress: *mut BYTE,
strObject: BSTR,
strUser: BSTR,
strPassword: BSTR,
strLocale: BSTR,
lFlags: c_long,
pCtx: *mut IWbemContext,
riid: REFIID,
pInterface: *mut *mut c_void,
pCallRes: *mut *mut IWbemCallResult,
) -> HRESULT,
fn OpenAsync(
strAddressType: BSTR,
dwBinaryAddressLength: DWORD,
abBinaryAddress: *mut BYTE,
strObject: BSTR,
strUser: BSTR,
strPassword: BSTR,
strLocale: BSTR,
lFlags: c_long,
pCtx: *mut IWbemContext,
riid: REFIID,
pResponseHandler: *mut IWbemObjectSink,
) -> HRESULT,
fn Cancel(
lFlags: c_long,
pHandler: *mut IWbemObjectSink,
) -> HRESULT,
}}
DEFINE_GUID!{CLSID_WbemDCOMTransport,
0xF7CE2E13, 0x8C90, 0x11d1, 0x9E, 0x7B, 0x00, 0xC0, 0x4F, 0xC3, 0x24, 0xA8}
// class DECLSPEC_UUID("F7CE2E13-8C90-11d1-9E7B-00C04FC324A8")
// WbemDCOMTransport;
// EXTERN_C const IID IID_IWbemConstructClassObject;
DEFINE_GUID!{IID_IWbemConstructClassObject,
0x9ef76194, 0x70d5, 0x11d1, 0xad, 0x90, 0x00, 0xc0, 0x4f, 0xd8, 0xfd, 0xff}
RIDL!{#[uuid(0x9ef76194, 0x70d5, 0x11d1, 0xad, 0x90, 0x00, 0xc0, 0x4f, 0xd8, 0xfd, 0xff)]
interface IWbemConstructClassObject(IWbemConstructClassObjectVtbl): IUnknown(IUnknownVtbl) {
fn SetInheritanceChain(
lNumAntecedents: c_long,
awszAntecedents: *mut LPWSTR,
) -> HRESULT,
fn SetPropertyOrigin(
wszPropertyName: LPCWSTR,
lOriginIndex: c_long,
) -> HRESULT,
fn SetMethodOrigin(
wszMethodName: LPCWSTR,
lOriginIndex: c_long,
) -> HRESULT,
fn SetServerNamespace(
wszServer: LPCWSTR,
wszNamespace: LPCWSTR,
) -> HRESULT,
}}
// extern RPC_IF_HANDLE __MIDL_itf_wbemtran_0000_0008_v0_0_c_ifspec;
// extern RPC_IF_HANDLE __MIDL_itf_wbemtran_0000_0008_v0_0_s_ifspec;