1
1
use crate :: interfaces:: iunknown:: IUnknown ;
2
2
use crate :: sys:: {
3
3
GetModuleFileNameA , GetModuleHandleA , RegCloseKey , RegCreateKeyExA , RegDeleteKeyA ,
4
- RegSetValueExA , ERROR_SUCCESS , HRESULT , IID , SELFREG_E_CLASS , S_OK ,
4
+ RegSetValueExA , ERROR_SUCCESS , HRESULT , IID , LSTATUS , SELFREG_E_CLASS , S_OK ,
5
5
} ;
6
6
7
7
use std:: convert:: TryInto ;
@@ -50,7 +50,7 @@ pub fn unregister_keys(registry_keys_to_remove: Vec<RegistryKeyInfo>) -> HRESULT
50
50
const HKEY_CLASSES_ROOT : * mut c_void = 0x8000_0000 as * mut c_void ;
51
51
const KEY_ALL_ACCESS : u32 = 0x000F_003F ;
52
52
const REG_OPTION_NON_VOLATILE : u32 = 0x00000000 ;
53
- fn create_class_key ( key_info : & RegistryKeyInfo ) -> Result < * mut c_void , i32 > {
53
+ fn create_class_key ( key_info : & RegistryKeyInfo ) -> Result < * mut c_void , LSTATUS > {
54
54
let hk_result = std:: ptr:: null_mut :: < c_void > ( ) ;
55
55
let lp_class = std:: ptr:: null_mut :: < u8 > ( ) ;
56
56
let lp_security_attributes = std:: ptr:: null_mut :: < c_void > ( ) ;
@@ -76,7 +76,10 @@ fn create_class_key(key_info: &RegistryKeyInfo) -> Result<*mut c_void, i32> {
76
76
}
77
77
78
78
const REG_SZ : u32 = 1 ;
79
- fn set_class_key ( key_handle : * mut c_void , key_info : & RegistryKeyInfo ) -> Result < * mut c_void , i32 > {
79
+ fn set_class_key (
80
+ key_handle : * mut c_void ,
81
+ key_info : & RegistryKeyInfo ,
82
+ ) -> Result < * mut c_void , LSTATUS > {
80
83
let result = unsafe {
81
84
RegSetValueExA (
82
85
key_handle,
@@ -99,7 +102,7 @@ fn set_class_key(key_handle: *mut c_void, key_info: &RegistryKeyInfo) -> Result<
99
102
Ok ( key_handle)
100
103
}
101
104
102
- fn add_class_key ( key_info : & RegistryKeyInfo ) -> i32 {
105
+ fn add_class_key ( key_info : & RegistryKeyInfo ) -> LSTATUS {
103
106
let key_handle = match create_class_key ( key_info) {
104
107
Ok ( key_handle) => key_handle,
105
108
Err ( e) => {
@@ -117,7 +120,7 @@ fn add_class_key(key_info: &RegistryKeyInfo) -> i32 {
117
120
unsafe { RegCloseKey ( key_handle) }
118
121
}
119
122
120
- fn remove_class_key ( key_info : & RegistryKeyInfo ) -> i32 {
123
+ fn remove_class_key ( key_info : & RegistryKeyInfo ) -> LSTATUS {
121
124
unsafe { RegDeleteKeyA ( HKEY_CLASSES_ROOT , key_info. key_path . as_ptr ( ) ) }
122
125
}
123
126
0 commit comments