Esme Povirk (@madewokherd) commented about dlls/sane.ds/cfg.h:
+{
- int type;
- CHAR name[64];
- int optno;
- union
- {
int int_val;
BOOL bool_val;
CHAR str_val[255];
int fixed_val;
- } value;
- BOOL is_enabled;
+} ScannerOption;
+BOOL save_to_file(WCHAR* path, ScannerOption *option); +BOOL load_from_file(WCHAR* path, int type, CHAR* name, void* value);
This interface seems like it would be inefficient - each setting saved is a complete read and write of the file, and each setting loaded is a complete read.