# This file was automatically generated by SWIG (http://www.swig.org).
# Version 1.3.35
#
# Don't modify this file, modify the SWIG interface instead.

"""
Access to various registry formats and the Samba registry.
"""

import _registry
import new
new_instancemethod = new.instancemethod
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'PySwigObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static) or hasattr(self,name):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError,name

def _swig_repr(self):
    try: strthis = "proxy of " + self.this.__repr__()
    except: strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

import types
try:
    _object = types.ObjectType
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0
del types


def _swig_setattr_nondynamic_method(set):
    def set_attr(self,name,value):
        if (name == "thisown"): return self.this.own(value)
        if hasattr(self,name) or (name == "this"):
            set(self,name,value)
        else:
            raise AttributeError("You cannot add attributes to %s" % self)
    return set_attr


import credentials
import param
import events
reg_get_predef_name = _registry.reg_get_predef_name
str_regtype = _registry.str_regtype
Registry = _registry.Registry
class reg(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def get_predefined_key_by_name(*args, **kwargs):
        """
        S.get_predefined_key_by_name(name) -> key
        Find a predefined key by name
        """
        return _registry.reg_get_predefined_key_by_name(*args, **kwargs)

    def key_del_abs(*args, **kwargs):
        """
        S.key_del_abs(name) -> None
        Delete a key by absolute path.
        """
        return _registry.reg_key_del_abs(*args, **kwargs)

    def get_predefined_key(*args, **kwargs):
        """
        S.get_predefined_key(hkey_id) -> key
        Find a predefined key by id
        """
        return _registry.reg_get_predefined_key(*args, **kwargs)

    def diff_apply(*args, **kwargs):
        """
        S.diff_apply(filename) -> None
        Apply the diff from the specified file
        """
        return _registry.reg_diff_apply(*args, **kwargs)

    def mount_hive(*args):
        """
        S.mount_hive(key, predef_name) -> None
        Mount the specified key at the specified path.
        """
        return _registry.reg_mount_hive(*args)

    def __init__(self, *args, **kwargs): 
        _registry.reg_swiginit(self,_registry.new_reg(*args, **kwargs))
    __swig_destroy__ = _registry.delete_reg
reg.get_predefined_key_by_name = new_instancemethod(_registry.reg_get_predefined_key_by_name,None,reg)
reg.key_del_abs = new_instancemethod(_registry.reg_key_del_abs,None,reg)
reg.get_predefined_key = new_instancemethod(_registry.reg_get_predefined_key,None,reg)
reg.diff_apply = new_instancemethod(_registry.reg_diff_apply,None,reg)
reg.generate_diff = new_instancemethod(_registry.reg_generate_diff,None,reg)
reg.import_hive_key = new_instancemethod(_registry.reg_import_hive_key,None,reg)
reg.mount_hive = new_instancemethod(_registry.reg_mount_hive,None,reg)
reg_swigregister = _registry.reg_swigregister
reg_swigregister(reg)


def hive_key(*args, **kwargs):
  """S.__init__(location, session_info=None, credentials=None, loadparm_context=None)"""
  return _registry.hive_key(*args, **kwargs)

def open_ldb(*args, **kwargs):
  """open_ldb(location, session_info=None, credentials=None, loadparm_context=None) -> key"""
  return _registry.open_ldb(*args, **kwargs)

def create_dir(*args, **kwargs):
  """create_dir(location) -> key"""
  return _registry.create_dir(*args, **kwargs)

def open_dir(*args, **kwargs):
  """open_dir(location) -> key"""
  return _registry.open_dir(*args, **kwargs)

def open_samba(*args, **kwargs):
  """open_samba() -> reg"""
  return _registry.open_samba(*args, **kwargs)
HKEY_CLASSES_ROOT = _registry.HKEY_CLASSES_ROOT
HKEY_CURRENT_USER = _registry.HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE = _registry.HKEY_LOCAL_MACHINE
HKEY_USERS = _registry.HKEY_USERS
HKEY_PERFORMANCE_DATA = _registry.HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG = _registry.HKEY_CURRENT_CONFIG
HKEY_DYN_DATA = _registry.HKEY_DYN_DATA
HKEY_PERFORMANCE_TEXT = _registry.HKEY_PERFORMANCE_TEXT
HKEY_PERFORMANCE_NLSTEXT = _registry.HKEY_PERFORMANCE_NLSTEXT