Главная страница
    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.012 c
11-1128549488
Юрий Ж.
2005-10-06 01:58
2006.06.18
Редактор с возможностью всавки картинок....


8-1137748651
SergProger
2006-01-20 12:17
2006.06.18
Разложить TColor


2-1149153692
novice
2006-06-01 13:21
2006.06.18
Как открыть форму?


3-1145789890
Navi
2006-04-23 14:58
2006.06.18
Запрос на удаление записей


6-1139760370
Shamansky
2006-02-12 19:06
2006.06.18
TUdpSocket





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский