COM クラスのローカライズに問題があります。IErrorInfo
ローカライズやその他のテキストを標準的な方法で行う方法がわかりません。検索しましたが、何も見つかりませんでした。私の COM クラスはIUnknown
インターフェイスであり、デュアル インターフェイスではありません。
よろしくお願いします。
COM クラスのローカライズに問題があります。IErrorInfo
ローカライズやその他のテキストを標準的な方法で行う方法がわかりません。検索しましたが、何も見つかりませんでした。私の COM クラスはIUnknown
インターフェイスであり、デュアル インターフェイスではありません。
よろしくお願いします。
COM オブジェクトにローカリゼーション ロケールを提供する "COM 標準" メカニズムはありません。
COM は間違いなく、そのためには「低レベル」すぎます。オートメーションは概念的に COM の上のレイヤーに位置するIDispatch
ためInvoke
、 は LCID 引数を提供します。ただし、[dual]
インターフェイスを使用しても、 IDispatch
( CreateStdDispatch
et al ) の標準実装は、呼び出されたメソッドに LCID を渡しません。
(ただし、メソッドに[lcid]
-marked パラメーターがある場合、標準実装は LCID を提供しますか? 私は直接知りませんが、ここでは暗示されています) .
独自のメカニズムを提供する必要があります。オブジェクトに最も適したメカニズムが何であるかわかりません。いくつかのアイデア:
SetLanguage()
インスタンスに格納されたオブジェクト全体の言語を設定し、メッセージで使用される言語を制御するメソッドを持つことができます。