0

我在本地化我的 COM 类时遇到了麻烦。我不知道如何以IErrorInfo标准方式本地化和其他文本。我已经搜索过但一无所获。我的 COM 类是IUnknown接口,而不是双接口。

感谢提前。

4

1 回答 1

0

没有“COM 标准”机制来为 COM 对象提供本地化语言环境。

COM 可以说是太“低级”了。自动化概念上位于 COM 之上的一层,因此IDispatch'sInvoke确实提供了一个 LCID 参数;但即使使用[dual]接口,IDispatch( CreateStdDispatch et al ) 的标准实现也不会将 LCID 传递给被调用的方法。

(但是,如果方法具有[lcid]标记参数,标准实现会提供 LCID 吗?我不知道第一手资料,但这里暗示了)

您需要提供自己的机制。我不知道什么是最适合您的对象的机制。一些想法:

  • 您可以让所有方法都采用客户端必须填写的显式 LCID 参数。我会继续用[lcid]标记参数并遵循 MSDN 文档中的规则。
  • 您可以有一个SetLanguage()方法来设置存储在实例中的对象范围的语言,并控制您的消息使用的语言。
  • 您可以依赖默认的系统语言环境。
于 2013-06-03T13:31:18.150 回答