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 */