netChatForm NetChat Form1% receiveBox sendBox exitButton SSCommand E&xit userPicture cancelButton SSCommand Ca&ncel connectButton SSCommand &Connect disconnectButton SSCommand &Disconnect userPictureDrop userAddress userAddressLabel Internet Address userLoginDay userName userLoginTimeLabel Login Time userLoginTime userConnLabel Connection Number userConn About SSCommand &About Rescan SSCommand &Rescan ServerNameBox BinderyObjList Courier Line2 Line1 Label10 File Server: Label2 Object Name List1_Click Form_Click @ Form_Load ccode ScanBinderyObject< searchOName OT_WILD oNameG oTypej oHasProp/ oFlag oSecuritye Command1_Click oNameAsY OT_USER| strippedName/ OT_USER_GROUP OT_PRINT_QUEUEk OT_FILE_SERVER OT_JOB_SERVER OT_GATEWAY OT_PRINT_SERVER OT_ARCHIVE_QUEUE OT_ARCHIVE_SERVER< OT_JOB_QUEUE OT_ADMINISTRATION OT_REMOTE_BRIDGE_SERVER* hasProperties List1 ScanBinderyz List2_Click fileServerName logTime connIDB GetFileServerName newFSName ServerNameBox BinderyObjList( ServerNameBox_Click ListCountv BinderyObjectList prefServer GetConnectionID SetPreferredConnectionID ServerNameBox_DblClick Command3_Click< RescanButton_Click Scanning UnloadT Form2 CloseButton_Click Command2_Click AboutButton_ClickQ Label1_Click MousePointer Form1m DrawLinest CheckDLLVersionss success GetDLLVersion majorVer= minorVerG revLevel betaLevelr False CrLfl BinderyObjList_Click ScreenJ oHasProps OT_NAS_SNA_GATEWAY OT_TIME_SYNCHRONIZATION_SERVER; OT_ARCHIVE_SERVER_DYNAMIC_SAPM OT_ADVERTISING_PRINT_SERVER2 OT_BTRIEVE_VAPd OT_PRINT_QUEUE_USER Codez garbageq requests{ objectType bindery` objects FREDm DLLName expMajorVer expMinorVer expRevLevel& expBetaLevel% expMajVer expMinVer, expRev expBeta expRefY above NWGetDLLVersion NWScanBinderyObject NWGetConnectionID NWGetFileServerName NWSetPreferredConnectionID NWCheckDLLVersions- NWScanObject connK NWGetConnectionHandleQ server Thenserver NWCallsInit@ searchName betaLevelasi Label9_Clicky Label8_Click Label7_Click Label6_Click Label5_Click Label4_Click Label3_Click Label2_Click Label15_Click Label14_Click Label11_Click Label10_Click index. GetConnections Drive1_Change File1_Click file1 Path) Drive1 Dir1_Change drvList_Change dirListF drvList Drive[ dirList_Change+ ListIndexj filList filList_ClickW filList_DragDrop$ source Control Command3D1_Click Exit_Click7 Rescan_Click About_Click BinderyObjList_DragDrop- FileListBox> sendForm fileLabelb fileName TagIndex TabIndex BinderyObjList_DblCLick filList_MouseDown ButtonI Shift/ dragNameK LEFT_BUTTONV SendMessageq LB_GETCURSEL dragFilew filList_MouseMove filList_PathChange oldCursor dragCursor6 LoadCursor hInstance GetWindowWordS GWW_HINSTANCE SetCursor IDC_SIZE filList_DblClick| filList_KeyDown KeyCodeh filList_KeyPressv KeyAsciiK filList_KeyUp LB_DIR DDL_READWRITE DDL_READONLY DDL_HIDDEN DDL_SYSTEM DDL_DIRECTORY DDL_ARCHIVE DDL_POSTMSGS: DDL_DRIVES DDL_EXCLUSIVE fileType! result< fileNamesW userNamed NWGetFileServerInformationc maxConns @ ScanUsers NWGetConnectionInformation[ connection" loginTime objectName objectIDm USER_INFO& EndConns VScroll1_Change dirname ATTR_NORMAL diname remfilList ListBox findFiles inPathF right_button filList_MouseUpS GetDC GetTextMetrics TEXTMETRICm cyChar tmHeight> tmExternalLeading GetWindowRectz ReleaseL bottom ReleaseDC# DragIcon3 temp3 dropfileI image1 Picture Selected LB_FIND_STRING LB_ERR LB_FINDSTRINGG BinderyObjList_MouseMoveB filList_DragOver State BinderyObjList_DragOverV userform NWGetConnectionl netWareUser+ netWareUsersA connNum connNumber nIndexp nwUser formatString nwYear nwMonth nwDay nwTime userPicture_Click: Text2_Change userConn_Click userLoginTimeLabel_Click userLoginTime_Clicky userButton_Click\ userPicture Visible Picture1_Click Picture1_DragDrop, userLoginTime userConn userPictureDrop_Clickg userPictureDrop_DragDropp binderyForm userName_Click nwLoginTime nwConny userLoginDay NWGetInternetAddressR inetAddress Inter InternetAddressM networkA wTime userAddress userPictureDrop_DblClick IPXInitialize TaskId^ maxECBs maxPacketSize macPacketSizew IPXGetMaxPacketSize$ Form_Unload4 Cancel| IPXSPXDeinit aboutFormq netFilerFormp GetIPXSPX InitIPXSPX+ DeInitIPXSPX IPXOpenSocket SocketNumberX shortLivedo listenSocketNumber IPXCloseSocket ThenExit9 IPXSPXInit@ socketNumK AlreadyRunning FirsthWnd FirstChildhWnd FindWindowV Found] another running application class instancec already mustI matchF program& which used7 InitApplication/ InitInstance GetLastActivePopup BringWindowToTopA Bring# mainj windowe active SPXInitialize\ majRevNumber minRevNumberV maxConnections< maxConnAvailable* SPX_INSTALLED title CheckUnique Caption formName Handle ShowWindowB SFocus formN Handz Circle1_ClickIn Circle1_ClickOut Circle1_DragDropN IpxSpx1_Click IpxSpx1_Event_1 IpxSpx1_DragOverL IpxSpx1_DragDrop5 Timer1_Timeru IpxSpx1_Event1 FooInitT ecbForm0 Circle1_DragOver Circle1_RClickIn Circle1_Timer IPXSPX1_ClickIn ipxSpx1_Timer[ Comm1_OnComm~ ipxSpx1 InSocket OutSocketQ sendSocketNumber ipxSpx1_Receivex ipxSpx1_Send Inputb ipxSpx2_Receive ipxSpx1_ListenConnection, ipxSpx1_EstablishConnection ipxSpx1_ConnectionT Received NetEventz ipxSpx1_SpxReceive ipxSpx1_SpxSend ipxSpx1_SpxConnection EndButton_Click7 sendButton_Click= Address netList AddressButton_Click OutputD Text1_Change} Text1_KeyDown Text1_KeyPress MSComm1 PortOpen EchoQ sendBox_Change sendBox_KeyPress receiveBox_Click@ receiveBox" sendBox NWGetConnectionNumber myInetAddress netChatForm connectButton_Click disconnectButton_Click connectButton Enable disconnectButton Enabled NetDatah IPXSPX_CONNECT IPXSPX_DISCONNECT NetDatn cancelButton_Click IPXSPX_DATA Right ConnectionRequest nwString connectionLabel netChatConnectC netChatConnection subroutine procedure DisconnectionRequest_ netChatDisConnectiong disconnectionLabel SocketString IpxSpxConnect( netChatStateW BinderyObjList_KeyPress BinderObjList DblClk DblClick connectOkx Defaultj SetFocusEnd nwConnNumber- NetString cancelButton exitButton_Click exitButton networkThen ConnectState DisConnectState+ @ DataState IPXSPX_SENDCONNECTION IPXSPX_SENDCONN IPXSPX_ IPXSPX_RECEIVECONN netChat connectionOKH FormatInternetAddress inString[ outString InAddress caseIfB IPXSPX_SEND receiveBox_Change yourInetAddress& Strin receiveBox_KeyPress_ netVal UserInput receveBox GetCaretPos6 lpPoint POINTAPI NTAPI WindowState connListBuffer connListSize numConnections NWGetConnectionListn logged< users# ConvertInputToData netChatPtr NetChatData NetChatInput etChatPtr checkSum length header packetType destination socket netChatPtrf IPXSPX_RECEIVECONNMODALn ipxSpx1_ReceiveData. ipxSpx1_SendData RemoteName LocalName userAddress_Click ReceivedFrom ReceivedSocket LinkType ipxSpx1_LinkEvent Channel ipx1_LinkEventO ipx1_ReceiveData ipx1_Sendq ipx1_SendData ReceiveSocket ReceivedFro Event ParseIntererAddress ParseInternetAddress NWGetFileSystemStats statBuffer FILESYS_STATS FILE_SYS_STATS% ipx2_ReceiveData ipx2_SendData About_Click BinderyObjList_DblCLick pretty print the login timer mm-dd-yyyy pretty print the login date, pretty print the internet addressa Error getting internet addresss ipx2.RemoteName = yourInetAddress.network & yourInetAddress.node & Chr$(&H55) & Chr$(&H54) ParseInternetAddress formatString ipx1.RemoteName = Chr$(&HFF) & Chr$(&HFF) & Chr$(&HFF) & Chr$(&HFF) & Chr$(&HFF) & Chr$(&HFF) & Chr$(&HFF) & Chr$(&HFF) & Chr$(&HFF) & Chr$(&HFF) & Chr$(&H54) & Chr$(&H54) BinderyObjList_KeyPress cancelButton_Click connectButton_Click Unable to chat to yourself Send the connect request and my connection numbery ipx2.Send = NetData Attempting to chat with &Cancel ipx2.Send = NetData ConnectionRequest calling, will you accept the charges? ConnectState ipx2.RemoteName = ipx2.ReceivedFrom ipx2.Send = Chr$(IPXSPX_CONNECT) & Chr$(54) & Chr$(54) & Chr$(nwConnNumber / 256) & Chr$(nwConnNumber And &HFF) Unable to get connection information pretty print the login time9 mm-dd-yyyy pretty print the login date pretty print the internet addressA ConvertInputToData DataState return Backspacem Must be something else. disconnectButton_Click DisconnectionRequest has disconnected DisConnectState exitButton_Click if still connected, send a disconnect Form_Load Unable to initialize NWCALLS.DLL change mouse cursor to hourglass scan the bindery of the default server FormatInternetAddress Pretty printing for the hexidecimal network and node addresses GetConnections for each connection in workstation's file server name tabled get the table entry, then see if it's null NWGetFileServerName connID, fileServerNamee you have to explicitly look for a null in the first character, because Visual Basic doesn't know about null-terminated strings (a null prints as a space) ipx1_LinkEvent Error Link: ipx1_ReceiveData select from the first byte of the packet which contains the action type ipx1_SendData Fired when packet is sentd ParseInternetAddress Rescan_Click same effect as if the user had double-clicked on a file server name RescanButton_Click same effect as if the user had double-clicked on a file server name ScanUsers change mouse cursor to hourglass get the connection handle to our default serverl Unable to get connection and get the connection numbero Unable to get connection number myInetAddress = ipx1.LocalNamee get our internet address and put it in a global for use later Unable to get internet address get the maximum number of connections the file server has usedL loop through all the possible connection numbers to geth all the logged in usersu change mouse cursor back to how it was sendBox_KeyPress ipx2.Send = Chr$(IPXSPX_DATA) & Chr$(KeyAscii)C ServerNameBox_DblClick no server selectede then go scan its bindery userPictureDrop_DblClick