>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Проблема с Delphi Gecko SDK http://forum.mozilla-russia.org/viewtopic.php?id=44654 |
RANII > 28-05-2010 12:14:36 |
Доброго времени суток! Выделить код Код:nsIDOMNSElement = interface(nsISupports) ['{f0aef489-18c5-4de6-99d5-58b3758b098c}'] ... end; Но при попытке перехода к нему от nsIDOMNode через QueryInterface постоянно получаю nil Выделить код Код:NS_ACCESSIBLE_RETRIEVAL_CONTRACTID = '@mozilla.org/accessibleRetrieval;1'; ... nsIAccessibleRetrieval = interface(nsISupports) ['{244e4c67-a1d3-44f2-9cab-cdaa31b68046}'] ... end; При попытке получить его через ComponentManager вываливается исключение 'Exception in safecall method', а при попытке создать его через CreateInstance... падает FF. |
Elexander > 28-05-2010 14:55:29 |
Может быть GUID неправильный. В 3.6 для nsIDOMNSElement {C9BA11BC-32D4-425E-A91F-7E0939C39251} |
RANII > 28-05-2010 15:50:49 |
Спасибо за совет Действительно в 3.0.5 другой GUID -- '{CEA6F919-7FE6-4BDD-9DB6-158D9283F8D3}' Выделить код Код:/* readonly attribute long clientTop; */ NS_IMETHODIMP nsDOMNSElement::GetClientTop(PRInt32 *aClientTop) { return NS_ERROR_NOT_IMPLEMENTED; } Я пробовал два варианта: Выделить код Код:procedure GetClientTop(out aClientTop: PRInt32); safecall; function GetClientTop(): PRInt32; safecall; А что можно сделать в плане nsIAccessibleRetrieval? (GUID верный в объявлении) |
Elexander > 01-06-2010 23:15:49 |
Интерфейс такой, проверте. Выделить код Код:nsIDOMNSElement = interface(nsISupports) ['{C9BA11BC-32D4-425E-A91F-7E0939C39251}'] function GetElementsByClassName(const classes: nsAString; var _retval: nsIDOMNodeList): HRESULT; stdcall; function GetClientRects(var _retval: nsIDOMClientRectList): HRESULT; stdcall; function GetBoundingClientRect(var _retval: nsIDOMClientRect): HRESULT; stdcall; function GetScrollTop(out aScrollTop: Integer): HRESULT; stdcall; function SetScrollTop(aScrollTop: Integer): HRESULT; stdcall; function GetScrollLeft(out aScrollLeft: Integer): HRESULT; stdcall; function SetScrollLeft(aScrollLeft: Integer): HRESULT; stdcall; function GetScrollHeight(out aScrollHeight: Integer): HRESULT; stdcall; function GetScrollWidth(out aScrollWidth: Integer): HRESULT; stdcall; function GetClientTop(out aClientTop: Integer): HRESULT; stdcall; function GetClientLeft(out aClientLeft: Integer): HRESULT; stdcall; function GetClientHeight(out aClientHeight: Integer): HRESULT; stdcall; function GetClientWidth(out aClientWidth: Integer): HRESULT; stdcall; function GetFirstElementChild(out aFirstElementChild: nsIDOMElement): HRESULT; stdcall; function GetLastElementChild(out aLastElementChild: nsIDOMElement): HRESULT; stdcall; function GetPreviousElementSibling(out aPreviousElementSibling: nsIDOMElement): HRESULT; stdcall; function GetNextElementSibling(out aNextElementSibling: nsIDOMElement): HRESULT; stdcall; function GetChildElementCount(out aChildElementCount: Cardinal): HRESULT; stdcall; function GetChildren(out aChildren: nsIDOMNodeList): HRESULT; stdcall; end; |
RANII > 02-06-2010 15:42:53 |
Попробовал, только что-то странное происходит... |
Elexander > 02-06-2010 15:56:41 |
GUID на 3.0.5 меняли? Я забыл указать ваш. Этот для 3.6 |
RANII > 02-06-2010 16:06:54 |
Менял |
Elexander > 02-06-2010 18:34:44 |
Пришлите исходники вашего XPCOM компонента мне на почту, я посмотрю на выходных. Только удалите все лишнее. Оставте только проблемное место. И еще pas-файлы вашего Gecko SDK, может быть в нем проблема. |