def from_obj (cls, obj, cred=None): obj = adsi._get_good_ret (obj) klass = obj.Class.encode ("ascii") class_name = "%s" % klass[0].upper () + klass[1:] mixin_class_name = "_" + class_name if mixin_class_name in _mixins: bases = [_mixins[mixin_class_name], cls] else: bases = [cls] if class_name not in cls.klasses: cls.klasses[class_name] = type (class_name, tuple (bases), dict (obj=obj, cred=cred)) return cls.klasses[class_name] (obj)
def _get_object (self, rdn): container = exc.wrapped (self.com_object.QueryInterface, adsi.IID_IADsContainer) obj = exc.wrapped (container.GetObject, None, rdn) return adsi._get_good_ret (obj)
def __init__(self, obj, cred=None): utils._set(self, "com_object", adsi._get_good_ret(obj)) utils._set(self, "cred", cred)