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

指定Windows国家语言支持中使用的 32 位区域设置标识符。 通常,区域设置标识符以十六进制形式提供。

optional-attribute-list

要应用于 的零个或多个属性。

library-name

软件组件引用 的名称。

library-definition-statements

定义 内容的一个或多个 MIDL 语句。

function-name

指定 IDL 文件中函数的名称。

parameter-attribute-list

将应用于函数参数的零个或多个 MIDL 属性。

parameter-name

指定 IDL 文件中参数的名称。

注解

[lcid] 语法具有两种不同的形式:属性的效果取决于所使用的语法 - 语句语法或参数语法。

当应用于 语句以及 localeID 参数时,如第一个示例所示, [lcid] 属性标识类型库或函数参数的区域设置,并允许你在库块中使用国际字符。

对于 MIDL 编译器版本 3.01.75,此属性提供的区域设置标识符不仅修饰生成的类型库,而且实际上会更改编译器的行为。 在 语句中,从使用 [lcid] 属性的点开始,MIDL 将接受根据指定区域设置本地化的输入。 特别是,提供对日语、中文和朝鲜语等亚洲语言的完全支持 (完整的 DBCS 支持) 。 本地化支持的功能包括:注释、字符串、帮助字符串和标识符。

使用 /lcid 编译器开关使此本地化支持可用于整个输入文件,包括文件名和目录路径,而不仅仅是库块内部。

应用于参数时, [lcid] 属性允许将区域设置标识符传递给函数,如第二个示例所示。 以下限制适用于 [lcid] 参数:

  • 函数最多可以有一个 [lcid] 参数。
  • 参数的数据类型必须 很长
  • 参数的方向必须为 [in]
  • [lcid] 参数必须遵循除 [retval] 参数之外的任何其他参数。
  • 不能将 [lcid] 属性应用于 dispinterfacecoclass 参数。

示例

[  
    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
}

另请参阅

coclass

dispinterface

使用 MIDL 生成类型库

/lcid

图书馆

ODL 文件语法

ODL 文件示例

retval