//+------------------------------------------------------------------+ //| winreg.mqh | //| Copyright 2000-2025, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #include #include //--- struct VALENTW { PVOID ve_valuename; uint ve_valuelen; uchar offset1[4]; PVOID ve_valueptr; uint ve_type; uchar offset2[4]; }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #import "advapi32.dll" int AbortSystemShutdownW(string machine_name); uint CheckForHiberboot(uchar &hiberboot,uchar clear_flag); uint InitiateShutdownW(string machine_name,string message,uint grace_period,uint shutdown_flags,uint reason); int InitiateSystemShutdownExW(string machine_name,string message,uint timeout,int force_apps_closed,int reboot_after_shutdown,uint reason); int InitiateSystemShutdownW(string machine_name,string message,uint timeout,int force_apps_closed,int reboot_after_shutdown); int RegCloseKey(HANDLE key); int RegConnectRegistryExW(const string machine_name,HANDLE key,uint Flags,HANDLE &result); int RegConnectRegistryW(const string machine_name,HANDLE key,HANDLE &result); int RegCopyTreeW(HANDLE key_src,const string sub_key,HANDLE key_dest); int RegCreateKeyExW(HANDLE key,const string sub_key,PVOID reserved,string class_name,uint options,uint desired,PVOID security_attributes,HANDLE &result,uint &disposition); int RegCreateKeyTransactedW(HANDLE key,const string sub_key,PVOID reserved,string class_name,uint options,uint desired,PVOID security_attributes,HANDLE &result,uint &disposition,HANDLE transaction,PVOID extended_parameter); int RegCreateKeyW(HANDLE key,const string sub_key,HANDLE &result); int RegDeleteKeyExW(HANDLE key,const string sub_key,uint desired,PVOID reserved); int RegDeleteKeyTransactedW(HANDLE key,const string sub_key,uint desired,PVOID reserved,HANDLE transaction,PVOID extended_parameter); int RegDeleteKeyValueW(HANDLE key,const string sub_key,const string value_name); int RegDeleteKeyW(HANDLE key,const string sub_key); int RegDeleteTreeW(HANDLE key,const string sub_key); int RegDeleteValueW(HANDLE key,const string value_name); int RegDisablePredefinedCache(void); int RegDisablePredefinedCacheEx(void); int RegDisableReflectionKey(HANDLE base); int RegEnableReflectionKey(HANDLE base); int RegEnumKeyExW(HANDLE key,uint index,ushort &name[],uint &name_size,PVOID reserved,ushort &class_name[],uint &class_size,FILETIME &last_write_time); int RegEnumKeyW(HANDLE key,uint index,ushort &name[],uint &name_size); int RegEnumValueW(HANDLE key,uint index,ushort &value_name[],uint &value_name_size,PVOID reserved,uint &type,uchar &data[],uint &data_size); int RegFlushKey(HANDLE key); int RegGetKeySecurity(HANDLE key,uint SecurityInformation,SECURITY_DESCRIPTOR &security_descriptor,uint &security_descriptor_size); int RegGetValueW(HANDLE key,const string sub_key,const string value,uint flags,uint &type,uchar &data[],uint &data_size); int RegLoadAppKeyW(const string file,HANDLE &result,uint desired,uint options,PVOID reserved); int RegLoadKeyW(HANDLE key,const string sub_key,const string file); int RegLoadMUIStringW(HANDLE key,const string value,ushort &out_buf[],uint &out_buf_size,uint &data,uint flags,const string directory); int RegNotifyChangeKeyValue(HANDLE key,int watch_subtree,uint notify_filter,HANDLE event,int asynchronous); int RegOpenCurrentUser(uint desired,HANDLE &result); int RegOpenKeyExW(HANDLE key,const string sub_key,uint options,uint desired,HANDLE &result); int RegOpenKeyTransactedW(HANDLE key,const string sub_key,uint options,uint desired,HANDLE &result,HANDLE transaction,PVOID extended_paremeter); int RegOpenKeyW(HANDLE key,const string sub_key,HANDLE &result); int RegOpenUserClassesRoot(HANDLE token,uint options,uint desired,HANDLE &result); int RegOverridePredefKey(HANDLE key,HANDLE new_key); int RegQueryInfoKeyW(HANDLE key,string class_name,uint &class_size,PVOID reserved,uint &sub_keys,uint &max_sub_key_len,uint &max_class_len,uint &values,uint &max_value_name_len,uint &max_value_len,uint &security_descriptor,FILETIME &last_write_time); int RegQueryMultipleValuesW(HANDLE key,VALENTW &val_list[],uint num_vals,ushort &value_buf[],uint &totsize); int RegQueryReflectionKey(HANDLE base,int &is_reflection_disabled); int RegQueryValueExW(HANDLE key,const string value_name,PVOID reserved,uint &type,uchar &data[],uint &data_size); int RegQueryValueW(HANDLE key,const string sub_key,uchar &data[],uint &data_size); int RegRenameKey(HANDLE key,const string sub_key_name,const string new_key_name); int RegReplaceKeyW(HANDLE key,const string sub_key,const string new_file,const string old_file); int RegRestoreKeyW(HANDLE key,const string file,uint flags); int RegSaveKeyExW(HANDLE key,const string file,PVOID security_attributes,uint flags); int RegSaveKeyW(HANDLE key,const string file,PVOID security_attributes); int RegSetKeySecurity(HANDLE key,uint SecurityInformation,SECURITY_DESCRIPTOR &security_descriptor); int RegSetKeyValueW(HANDLE key,const string sub_key,const string value_name,uint type,const uchar &data[],uint data); int RegSetValueExW(HANDLE key,const string value_name,PVOID reserved,uint type,const uchar &data[],uint data_size); int RegSetValueW(HANDLE key,const string sub_key,uint type,const ushort &data[],uint data_size); int RegUnLoadKeyW(HANDLE key,const string sub_key); #import //+------------------------------------------------------------------+