|
Руководство разработчика на IDL
Руководство разработчика на IDL - Генерируемые заголовки
Простейший интерфейс
/* начало интерфейса nsIFoo */
class nsIFoo {
public:
};
Декларация родительского интерфейса
/* начало интерфейса nsIFoo */
class nsIFoo : public nsIParent {
public:
};
Интерфейс с IID
/* начало интерфейса nsIFoo */
/* {00000000-0000-0000-c000-000000000046} */
#define NS_IFOO_IID_STR "00000000-0000-0000-c000-000000000046"
#define NS_IFOO_IID \
{0x00000000, 0x0000, 0x0000, \
{ 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 }}
class nsIFoo : public nsIParent {
public:
static const nsIID& IID() {
static nsIID iid = NS_IFOO_IID;
return iid;
}
};
Опережающая декларация интерфейса
class nsIForward; /* опережающая декларация */
Метод и свойство
/* начало интерфейса nsIFoo */
class nsIFoo {
public:
/* attribute long attr; */
NS_IMETHOD GetAttr(PRInt32 *aAttr) = 0;
NS_IMETHOD SetAttr(PRInt32 aAttr) = 0;
/* void fun (); */
NS_IMETHOD Fun() = 0;
};
Типы параметров метода
/* начало интерфейса nsIStringStuff */
class nsIStringStuff {
public:
/* void findStringLength (in string str, out long l); */
NS_IMETHOD FindStringLength(char *str, PRInt32 *l) = 0;
/* void concatenateStrings (in string str1, in string str2, out string result); */
NS_IMETHOD ConcatenateStrings(char *str1, char *str2, char **result) = 0;
/* void replaceChar (inout string str, in char from, in char to, in boolean foldCase); */
NS_IMETHOD ReplaceChar(char **str, char from, char to, PRBool foldCase) = 0;
};
Возвращаемые типы, отличные от
void
/* начало интерфейса nsINonVoidReturn */
class nsINonVoidReturn {
public:
/* string gimmeString (in string str, in long count); */
NS_IMETHOD GimmeString(char *str, PRInt32 count, char **_retval) = 0;
/* long gimmeLong (in boolean prime); */
NS_IMETHOD GimmeLong(PRBool prime, PRInt32 *_retval) = 0;
};
Свойство только для чтения
(readonly)
/* начало интерфейса nsIThing */
class nsIThing {
public:
/* readonly attribute string lookButDontTouch; */
NS_IMETHOD GetLookButDontTouch(char * *aLookButDontTouch) = 0;
};
Mike Shaver
Перевод: Д. Скоробогатов (12.10.2009)
Оригинальный текст: IDL Author's Guide - Generated Headers
Документация по смежным темам на xBB.uz:
- XPIDL
- Общая информация об XPIDL (XP Interface Description Language -
Кросплатформенный язык описания интерфейсов). Этот язык основан на спецификации
OMG IDL, который используется для описания интерфейсов CORBA. Является одной из
составных частей технологии XPCOM.
- XPCOM
- Общая информация об XPCOM (XP Component Object Model - Кроссплатформенная
Компонентная Объектная Модель). Эта модель схожа с Microsoft COM в ОС Windows, и
представляет собой механизм создания и динамической загрузки компонентов для
Вашего приложения.
- XUL XPCOM
- Инструкция по созданию нового компонента XPCOM на языке программирования C++
для очень простого тестового приложения XUL. Описывается создание простого
интерфейса с помощью XPIDL, генерация заголовочного файла C++, написание
реализации интерфейса, создание точки доступа к созданному компоненту из
JavaScript, создание собственно приложения XUL.
- XUL XPCOM JavaScript
- Инструкция по созданию нового компонента XPCOM на языке программирования
JavaScript. Статья опирается на предыдущую. Процесс создания интерфейса не
описывается, так как он не отличается от описанного в предыдущей статье.
Заголовочный файл для JS не нужен. Описывается только собственно программный
код, реализующий данный интерфейс.
- Языковые Связки XPCOM
- Общая информация по так называемым "языковым связкам" XPCOM, которые
являются мостами между конкретными языками программирования и XPCOM, и позволяют
создавать на этих языках компоненты XPCOM а также получать доступ к компонентам
XPCOM из кода, написанного на этих языках.
Последнее редактирование: 2009-10-12 16:44:30
Метки материала:
XPIDL, IDL, C++, производный класс, метод, исходные файлы, define, class, файлы интерфейсов, методы, классы xpcom, исходники, языки программирования, члены класса, синтаксис, заголовочный файл, язык описаниния интерфейсов, описание интерфейсов
Оставьте, пожалуйста, свой комментарий к публикации
|