// Licensed under the Apache License, Version 2.0 // or the MIT license // , at your option. // All files in the project carrying such notice may not be copied, modified, or distributed // except according to those terms. use ctypes::{c_uchar, c_ulong}; use shared::guiddef::REFIID; use shared::wtypes::BSTR; use um::oaidl::{IDispatch, IDispatchVtbl}; use um::unknwnbase::IUnknown; use um::winnt::HRESULT; RIDL!{#[uuid(0x29cfbbf7, 0x09e4, 0x4b97, 0xb0, 0xbc, 0xf2, 0x28, 0x7e, 0x3d, 0x8e, 0xb3)] interface IBITSExtensionSetup(IBITSExtensionSetupVtbl): IDispatch(IDispatchVtbl) { fn EnableBITSUploads() -> HRESULT, fn DisableBITSUploads() -> HRESULT, fn GetCleanupTaskName( pTaskName: *mut BSTR, ) -> HRESULT, fn GetCleanupTask( riid: REFIID, ppUnk: *mut *mut IUnknown, ) -> HRESULT, }} RIDL!{#[uuid(0xd5d2d542, 0x5503, 0x4e64, 0x8b, 0x48, 0x72, 0xef, 0x91, 0xa3, 0x2e, 0xe1)] interface IBITSExtensionSetupFactory(IBITSExtensionSetupFactoryVtbl): IDispatch(IDispatchVtbl) { fn GetObject( Path: BSTR, ppExtensionSetup: *mut *mut IBITSExtensionSetup, ) -> HRESULT, }} extern "system" { pub fn BSTR_UserSize( pFlags: *mut c_ulong, Offset: c_ulong, pBstr: *mut BSTR, ) -> c_ulong; pub fn BSTR_UserMarshal( pFlags: *mut c_ulong, pBuffer: *mut c_uchar, pBstr: *mut BSTR, ) -> *mut c_uchar; pub fn BSTR_UserUnmarshal( pFlags: *mut c_ulong, pBuffer: *mut c_uchar, pBstr: *mut BSTR, ) -> *mut c_uchar; pub fn BSTR_UserFree( pFlags: *mut c_ulong, pBstr: *mut BSTR, ); pub fn BSTR_UserSize64( pFlags: *mut c_ulong, Offset: c_ulong, pBstr: *mut BSTR, ) -> c_ulong; pub fn BSTR_UserMarshal64( pFlags: *mut c_ulong, pBuffer: *mut c_uchar, pBstr: *mut BSTR, ) -> *mut c_uchar; pub fn BSTR_UserUnmarshal64( pFlags: *mut c_ulong, pBuffer: *mut c_uchar, pBstr: *mut BSTR, ) -> *mut c_uchar; pub fn BSTR_UserFree64( pFlags: *mut c_ulong, pBstr: *mut BSTR, ); }