Exemple #1
0
HANDLE AddToListByName(const CString& sName, WPARAM flags, LPCTSTR about, bool bInteractive, bool bGroup)
{
	ip addr = INADDR_NONE;
	CString sShortName( sName );

	if ( ! bGroup )
	{
		// Попытка получить IP из имени
		if ( addr == INADDR_NONE )
			addr = ResolveToIP( sShortName );

		// Поиск NetBIOS-имени
		if ( addr == INADDR_NONE )
			addr = pluginNetBIOS.FindNameIP( sName );

		// Неизвестный контакт
		if ( addr == INADDR_NONE && bInteractive )
		{
			if ( MessageBox( NULL,
				TranslateT("Cannot resolve contacts IP-address. Add it anyway?"),
				modname_t, MB_YESNO | MB_ICONQUESTION ) != IDYES )
			{
				return NULL;
			}
		}
	}

	// Поиск существующего контакта
	HANDLE hContact = GetContact( sShortName );
	if ( ! hContact )
	{
		// Добавление контакта
		hContact = (HANDLE)CallService( MS_DB_CONTACT_ADD, 0, 0 );
		if ( hContact )
		{
			CallService( MS_PROTO_ADDTOCONTACT, (WPARAM)hContact, (LPARAM)modname );
			SetNick( hContact, sShortName );
			SetGroup( hContact, bGroup );
			db_set_ts( hContact, "CList", "MyHandle", sShortName );
			db_set_b( hContact, "CList", "NotOnList", 1 );
			db_set_b( hContact, "CList", "Hidden", 1 );
			SetContactIP( hContact, addr );
			SetElapsed( hContact, "IPTime" );
			if ( about )
				db_set_ts( hContact, modname, "About", about );

			contact_scanner::ScanContact( hContact );
		}
	}
	if ( hContact && ! ( flags & PALF_TEMPORARY ) &&
		db_get_b( hContact, "CList", "NotOnList", 1 ) )
	{
		// Оставляем контакт
		db_unset( hContact, "CList", "NotOnList" );
		db_unset( hContact, "CList", "Hidden" );
	}
	return hContact;
}
void frmMain::_setFilename(const wxString& sFilename)
{
    m_sFilename = sFilename;
    wxString sShortName("Untitled");
    wxFileName oFilename(sFilename);
    if(!oFilename.GetFullName().empty())
        sShortName = oFilename.GetFullName();
    SetTitle(m_sFrameCaption + wxT(" - ") + sShortName);
}