class LiveIdentity::Identities
Attributes
peihEnumHandle[R]
Public Class Methods
finalize(peihEnumHandle)
click to toggle source
# File lib/live_identity.rb, line 183 def self.finalize(peihEnumHandle) Proc.new do hr = IDCRL.CloseEnumIdentitiesHandle(peihEnumHandle) raise LiveIdentityError.new(hr) if LiveIdentity::IsError?(hr) end end
new(cachedCredType)
click to toggle source
# File lib/live_identity.rb, line 172 def initialize(cachedCredType) @peihEnumHandle = nil szCachedCredType = nil szCachedCredType = StringToWSTR(cachedCredType) if cachedCredType peihEnumHandle = FFI::MemoryPointer.new(:PassportEnumIdentitiesHandlePointer) hr = IDCRL.EnumIdentitiesWithCachedCredentials(szCachedCredType, peihEnumHandle) raise LiveIdentityError.new(hr) if LiveIdentity::IsError?(hr) @peihEnumHandle = peihEnumHandle.read_ulong ObjectSpace.define_finalizer(self, self.class.finalize(@peihEnumHandle)) end
Public Instance Methods
GetAllIdentityNames()
click to toggle source
# File lib/live_identity.rb, line 200 def GetAllIdentityNames identityNames = [] loop do identityName = GetNextIdentityName() break unless identityName identityNames << identityName end identityNames end
GetNextIdentityName()
click to toggle source
# File lib/live_identity.rb, line 190 def GetNextIdentityName wszMemberName = FFI::MemoryPointer.new(:PLPWSTR) hr = IDCRL.NextIdentity(@peihEnumHandle, wszMemberName) raise LiveIdentityError.new(hr) if LiveIdentity::IsError?(hr) return nil if hr == IDCRL::HRESULT::PPCRL_S_NO_MORE_IDENTITIES memberName = read_wide_string(wszMemberName.read_pointer) LiveIdentity::FreeMemory(wszMemberName.read_pointer) memberName end