>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Передача параметра из javascript в XPCOM компонент http://forum.mozilla-russia.org/viewtopic.php?id=25357 |
oldfriend > 31-07-2008 16:25:01 |
Всем привет. Задача звучит просто. Мне нужно из javascript передать в компоненту XPCOM строку. Делаю так: Выделить код Код:netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); const cid = "@mydomain.com/XPCOMSample/FF_component;1"; obj = Components.classes[cid].createInstance(); obj = obj.QueryInterface(Components.interfaces.FF_component); var MyString = "Test string"; obj.GetDOM(MyString); Соответственно функция в компоненте выглядит так: Выделить код Код:NS_IMETHODIMP FF_component::GetDOM(nsEmbedString *Domstr, PRInt32 *_retval) { return NS_OK; } Domstr что-то да содержит, ибо там не ноль. Однако любые пляски с бубном вокруг этой штуки не увенчались успехом. Вопросы: |
oldfriend > 31-07-2008 17:33:25 |
Проблема решена: Выделить код Код:NS_IMETHODIMP MyComponent::GetDOM3(nsEmbedString *Domstr, PRInt32 *_retval) { std::stringstream ss; nsEmbedCString strOut; NS_UTF16ToCString( nsEmbedString(*Domstr), NS_CSTRING_ENCODING_UTF8, strOut); ss << strOut.get(); MessageBox(NULL, ss.str().c_str(), "", MB_OK); return NS_OK; } |