できる複数のProgIDs点と同一のClsID?
-
20-09-2019 - |
質問
私の何が本質的にはプラグインは、COMサーバー各プラグインのコンフィギュレーションデータが管理している他の成分は、主キーのコンフィギュレーションデータのプラグインのProgID.きのプラグインが必要にアクセスの構成項目で話を通過し、そのProgID、プロパティの名前が必要です。このレガシーマにしたプロダクトのシリーズ"を維持しなければならな後方に対応しています。
って要件への負荷の複数インスタンスの各プラグインは、各インスタンスの異なるセットの設定データです。解決の思考えを複数の独自のProgIDs各プラグインは、各ProgIDいポイントの単一のClsIdを引き出しおよび設定ができますこのように、各インスタンスのプラグインのう位置付け、そのProgIDのProgIDが続いている状況にあり、主キーのための設定データは、すべては100%の後方に対応しました。
その質問:
- この許容する(複数ProgIDsすべてを指す単一のClsID).
- 自分のプラグインによる負荷のように思いかどうかを知ることができるのProgIDを作成するのに使用されたのですか?
解決
のProg IDは、典型的には2つの方法で使用される:PROGのID(CLSIDFromProgID()関数)に対応するクラスIDを検出する - と、所与のクラスIDのPROG IDを検出する - これは、後のCoCreateInstance()を呼び出すために使用され - これは通常、クラスIDの人に優しいバージョンを表示するために使用される
。これらのマッピングは、マッピングすることを意味HKCR {ProgIdの}クラスID及びプログラムIDに等しいデフォルト値HKCR \ CLSID {CLASSID} \プログラムID鍵に等しいデフォルト値を持つ\ CLSIDキーがあることを暗示します1対1です。あなたはただ1つのクラスIDで複数のPROG IDを持ってすることはできません。
任意CLSIDFromProgID()が含まを使用して、可能な手段によって得られた -COMコンポーネントは、クラスIDを渡されるのCoCreateInstance()を呼び出すことによってロードされます。クラスIDを取得した方法を指示するコンポーネントのための方法はがありません。