* fhandler.h (fhandler_base::set_name): Make virtual.
(class fhandler_registry): Add wow64 and prefix_len members. Declare set_name method. * fhandler_proc.cc (PROC_REGISTRY32): Define. (PROC_REGISTRY64): Define. (proc_listing): Add "registry32" and "registry64" elements. (proc_fhandlers): Add corresponding FH_REGISTRY values. * fhandler_registry.cc (registry_len): Drop static value in favor of class member prefix_len. Use preifx_len instead of registry_len throughout. (fhandler_registry::set_name): Define. Set wow64 and prefix_len according to directory prefix. (fhandler_registry::fhandler_registry): Set wow64 and prefix_len to default values. (open_key): Add wow64 argument. Handle wow64 in call to RegOpenKeyEx. Use fhandler_registry member wow64 in this place throughout.
This commit is contained in:
@@ -139,7 +139,7 @@ class fhandler_base
|
||||
class fhandler_base *archetype;
|
||||
int usecount;
|
||||
|
||||
void set_name (path_conv &pc);
|
||||
virtual void set_name (path_conv &pc);
|
||||
int error () const {return pc.error;}
|
||||
void set_error (int error) {pc.error = error;}
|
||||
bool exists () const {return pc.exists ();}
|
||||
@@ -1266,8 +1266,11 @@ class fhandler_registry: public fhandler_proc
|
||||
{
|
||||
private:
|
||||
char *value_name;
|
||||
DWORD wow64;
|
||||
int prefix_len;
|
||||
public:
|
||||
fhandler_registry ();
|
||||
void set_name (path_conv &pc);
|
||||
int exists();
|
||||
int readdir (DIR *, dirent *) __attribute__ ((regparm (3)));
|
||||
_off64_t telldir (DIR *);
|
||||
|
Reference in New Issue
Block a user