Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Вниз

Помогите с визуальным обновлением :(   Найти похожие ветки 

 
DillerXX ©   (2006-05-23 12:47) [0]

Получаю от IHTMLDocument2 потомок body, с интерфейсом IHTMLElement. Вызываю Body->put_title и ничего не изменяется. Если вызвать get_title то там будет мой текст, но в браузере старый текст не заменится на новый! Почему так? Что мне предпринять? Заранее спасибо.

Написал код на Делфи - всё работает. Переписал на С++ - не работает. Спросил на RSDN - пока молчат :( Помогите пожалуйста, хоть это и С++


 
DillerXX ©   (2006-05-23 20:33) [1]

Я тут понял, пробелма не в обновлении интерфейсов... проблема в UNICODE. Если нечто вроде
BSTR bTitle = (BSTR)"hello";
дать скушать интерфейсу, то заголовок обновится и в нём появится билеберда (из 2х байтов делаем 1 символ :) что естественно предсказуемо. Заюзал следущую функцию:

wchar_t* ToBSTR(char* source)
{
DWORD size = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, source, -1, NULL, 0);
       
   wchar_t* dest = new wchar_t[size];
   MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, source, -1, dest, size);
   
   return dest;
}

Но опять не работает :( вызываю put_title - ноль реакции.. помогите пожалуйста, что же мне сделать то


 
API ©   (2006-05-23 21:42) [2]

Вы так много написали, но так и не уточнили, чего же вы хотите добиться.
<TITLE> - это атрибут <HEAD>, но разве у <BODY> есть такой атрибут?
То есть, я не понял, чего надо добиться в конечном результате?


 
DillerXX ©   (2006-05-23 22:03) [3]

C body это я ошибся... нужен только IHTMLDocument2. Тоесть сменить title у него с помощью метода put_title. Именно в С++ Studio, так как в Делфи всё работает прекрасно, ибо она сама юникод конвертит походу :( Помогите прошу кто-нибудь, попробуйте функцию ToBSTR поглядеть... почему её результат не принимает метод put_title?? В дебагере всё всё нормально, но не работает чтоб её =(


 
DillerXX ©   (2006-05-23 23:54) [4]

Помогите пожалуйста, иначе меня прибьют :(( Пишу код
void Proc(IHTMLDocument2* Doc)
{
char Title[] = "hehe";
//BSTR bTitle = (BSTR)"hehe";
BSTR bTitle = ToBSTR(Title);
bTitle = BSTR("hello");
Doc->put_title(bTitle);
}

И у меня не работает, ну не могу понять почему :( Ведь всё должно работать, помогите кто-нибдуь кто в С++ с COM работал :(


 
Владислав ©   (2006-05-24 09:52) [5]

Может в качестве примера пригодится:
__inline bool Connect(const TCHAR * Host, const long Port, const TCHAR * Login, const TCHAR * Password)
{
 CComBSTR str;
 m_Connected = false;
 m_Disconnected = false;
 str = Host;
 m_hr = m_Session->put_HostAddr(str.Detach());
 if (FAILED(m_hr))
  return false;
 m_hr = m_Session->put_HostPort(Port);
 if (FAILED(m_hr))
  return false;
 str = Login;
 m_hr = m_Session->put_Name(str.Detach());
 if (FAILED(m_hr))
  return false;
 str = Password;
 m_hr = m_Session->put_Password(str.Detach());
 if (FAILED(m_hr))
  return false;
 m_hr = m_Session->Connect();
 return (SUCCEEDED(m_hr));
};


 
Шмель ©   (2006-05-24 15:40) [6]

Чтобы передать BSTR строку нужно использовать ::SysAllocString(..) и дело здесь не в Unicode



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
2-1149092376
Loginov Dmitry
2006-05-31 20:19
2006.06.18
Работа с пакетами


15-1148636830
korotkova
2006-05-26 13:47
2006.06.18
Открыта вакансия!


2-1148964720
kashmar
2006-05-30 08:52
2006.06.18
Помогите разобраться что неправильно


2-1149164860
webpauk
2006-06-01 16:27
2006.06.18
OnPaint


3-1146027641
Savek
2006-04-26 09:00
2006.06.18
Присвоить значение QRGroup.Expression





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский