Атрибут lcid
Атрибут [lcid] задает идентификатор языкового стандарта и включает поддержку компилятора MIDL для конкретного языкового стандарта.
[
uuid(uuid-number),
lcid(localeID)
[, optional-attribute-list]
]
library library-name
{
library-definition-statements
}
function-name([parameter-attribute-list, lcid] long parameter-name,. . .);
Параметры
-
uuid-number
-
Указывает универсальный уникальный идентификационный номер для библиотеки.
-
Localeid
-
Указывает 32-разрядный идентификатор языкового стандарта, используемый в службе поддержки национальных языков Windows. Как правило, идентификатор языкового стандарта предоставляется в шестнадцатеричном формате.
-
optional-attribute-list
-
Ноль или несколько атрибутов, применяемых к библиотеке.
-
имя библиотеки
-
Имя, по которому программные компоненты ссылаются на библиотеку.
-
library-definition-statements
-
Одна или несколько инструкций MIDL, определяющих содержимое библиотеки.
-
имя функции
-
Указывает имя функции в IDL-файле.
-
parameter-attribute-list
-
Ноль или несколько атрибутов MIDL, которые будут применены к параметру функции.
-
parameter-name
-
Указывает имя параметра в IDL-файле.
Комментарии
Синтаксис [lcid] имеет две различные формы: влияние атрибута зависит от используемого синтаксиса — синтаксиса инструкции библиотеки или синтаксиса параметра.
При применении к оператору library вместе с аргументом localeID, как показано в первом примере, атрибут [lcid] определяет языковой стандарт для библиотеки типов или аргумента функции и позволяет использовать международные символы внутри блока библиотеки.
В случае с версией 3.01.75 компилятора MIDL идентификатор языкового стандарта, предоставленный этим атрибутом, не только украшает результирующую библиотеку типов, но фактически изменяет поведение компилятора. В инструкции библиотеки с точки, где используется атрибут [lcid] , MIDL будет принимать входные данные, локализованные в соответствии с указанным языковым стандартом. В частности, доступна полная поддержка азиатских языков, таких как японский, китайский и корейский (полная поддержка DBCS). Локализация поддерживает следующие функции: комментарии, строки, строки справки и идентификаторы.
Используйте параметр компилятора /lcid , чтобы эта поддержка локализации была доступна для всего входного файла, включая имя файла и путь к каталогу, а не только внутри блока библиотеки.
При применении к параметру атрибут [lcid] позволяет передать идентификатор языкового стандарта функции, как показано во втором примере. К параметрам [lcid] применяются следующие ограничения:
- Функция может иметь не более одного параметра [lcid] .
- Тип данных параметра должен быть длинным.
- Направление параметра должно быть только [in] .
- Параметр [lcid] должен соответствовать любым другим параметрам, кроме параметра [retval] .
- Атрибут [lcid] нельзя применить к параметру dispinterface или coclass .
Примеры
[
uuid(12345678-1234-1234-1234-123456789ABC),
lcid(0x09),
version(1.0)
]
library MyLibrary
{
/* Library definition statements */
};
interface IMyFace : IDispatch
{
[propget] HRESULT MyFunc([in, lcid] long LocaleID,
[out, retval] BSTR * ReturnVal);
// Other interface definition statements
}
См. также раздел