1 // Licensed under the Apache License, Version 2.0 2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 4 // All files in the project carrying such notice may not be copied, modified, or distributed 5 // except according to those terms. 6 use shared::winerror::HRESULT; 7 use shared::wtypes::BSTR; 8 use um::oaidl::{IDispatch, IDispatchVtbl}; 9 use um::wbemdisp::{ISWbemObject, ISWbemServices}; 10 // extern RPC_IF_HANDLE __MIDL_itf_wbemads_0000_0000_v0_0_c_ifspec; 11 // extern RPC_IF_HANDLE __MIDL_itf_wbemads_0000_0000_v0_0_s_ifspec; 12 // EXTERN_C const IID LIBID_WMIEXTENSIONLib; 13 // EXTERN_C const IID IID_IWMIExtension; 14 DEFINE_GUID!{IID_IWMIExtension, 15 0xadc1f06e, 0x5c7e, 0x11d2, 0x8b, 0x74, 0x00, 0x10, 0x4b, 0x2a, 0xfb, 0x41} 16 RIDL!{#[uuid(0xadc1f06e, 0x5c7e, 0x11d2, 0x8b, 0x74, 0x00, 0x10, 0x4b, 0x2a, 0xfb, 0x41)] 17 interface IWMIExtension(IWMIExtensionVtbl): IDispatch(IDispatchVtbl) { 18 fn get_WMIObjectPath( 19 strWMIObjectPath: *mut BSTR, 20 ) -> HRESULT, 21 fn GetWMIObject( 22 objWMIObject: *mut *mut ISWbemObject, 23 ) -> HRESULT, 24 fn GetWMIServices( 25 objWMIServices: *mut *mut ISWbemServices, 26 ) -> HRESULT, 27 }} 28 DEFINE_GUID!{CLSID_WMIExtension, 29 0xf0975afe, 0x5c7f, 0x11d2, 0x8b, 0x74, 0x00, 0x10, 0x4b, 0x2a, 0xfb, 0x41} 30 // class DECLSPEC_UUID("f0975afe-5c7f-11d2-8b74-00104b2afb41") 31 // WMIExtension; 32 // extern RPC_IF_HANDLE __MIDL_itf_wbemads_0000_0002_v0_0_c_ifspec; 33 // extern RPC_IF_HANDLE __MIDL_itf_wbemads_0000_0002_v0_0_s_ifspec; 34 // unsigned long __RPC_USER BSTR_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); 35 // unsigned char * __RPC_USER BSTR_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); 36 // unsigned char * __RPC_USER BSTR_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); 37 // void __RPC_USER BSTR_UserFree( __RPC__in unsigned long *, __RPC__in BSTR * ); 38 // unsigned long __RPC_USER BSTR_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * ); 39 // unsigned char * __RPC_USER BSTR_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); 40 // unsigned char * __RPC_USER BSTR_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); 41 // void __RPC_USER BSTR_UserFree64( __RPC__in unsigned long *, __RPC__in BSTR * ); 42