Поделиться через


Атрибут 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
}

См. также раздел

кокласс

dispinterface

Создание библиотеки типов с помощью MIDL

/Lcid

библиотека

Синтаксис ODL-файла

Пример ODL-файла

retval