今回初めてCOMの作成をします。
全く新規では無く似たサンプルがあるので流用しようと思います。
そこで、このサンプルのプロジェクト名を全て新規用の名前に変更し、
かつプロジェクトファイル等の内部の文字も新規の物に全て置換した場合、
問題ありますか?
MFCではこれで問題なく使用できたのですが、COMの場合?一意なIDをレジストリに
登録するようなこと聞いたのでわからなくなりまして。
環境
win2000sp3/vc6.0sp5/最新SDK/mfc使用
宜しくお願いします
DEFINE_GUID(IID_INullIPP,
0x43d849c0, 0x2fe8, 0x11cf, 0xbc, 0xb1, 0x44,
0x45, 0x53, 0x54, 0x00, 0x00);
という形式の行があるはずなので、
IID_XXXXXXXXX と GUID の部分を自分のCOM向けに書き直して
ください。
GUIDは Common\Tools\GUIDGEN.EXE で新規作成します。
回答ありがとうございます。
ボコノン教徒さんの言われるDEFINE_GUID~のあるファイルはMIDLによって自動的に
作成されるファイルのようですが、これを直接編集してもいいんでしょうか?
作成されるたびに変更するのも大変ですし。
いろいろ調べていると、idlファイルに何かきっかけがあるようです。
idlファイルのuuidのところにレジストリでよく見るような値があります。
しかしここで問題、何もしないALT COMを新規に作成した場合、uuidはひとつなんですが、
流用しようとしているサンプルには3つあります。
構造体、library、interface定義の前にあります。
これらの3つようにGUIDGENで新規にIDを振りなおすといいでしょうか?
それと参考になるページって知りませんか?
よろしくお願いします。
> これらの3つようにGUIDGENで新規にIDを振りなおすといいでしょうか?
GUIDに関しては、新規の割り振ればOKなんですが、
Class名やインターフェース名に関してどう変更すればよいのかは私も???です。
GUIDに関しては、時々同じGUIDがIDLファイルの中にあるみたいなので、
同じGUIDに変更するように注意してください。
*.rgsがレジストリに書き込まれる内容です。
> それと参考になるページって知りませんか?
楽してATL/COMをマスターする方法は無いです。
「ATL COMプログラミング」翔泳社
回答ありがとう御座います。
結果報告?です。
uuidはuuidgen.exeで生成できそうです。
なので問題ないように思えたのですが、*.rgsファイルのクラスIDがわからないので、
結局、新規にプロジェクトを生成しATLオブジェクトの新規作成で追加しました。
すると*.rgsファイルを自動生成してくれました。
これで、idlファイルのlibrary、interfaceの記述は終わっていたので、
構造体の部分をコピペして、uuidgen.exeでuuidを生成してコピペしました。
一応こんな感じで行いました。まだテストできる状況にないので
まだ不安ですがやり方に問題ないと思っています。
>楽してATL/COMをマスターする方法は無いです。
少し作れる?わかる?ようになってから書籍を購入した方があとあと役に立つ
物を購入できるので、最初はサイトなどの情報を参考に四苦八苦するのが
今までのやり方だったので。
ATL COMプログラミングは有名なのですね、早速探してみます。
ありがとう御座いました。