private static bool GetAccountNameAndType(SecurityIdentifier sid, out string domainName, out string accountName) { string systemName = null; byte[] array = new byte[sid.BinaryLength]; sid.GetBinaryForm(array, 0); uint capacity = 64U; uint capacity2 = 64U; StringBuilder stringBuilder = new StringBuilder((int)capacity); StringBuilder stringBuilder2 = new StringBuilder((int)capacity2); int num = 0; int num2; if (!DatabaseEvent.LookupAccountSid(systemName, array, stringBuilder, ref capacity, stringBuilder2, ref capacity2, out num2) && (num = Marshal.GetLastWin32Error()) == 122) { stringBuilder = new StringBuilder((int)capacity); stringBuilder2 = new StringBuilder((int)capacity2); DatabaseEvent.LookupAccountSid(systemName, array, stringBuilder, ref capacity, stringBuilder2, ref capacity2, out num2); num = Marshal.GetLastWin32Error(); } if (num == 0) { domainName = stringBuilder2.ToString(); accountName = stringBuilder.ToString(); return(true); } if (num == 8) { throw MapiExceptionHelper.OutOfMemoryException("LookupAccountSid failure."); } accountName = "=unknown="; domainName = "=unknown="; return(false); }
void IConfigurable.CopyChangesFrom(IConfigurable source) { DatabaseEvent databaseEvent = source as DatabaseEvent; if (databaseEvent == null) { throw new NotImplementedException(string.Format("Cannot copy changes from type {0}.", source.GetType())); } this.mapiEvent = databaseEvent.mapiEvent; this.databaseId = databaseEvent.databaseId; this.server = databaseEvent.server; this.isDatabaseCopyActive = databaseEvent.isDatabaseCopyActive; }