MSNChat1

From MSNLD Wiki
class MSNChat {
  Channel: Channel;
  Channels: Channels;
  ChatItems: ChatItems;
  enumChannelMode: enumChannelMode;
  enumChannelState: enumChannelState;
  enumChatFormat: enumChatFormat;
  enumConnectionType: enumConnectionType;
  enumConversionFlag: enumConversionFlag;
  enumConversionType: enumConversionType;
  enumEnumType: enumEnumType;
  enumMemberMode: enumMemberMode;
  enumMessageType: enumMessageType;
  enumPrivateMessageType: enumPrivateMessageType;
  enumServerMessageType: enumServerMessageType;
  enumStringType: enumStringType;
  enumUserMode: enumUserMode;
  MSNChatFrame: MSNChatFrame;
  MSNChatHistoryCtl: MSNChatHistoryCtl;
  MSNChatInputCtl: MSNChatInputCtl;
  MSNChatMemberCtl: MSNChatMemberCtl;
  MSNChatProtocolCtl: MSNChatProtocolCtl;
}

class Channel {
  BanMembers: (MemberItems: ChatItems, Set: Long) => void;
  ChangeChannelProperty: (ChannelPropertyName: string, NewChannelProperty) => void;
  ChangeMemberProperty: (MemberPropertyName: string, NewMemberProperty, MemberNickname?, AdditionalData?) => void;
  ChannelName: string;
  ChannelProperty: (ChannelPropertyName: string) => ChatItems;
  ChannelState: enumChannelState;
  ChannelTopic: string;
  DecodedChannelName: string;
  Index: Long;
  JoinChannel: (ChannelName?, Encoded?, ChannelKeyword?) => void;
  KickMember: (MemberNickname: string, Reason?) => void;
  LeaveChannel: () => void;
  ListMembers: (MemberQueryItems: ChatItems) => void;
  MemberCount: Long;
  MemberIdentity: (vMemberNickname: string) => string;
  MemberModes: (vMemberNickname: string) => Long;
  MemberProperty: (MemberPropertyName: string, vMemberNickname?) => ChatItems;
  QueryChannelProperty: (ChannelPropertyName: string) => ChatItems;
  QueryMemberProperty: (MemberPropertyName: string, MemberNickname?) => ChatItems;
  SendInvitation: (Nickname: string) => void;
  SendMessage: (MessageType: Long, Message, RecipientNicknames?, DataMessageTag?) => void;
}

class Channels {
  Add: (vIndex?, vKey?) => Channel;
  Count: Long;
  Item: (vIndex) => Channel;
  Remove: (vIndex) => void;
}

class ChatItems {
  AssociatedType: string;
  InvalidateItems: (ItemName: string) => void;
  Item: (ItemName: string) => void;
  ItemValid: (ItemName: string) => Long;
  ValidItem: any;
}

enum enumChannelMode {
  cmNone =       0x00000000,
  cmPublic =     0x00000000,
  cmPrivate =    0x00000001, // +p
  cmHidden =     0x00000002, // +h
  cmSecret =     0x00000004, // +s
  cmModerated =  0x00000008, // +m
  cmNoExtern =   0x00000010, // +n
  cmTopicOp =    0x00000020, // +t
  cmInvite =     0x00000040, // +i
  cmKnock =      0x00000080, // +u
  cmNoWhisper =  0x00000100, // +w
  cmRegistered = 0x00000200, // +r
  cmService =    0x00000400,
  cmAuthOnly =   0x00000800, // +a
  cmCloneable =  0x00001000, // +d
  cmClone =      0x00002000, // +e
  cmAuditorium = 0x00004000, // +g
  cmNoFormat =   0x00008000,
  cmCreateOnly = 0x10000000,
}

enum enumChatFormat {
  chfNone =      0b000,
  chfBold =      0b001,
  chfItalic =    0b010,
  chfUnderline = 0b100,
}

enum enumChannelState {
  chsClosed,
  chsOpening,
  chsOpen,
}

enum enumConnectionState {
  csDisconnected,
  csConnecting,
  csConnected,
  csLogging,
  csLogged,
  csDisconnecting,
}

enum enumConnectionType {
  ctIRC,
  ctIRCX,
}

enum enumConversionFlag {
  cfNone,
  cfShiftJis,
  cfEastEurope,
}

enum enumConversionSource {
  cvsNormal,
  cvsNickname,
  cvsChannelName,
}

enum enumConversionType {
  cvtToUTF8,
  cvtToUnicode,
  cvtToScreen,
  cvtToProtocol,
}

enum enumEnumType {
  etMessageOfTheDay,
  etUsers,
  etChannels,
  etChannelsTruncated,
  etMembers,
  etInitialMembers,
}

enum enumMemberMode {
  mmNone =             0x000000,
  mmClientIgnored =    0x000001,
  mmNotClientIgnored = 0x000002,
  mmAuthMember =       0x000004,
  mmNotAuthMember =    0x000008,
  mmAway =             0x000010,
  mmNotAway =          0x000020,
  mmSysop =            0x000040,
  mmNotSysop =         0x000080,
  mmOwner =            0x000100, // +q
  mmNotOwner =         0x000200, // -q
  mmHost =             0x000400, // +o
  mmNotHost =          0x000800, // -o
  mmVoice =            0x001000, // +v
  mmNoVoice =          0x002000, // -v
  mmAutoIgnored =      0x004000,
  mmNotAutoIgnored =   0x008000,
  mmSelfHost =         0x010000,
  mmNotSelfHost =      0x020000,
}

enum enumMessageType {
  msgtNormal =      0x0000,
  msgtNotice =      0x0001,
  msgtData =        0x0002,
  msgtDataRequest = 0x0004,
  msgtDataReply =   0x0008,
  msgtDataRaw =     0x0010,
  msgtWhisper =     0x0020,
  msgtThought =     0x0040,
  msgtAction =      0x0080,
  msgtSounds =      0x0100,
  msgtCTCP =        0x0200,
  msgtInfo =        0x0400,
}

enum enumPrivateMessageType {
  pmtNormal =      0x0000,
  pmtNotice =      0x0001,
  pmtData =        0x0002,
  pmtDataRequest = 0x0004,
  pmtDataReply =   0x0008,
  pmtDataRaw =     0x0010,
  pmtAway =        0x0020,
  pmtVersion =     0x0040,
  pmtLagTime =     0x0080,
  pmtLocalTime =   0x0100,
  pmtAction =      0x0200,
  pmtSound =       0x0400,
  pmtCTCP =        0x0800,
  pmtInfo =        0x1000,
}

enum enumUserMode {
  umNone =             0x000000,
  umClientIgnored =    0x000001,
  umNotClientIgnored = 0x000002,
  umAuthUser =         0x000004,
  umNotAuthUser =      0x000008,
  umAway =             0x000010,
  umNotAway =          0x000020,
  umSysop =            0x000040,
  umNotSysop =         0x000080,
  umAdmin =            0x000100,
  umNotAdmin =         0x000200,
  umInvisible =        0x000400, // +i
  umNotInvisible =     0x000800, // -i
  umNotices =          0x001000,
  umNoNotices =        0x002000,
  umWallops =          0x004000,
  umNoWallops =        0x008000,
  umAutoIgnored =      0x010000,
  umNotAutoIgnored =   0x020000,
}

enum enumServerMessageType {
  smtNormal,
  smtNotice,
  smtMessageOfTheDay,
  smtServerInfo,
  smtError,
}

enum enumStringType {
  stServerMessage = 1,
  stChannelAccount,
  stChannelClientData,
  stChannelHostKey,
  stChannelKeyword,
  stChannelLanguage,
  stChannelName,
  stChannelOnJoin,
  stChannelOnPart,
  stChannelOwnerKey,
  stChannelRating,
  stChannelSubject,
  stChannelTopic,
}

class MSNChatFrame {
  BackColor: OLE_COLOR;
  BaseURL: string;
  ButtonBackColor: OLE_COLOR;
  ButtonTextColor: OLE_COLOR;
  Category: string;
  ChatHome: string;
  ChatMode: Long; // UInt32
  Connect: () => void;
  CreateRoom: string;
  Feature: number; // Int32
  HexRoomName: string;
  Locale: string;
  MessageOfTheDay: string;
  MoreRooms: string;
  NickDate: Long;
  Nickname: string;
  PassportProfile: string;
  PassportTicket: string;
  ResLang: string;
  RoomName: string;
  Server: string;
  Topic: string;
  URLBack: string;
  WelcomeMsg: string;
}

class MSNChatHistoryCtl {
  Add: (strText: string, nIndent: Long, nColor: Long, nFormat: Long, bstrFontName: string, vbIgnoreFormatting: boolean, nLinesBefore: Long) => void;
  BackColor: OLE_COLOR;
  BorderStyle: Long;
  Clear: () => void;
  ContextMenuText: string;
  DisplayFont: string;
  DisplayPointSize: Long;
  Enabled: boolean;
  GetTickCount: Long;
  hWnd: Long;
  OnClickURL: (strURL: string) => void; /* Type is EVENT */
  RelativeHeight: Long;
  ScreenNickname: string;
}

class MSNChatInputCtl {
  BackColor: OLE_COLOR;
  BorderStyle: Long;
  DisplayFont: string;
  DisplayFontEffects: Long;
  DisplayPointSize: Long;
  Empty: boolean;
  Enabled: boolean;
  ForeColor: OLE_COLOR;
  GiveFocus: () => void;
  hWnd: Long;
  OnAcceptText: (strContents: string) => void; /* Type is EVENT */
  OnShortCut: (lIndex: Long) => void; /* Type is EVENT */
  Reset: () => void;
  Shortcuts: String;
  Value: string;
}

class MSNChatMemberCtl {
  AddMember: (strScreenNickname: string, strRealNickname: string, nModes: Long, bMe: Long) => void;
  BackColor: OLE_COLOR;
  BorderStyle: Long;
  ChannelModes: Long;
  Clear: () => void;
  ContextMenuText: string;
  ContextMenuTextOp: string;
  DelMember: (strRealNickname: string) => void;
  DisplayFont: string;
  DisplayPointSize: Long;
  Enabled: boolean;
  ForeColor: OLE_COLOR;
  hWnd: Long;
  MemberCount: Long;
  MemberModes: (strRealNickname: string) => Long;
  NicknamePresent: (strRealNickname: string) => boolean;
  OnContextMenu: (Index: Long, SetMode: boolean) => void; /* Type is EVENT */
  OnMemberSelected: (lCount: Long, fIsMe: boolean) => void; /* Type is EVENT */
  RelativeHeight: Long;
  SelectedCount: Long;
  SelectedMembers: (MeIncluded: boolean) => void;
  Text: string;
  UpdateModes: (strRealNickname: string, nNewModes: Long) => void;
  UpdateNickname: (strOldRealNickname: string, strNewScreenNickname: string, strNewReaNickname: string) => void;
}

class MSNChatProtocolCtl {
  AboutBox: () => void;
  AutoIgnoreCount: Long;
  AutoIgnoreEnabled: Long;
  AutoIgnoreInterval: Long;
  AutoIgnorePeriod: Long;
  BanUsers: (UserItems: ChatItems, Set: Long, Reason?, Duration?) => void;
  CancelConnectLogin: () => void;
  ChangeNickname: (NewDecodedNickname: string) => void;
  ChangeUserProperty:(UserPropertyName: string, NewUserProperty, Nickname?) => void;
  ChannelProperty: (ChannelPropertyName: string, ChannelName?) => ChatItems;
  Channels: Channels;
  Connect: (ServerName: string) => void;
  ConnectionState: enumConnectionState;
  ConnectionType: enumConnectionType;
  CoversionFlags: Long;
  ConvertedString: (ConversionType: enumConversionType, ConversionSource: enumConversionSource, Source: string, PostProcess: Long, ConnectionType?) => string;
  CreateAndJoing: (ServerName: string, DecodedNickname: string, UserName?, Category?, Topic?, Locale?, ChannelName?, Encoded?, RealName?, Password?, SecurityPackages?) => void;
  DecodedNickname: string;
  Disconnect: () => void;
  IgnoreUsers: (UserItems: ChatItems, Set: Long) => void;
  Join: (ServerName: string, DecodedNickname: string, UserName?, ChannelName?, Encoded?, RealName?, Password?, SecurityPackages?) => void;
  KickUser: (Nickname: string, Reason?) => void;
  KillChannel: (ChannelName: string, Reason?) => void;
  ListChannels: (ChannelQueryItems: ChatItems) => void;
  ListUsers: (UserQueryItems: ChatItems) => void;
  MaxStringLength: (StringType: enumStringType) => Long;
  NewChatItems: ChatItems;
  Nickname: string;
  OnAddMember: (Channel: Channel, Nickname: string, MemberItems: ChatItems) => void; /* Type is EVENT */
  OnBeginEnumeration: (Channel: Channel, EnumType: enumEnumType) => void; /* Type is EVENT */
  OnChannelError: (Channel: Channel, ErrorCode: Long, Descriptiong: string) => void; /* Type is EVENT */
  OnChannelProperty: (Channel: Channel, ChannelItems: ChatItems) => void; /* Type is EVENT */
  OnChannelPropertyChanged: (Channel: Channel, ModifierNickname: string, ChannelPropertyName: string, OldChannelProperty, NewChannelProperty) => void; /* Type is EVENT */
  OnChannelState: (Channel: Channel, NewChannelState: enumChannelState) => void; /* Type is EVENT */
  OnConnectionError: (ErrorCode: Long, Description: string, ChannelName) => void; /* Type is EVENT */
  OnConnectionState: (NewConnectionState: enumConnectionState) => void; /* Type is EVENT */
  OnDelMember: (Channel: Channel, Nickname: string) => void; /* Type is EVENT */
  OnEndEnumeration: (Channel: Channel, EnumType: enumEnumType) => void; /* Type is EVENT */
  OnInvitation: (ChannelName: string, InviterItems: ChatItems) => void; /* Type is EVENT */
  OnKnock: (ChannelName: string, KnockerItems: ChatItems, ErrorCode: Long) => void; /* Type is EVENT */
  OnMemberKicked: (Channel: Channel, KickedNickname: string, KickerNickname: string, Reason: string) => void; /* Type is EVENT */
  OnMemberProperty: (Channel: Channel, MemberItems: ChatItems) => void; /* Type is EVENT */
  OnMemberPropertyChanged: (Channel: Channel, ModifiedNickname: string, ModifierNickname: string, MemberPropertyName: string, OldMemberProperty, NewMemberProperty) => void; /* Type is EVENT */
  OnMessage: (Channel: Channel, SenderNickname: string, MessageType: Long, Message, ReceiptientNicknames, DataMessageTag) => void; /* Type is EVENT */
  OnPrivateMessage: (SenderNickname: string, PrivateMessageType: Long, Message, DataMessageTag) => void; /* Type is EVENT */
  OnProtocolMessage: (MessagePrefix: string, MessageCommand: string, MessageParameters, EnableDefault: boolean) => void; /* Type is EVENT */
  OnServerProperty: (ServerItems: ChatItems) => void; /* Type is EVENT */
  OnServerTextMessage: (ServerMessageType: enumServerMessageType, Text: string) => void; /* Type is EVENT */
  OnUserProperty: (UserItems: ChatItems) => void; /* Type is EVENT */
  OnUserPropertyChanged: (ModifiedNickname: string, ModifierNickname: string, UserPropertyName: string, OldUserProperty, NewUserProperty) => void; /* Type is EVENT */
  OpeningChannels: Long;
  ProcessProtocolMessages: Long;
  PropertyAccessTimeOut: Long;
  QueryChannelProperty: (ChannelPropertyName: string, ChannelName?) => void;
  QueryServerProperty: (ServerPropertyName: string) => void;
  QueryUserProperty: (UserPropertyName: string, Nickname?) => void;
  SendInvitation: (Nickname: string, ChannelName?) => void;
  SendPrivateMessage: (PrivateMessageType: Long, Message, RecipientNicknames, DataMessageTag?) => void;
  SendProtocolMessage: (TextMessage: string) => void;
  ServerName: string;
  ServerProperty: (ServerPropertyName: string) => ChatItems;
  SetAway: (Away: Long, TextMessage?) => void;
  SetPassportInformation: (PassportTicket: string, PassportProfile: string) => void;
  UserProperty: (UserPropertyName: string, Nickname?) => ChatItems;
}

type OLE_COLOR = number; /* Long Integer  */
type Long = number; /* 32-bit Integer */