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] 属性应用于 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
}