Last active
December 18, 2015 15:39
-
-
Save juntalis/5805746 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| namespace RegUnedit.LibConfig | |
| { | |
| internal sealed class Module : IDisposable | |
| { | |
| ... | |
| private void loadFunctions(HMODULE hmod) | |
| { | |
| if(mapProcs != null) { throw new Exception("This should not happen."); } | |
| mapProcs = new SignatureMap(); | |
| foreach (MemberInfo member in typeof(Signatures).GetMembers(BindingFlags.NonPublic)) { | |
| string funcName = member.Name; | |
| if(mapProcs.ContainsKey(funcName)) continue; | |
| FARPROC funcPtr = Interop.GetProcAddress(hmod, funcName); | |
| Debug.Print("{0} = 0x{1:X}", funcName, mapProcs[funcName].ToInt32()); | |
| } | |
| } | |
| ... | |
| } | |
| } | |
| using System; | |
| using System.Runtime.InteropServices; | |
| namespace RegUnedit.LibConfig | |
| { | |
| internal static class Signatures | |
| { | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| internal delegate void config_set_auto_convert( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.Bool)] bool flag | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_get_auto_convert( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.I4)] | |
| internal delegate ConfigErrorCode config_read_string( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string str | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.I4)] | |
| internal delegate ConfigErrorCode config_read_file( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string filename | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_write_file( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)]string filename | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| internal delegate void config_set_destructor( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.FunctionPtr)] TypeDecls.config_t_destructor destructor | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| internal delegate void config_set_include_dir( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string include_dir | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| internal delegate void config_init( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| internal delegate void config_destroy( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.I4)] | |
| internal delegate Int32 config_setting_get_int( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.I8)] | |
| internal delegate Int64 config_setting_get_int64( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.R8)] | |
| internal delegate Double config_setting_get_float( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate Boolean config_setting_get_bool( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStr)] | |
| internal delegate String config_setting_get_string( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_lookup_int( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.LPStr)] string name, | |
| /*[MarshalAs(UnmanagedType.I4)]*/ ref int value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_lookup_int64( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.LPStr)] string name, | |
| /*[MarshalAs(UnmanagedType.I8)]*/ ref Int64 value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_lookup_float( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.LPStr)] string name, | |
| /*[MarshalAs(UnmanagedType.R8)]*/ ref double value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_lookup_bool( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.LPStr)] string name, | |
| /*[MarshalAs(UnmanagedType.Bool)]*/ ref bool value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_lookup_string( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.LPStr)] string name, | |
| /*[MarshalAs(UnmanagedType.LPStr)]*/ ref string value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_set_int( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_set_int64( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I8)] Int64 value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_set_float( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.R8)] Double value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_set_bool( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.Bool)] bool value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_set_string( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.LPStr)] string value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_set_format( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I2)] ConfigFormat format | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.I2)] | |
| internal delegate ConfigFormat config_setting_get_format( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.I4)] | |
| internal delegate Int32 config_setting_get_int_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.I8)] | |
| internal delegate Int64 config_setting_get_int64_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.R8)] | |
| internal delegate Double config_setting_get_float_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate Boolean config_setting_get_bool_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStr)] | |
| internal delegate String config_setting_get_string_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_setting_set_int_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx, | |
| [MarshalAs(UnmanagedType.I4)] Int32 value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_setting_set_int64_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx, | |
| [MarshalAs(UnmanagedType.I8)] Int64 value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_setting_set_float_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx, | |
| [MarshalAs(UnmanagedType.R8)] Double value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_setting_set_bool_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx, | |
| [MarshalAs(UnmanagedType.Bool)] Boolean value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_setting_set_string_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.I4)] int idx, | |
| [MarshalAs(UnmanagedType.LPStr)] String value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.I4)] | |
| internal delegate int config_setting_index( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.I4)] | |
| internal delegate int config_setting_length( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_setting_get_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.U4)] uint idx | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_setting_get_member( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.LPStr)] string name | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_setting_add( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.LPStr)] string name, | |
| [MarshalAs(UnmanagedType.I4)] ConfigValueType type | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_remove( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.LPStr)] string name | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_setting_remove_elem( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| [MarshalAs(UnmanagedType.U4)] uint idx | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| internal delegate void config_setting_set_hook( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_setting_t setting, | |
| IntPtr hook | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_lookup( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string path | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.LPStruct)] | |
| internal delegate TypeDecls.config_setting_t config_lookup_from( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string path | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_lookup_int( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string path, | |
| /*[MarshalAs(UnmanagedType.I4)]*/ ref Int32 value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_lookup_int64( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string path, | |
| /*[MarshalAs(UnmanagedType.I8)]*/ ref Int64 value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_lookup_float( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string path, | |
| /*[MarshalAs(UnmanagedType.R8)]*/ ref Double value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_lookup_bool( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string path, | |
| /*[MarshalAs(UnmanagedType.Bool)]*/ ref Boolean value | |
| ); | |
| [UnmanagedFunctionPointer(CallingConvention.Cdecl)] | |
| [return: MarshalAs(UnmanagedType.Bool)] | |
| internal delegate bool config_lookup_string( | |
| /*[MarshalAs(UnmanagedType.LPStruct)]*/ ref TypeDecls.config_t config, | |
| [MarshalAs(UnmanagedType.LPStr)] string path, | |
| /*[MarshalAs(UnmanagedType.LPStr)]*/ ref String value | |
| ); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment