COM
■ このスレッドは過去ログ倉庫に格納されています
0001IUnkonwn
2007/01/10(水) 20:13:150082デフォルトの名無しさん
2007/05/08(火) 21:07:42<SCRIPT language="javascript" for="HogeID" event="HogeEvents(a, b)">
alert(a);
</SCRIPT>
<OBJECT ID="HogeID" CLASSID="CLSID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
</OBJECT>
Adviseをお願いします。
0084デフォルトの名無しさん
2007/05/08(火) 21:14:49>>83は誤爆です。
>>80,81
ありがとうございます。
参考にさせていただき再び試行錯誤させていただきます。
0085デフォルトの名無しさん
2007/05/08(火) 21:21:59書き忘れましたが、Fire_Hoge()の呼び出しはは
ブラウザ(HTMLに記述したjavascript)からCHoge.exeのメソッドを呼び出して
呼び出されたメソッドの中でFire_Hoge()を呼んでいます。
0086デフォルトの名無しさん
2007/06/11(月) 15:36:03アウトプロセスサーバで
クライアントから呼出して配列データ(BSTR)を取得するメソッドを作成しています。
このときサーバ側ではSafeArrayCreate()でクライアントに渡す
配列データを作成しますが、この配列データはSafeArrayDestroy()で
解放する必要はないであってますか?
根拠としてメソッド内で解放するとクライアントに渡せない。
デバッガで確認したところSafeArrayCreate()のポインタをstaticで保持して
次にメソッドを呼び出したら、ポインタが指しているメモリが壊れていた
(=勝手に解放してくれた)。
ということからこのような結論に至ったのですが、間違ってないでしょうか?
0087デフォルトの名無しさん
2007/06/11(月) 15:52:36今回outprocだから、正確にはマーシャラーが適当にシリアライズしたのち
解放してくれるのでユーザのコードでは(inprocの場合と同様)解放しなくて良い、
というような動作。
逆に「取得した側」は自分で解放する。
0088デフォルトの名無しさん
2007/06/11(月) 16:04:00すばやいレスありがとうございます。
さらに詳しいCOMの内情まで教えていただきまして勉強になりました。
感謝いたします。
0089デフォルトの名無しさん
2007/07/08(日) 15:55:55なにせ情報や サンプルがなかなか見当たらないので
0090デフォルトの名無しさん
2007/07/09(月) 09:14:09これはまぁわかりやすい方。
0091デフォルトの名無しさん
2007/07/10(火) 20:39:52詳しい本は?
0092デフォルトの名無しさん
2007/07/11(水) 09:08:04それなら>>90の本とMSDN。
IEコンポ専門に突っ込んで書いてる本はないとおもう。
英語のMSDN読みまくる根性ないと無理。
0093デフォルトの名無しさん
2007/07/11(水) 20:47:11IWebBrowser2を実装して、ActiveXコントロールをホストしたい。
0094デフォルトの名無しさん
2007/07/11(水) 22:03:14http://msdn2.microsoft.com/en-US/library/aa752127.aspx
> Custom Implementation No
ActiveXコントロールをホストしたいだけならIWebBrowser2を実装する必要は無いぞ。
0095デフォルトの名無しさん
2007/07/11(水) 23:27:020096デフォルトの名無しさん
2007/07/12(木) 00:21:14ぬあー、そうなのか。
>>95
Mozillaのコード見たけど、想像以上に整然としてて驚いた。
0098デフォルトの名無しさん
2007/07/15(日) 21:24:58興味がある方は、復刊リクエストご協力ください
Inside COM
ttp://www.fukkan.com/fk/VoteDetail?no=20887
Essential COM
ttp://www.fukkan.com/fk/VoteDetail?no=38742
0099デフォルトの名無しさん
2007/07/16(月) 07:43:51ドメインオブジェクトとして他のマシンに置きたいとき
COMならCOM+が使えるじゃないですか。
.NETだと何を使えばいいのでしょう?
Web Serviceだとサーバ側にインスタンスを作って
継続的に使用できないですよね。
となると.NET Remotingかな。
0100デフォルトの名無しさん
2007/07/16(月) 08:53:34System.EnterpriseServices でCOM+
010199
2007/07/16(月) 11:31:25なるほど!
結局はCOM+ですか。
.NetはCOMをうまく内包しているんですね。
ということは、「.NetになったらCOMは必要ない」
という意見は的外れなんですね。
0102デフォルトの名無しさん
2007/07/16(月) 15:54:410103デフォルトの名無しさん
2007/07/16(月) 21:18:15CLR自身がCOMで実装されてるのに、誰だよそんなこと言った奴は。
0104デフォルトの名無しさん
2007/08/15(水) 00:05:12知る方法はないでしょうか?
0105デフォルトの名無しさん
2007/08/17(金) 01:49:01(直接DLLからインスタンスを生成する方法がないわけじゃないけど)
0106デフォルトの名無しさん
2007/08/20(月) 22:00:05ということで、プログラミング環境は90年代前半に戻りつつあるよね。
ホビープログラマとしてはプログラムなんて動けばなんでもいいし。
0107デフォルトの名無しさん
2007/08/21(火) 08:37:590108デフォルトの名無しさん
2007/08/21(火) 19:01:550109デフォルトの名無しさん
2007/08/22(水) 22:17:32保証されているんでしょうか?
0110デフォルトの名無しさん
2007/08/24(金) 13:49:34なってない場合バグ。その辺のロジックはATLとかがサポートしてて
直接コーディングすることは少ないから普通は大丈夫。
アウトプロセスの複合サーバーの場合は、
インターフェイスが開放されてもプロセスが終了しないものがある。
WordやExcelがその例。
0111デフォルトの名無しさん
2007/08/24(金) 14:44:18してもDLLがロックされたままになるのは別の問題ですかね?
0112デフォルトの名無しさん
2007/08/26(日) 08:22:250113デフォルトの名無しさん
2007/08/26(日) 12:43:19そのオブジェクトが消え去る
・あるDLLに属しているCOMオブジェクトの生存数が0
になったときにそのDLLをアンロードしてほしい
この二つは全く別の話。
0114デフォルトの名無しさん
2007/09/27(木) 10:42:390115デフォルトの名無しさん
2007/09/27(木) 16:33:32どの分野でc++のシェアが下がったんだろう
業務系→cobol、j2ee
組み込み系→c、c++、asm
0116デフォルトの名無しさん
2007/09/27(木) 16:48:300117デフォルトの名無しさん
2007/09/27(木) 18:15:23Windows のソフトでわずかだけれども C# が使われ始めているな。
以前ならMFCで書かれていたような奴が。
Sunが横やり入れなければ数年前にJ++で出来ていたことなのにねぇ・・・
0118デフォルトの名無しさん
2007/09/28(金) 04:52:550119デフォルトの名無しさん
2007/10/01(月) 09:32:590120デフォルトの名無しさん
2007/10/01(月) 13:13:070121デフォルトの名無しさん
2007/10/24(水) 14:50:190122デフォルトの名無しさん
2007/10/31(水) 06:53:00getUnk(&pUnk2);
getUnk(&pUnk3);
0123デフォルトの名無しさん
2007/11/03(土) 15:41:500124デフォルトの名無しさん
2007/11/03(土) 19:23:290125デフォルトの名無しさん
2007/11/05(月) 19:49:150126デフォルトの名無しさん
2007/11/05(月) 21:55:350127デフォルトの名無しさん
2007/11/05(月) 23:14:290128デフォルトの名無しさん
2007/11/06(火) 01:23:310129デフォルトの名無しさん
2007/11/11(日) 22:25:40IThumbnailProviderからもってくるとキャッシュみないよね?
0130129
2007/11/12(月) 00:26:45IShellItem.BindToHandler経由でIThumbnailProviderからサムネールもってくるとキャッシュみないよね?
0131129
2007/11/12(月) 02:14:14LocalThumbnailCacheでnewしてやればいいのね
ほんとのところCOMを理解してないけど
キャッシュ見るようになって動画のサムネイル早っ
0132デフォルトの名無しさん
2007/11/13(火) 23:58:24おっそろしい程に参考になる本とかWEBページとか少ないな
ボチボチ進んでるから、なんとかなるとは思うけど、自力で探るのはめんどい
0133デフォルトの名無しさん
2007/11/16(金) 02:04:590135デフォルトの名無しさん
2007/11/16(金) 02:16:20http://www.ascii.co.jp/pb/bookmart/pdf/47561/4756130666.pdf
直接の役には全然役に立たないよ
でもこれ読む前はなんでCOMがこんなことになってるのか全然わかんなかった
0136デフォルトの名無しさん
2007/11/16(金) 02:28:35ありがとう。
読んでみる。
0137デフォルトの名無しさん
2007/11/17(土) 02:14:16マニフェスト的なものをヘッダに持って
どう実現するかは知らんけど
0138デフォルトの名無しさん
2007/11/17(土) 03:36:51XP以降ならマニフェストでサイドバイサイドできるよ。
0139デフォルトの名無しさん
2007/11/21(水) 00:20:030140デフォルトの名無しさん
2007/11/21(水) 00:48:55_com_ptr_t
0141デフォルトの名無しさん
2007/11/22(木) 00:08:27海外のライブラリでそれできるやつあるよ
0142デフォルトの名無しさん
2007/11/23(金) 01:44:45ttp://www.ailight.jp/blog/sha256/archive/2005/03/29/5437.aspx
0143デフォルトの名無しさん
2007/12/02(日) 02:36:38VisualStudio2005でATLの「実行可能サーバー」を生成すると
ソースが書籍のサンプルと全然対応しなくて困っております
今の開発環境でCOMの学習用にいい書籍とかありますでしょうか?
0144デフォルトの名無しさん
2007/12/02(日) 02:49:08by Christopher Tavares, Kirk Fertitta, Brent Rector and Chris Sells
とかは2006年だ読んだこと無いけど
0145デフォルトの名無しさん
2007/12/02(日) 17:22:28前に日本語でその手の本を探したけど、結局、見つからなかった。
真面目にサンプル作って解説本でも書いたら売れるかな。
売れないだろうな・・・・
0146デフォルトの名無しさん
2007/12/02(日) 18:08:07俺もその本持ってるけど、COM/ATLの根本的なところは大して変わらないんだし、ATLの側でも
互換性のためATL3.0用のクラス残してるし、それで勉強してみたら?
C++属性なんて最後でいいと思うし、ATL8.0の部分だってATL3.0判ればそう難しくはないんじゃないか?
0147デフォルトの名無しさん
2007/12/03(月) 00:38:06皆様ご意見ありがとうございます。
少なくとも日本語の書籍に新しいものはなさそうですね。
英語の本は時間が許せば…と思いますがやはり敷居が高いです。
>>146さんの言うとおりもう少し現状の環境で書籍の内容を確認してみます。
0148デフォルトの名無しさん
2007/12/05(水) 01:36:090149デフォルトの名無しさん
2007/12/14(金) 22:18:03ドラッグドロップをしています。
そのウィンドウ上にマウスカーソルがあるときに他のウィンドウを非アクティブのまま
表示するようにしたいんですが、ウィンドウを表示すると元のウィンドウの下に
ドラッグイメージが隠れてしまいます。
(後から表示したいウィンドウもIDropTarget/IDropTargetHelperを実装してます。そっち上では
ドラッグイメージは隠れません)
ドラッグイメージのZOrderをなんとかしたいわけですが、
ヒント等ご存知の方いらしたら教えてくんなましょ
0150デフォルトの名無しさん
2007/12/15(土) 01:59:23どのウィンドウなのかわかんないのでAとかBとか名前付けて書いてくれると嬉しい
0151デフォルトの名無しさん
2007/12/15(土) 11:39:46すべてのウィンドウ: IDropTarget
・IDropTargetHelperをもってる
・擬似メニューみたいな感じで、擬似サブメニューみたいなウィンドウがポップアップする
A上にドラッグ、A上にドラッグイメージ出る
↓
A上のサブメニューが展開してBを表示( AのDragOverでWM_MOUSEMOVEをA自身にsend。これが原因? )
↓
マウスはA上にあるけど、ドラッグイメージはAの下に隠れてしまう
↓
B上にドラッグ、B上にドラッグイメージが出る
↓
B上のサブメニューが展開してCを表示( BのDragOverでWM_MOUSEMOVEをB自身にsend。これが原因? )
↓
マウスはB上にあるけど、ドラッグイメージはBの下に隠れてしまう
(以下繰り返し)
IDropTargetHelper使わないと正常なんで、諦めるかも……
0152デフォルトの名無しさん
2007/12/20(木) 16:43:05名古屋駅近辺でお話しましょう
0153デフォルトの名無しさん
2007/12/20(木) 23:05:18CLSCTX_INPROC_SERVERを渡したCoCreateInstanceは
1つのプロセス内に1つのインスタンスを作成するみたいですが、
1つのプロセス内の複数のスレッドでひとつのIIDで指定されたインスタンスを
スレッドごとに作成したいときはどうしたらいいのでしょう。
もしかしてIIDごとに何個つくれるとか決まってたりするんでしょうか
0154デフォルトの名無しさん
2007/12/20(木) 23:14:330155デフォルトの名無しさん
2007/12/28(金) 13:03:07IExtractImageを実装したんだけど、2000で動かすと時々フォルダ内の全ファイルに同じ
サムネイルが出るようになる不具合はどう対処したらいいんでしょう。
MSDNのサンプル実装で起きるし、フラグ類いろいろ変えたりマルチスレッド対応にしたり
しても改善せず・・・
0156デフォルトの名無しさん
2008/01/03(木) 22:27:350157デフォルトの名無しさん
2008/01/03(木) 23:06:100158デフォルトの名無しさん
2008/01/04(金) 21:05:480159デフォルトの名無しさん
2008/01/04(金) 21:12:550160デフォルトの名無しさん
2008/01/04(金) 22:24:07F#なら.NET経由でいけるのでは
0161デフォルトの名無しさん
2008/01/06(日) 12:47:23今更ながらCOMの仕事が入り勉強中助かりました( ´∀`)
すぐに絶版にするなら独占翻訳権を取得しないで欲しい。特にASCII。
それ以上にCOMはもう終わってるのか…(´・ω・`)?
0162デフォルトの名無しさん
2008/01/07(月) 18:37:250163デフォルトの名無しさん
2008/01/08(火) 08:38:470164デフォルトの名無しさん
2008/01/08(火) 09:32:43PDFリーダーとか本当にメジャーなものしか存在が許されないというか。
0165デフォルトの名無しさん
2008/01/08(火) 22:27:40さすがに起動はするwwwwwwwwwww
0166デフォルトの名無しさん
2008/01/08(火) 22:31:550167デフォルトの名無しさん
2008/01/09(水) 03:09:250168デフォルトの名無しさん
2008/01/09(水) 03:41:29デスクトップの表示まで行くと無理だな
IShellFolder
0169デフォルトの名無しさん
2008/01/09(水) 13:36:00COMつかってるんじゃね
0170デフォルトの名無しさん
2008/01/09(水) 13:43:280171デフォルトの名無しさん
2008/01/10(木) 02:32:530172デフォルトの名無しさん
2008/01/10(木) 02:40:58VistaのユーザーモードドライバはCOM仕様だから
0173デフォルトの名無しさん
2008/01/10(木) 08:22:49http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030717/3/?ST=security
やべえ今までしらんかった
Administratorでログオンすると危険にさらされるんだね。
0174デフォルトの名無しさん
2008/01/10(木) 18:28:100175本田
2008/01/17(木) 17:43:02>Crispin Goswell
>Microsoft Office Product Unit
>1995年 春
>1995年9月13日改訂
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdncomp/htm/com_co.asp
>抄録
>この解説書は、
>Microsoft(r) OLE Component Object Model(COM)オブジェクトを作成し、
>効果的に使用する方法を説明しています。
>例文はほとんどCで書かれていますので、実際に何が行われているかが、大変分かりやすく示されています。
>プログラマの中には、オブジェクトを実行するためにC++を好んで使用する人もいるでしょう。
>C++プログラマの観点からCOMの概念および基本的な使用法を論じているのは
>Kraig Brockschmidt著のInside OLE (第2版)(MSDN Library(Books))です。
>COMとは何か、またその設計や哲学の後ろにある動機付けをより理解する事に興味がある読者なら、
>Component Object Model Specification(MSDN Library(Specifications))の最初の2章を読んでください。
>第1章には簡単なイントロダクションを、第2章では徹底的に概要を解説してあります。
>この解説書ではInside OLEとCOM Specificationにある情報を、
>COMオブジェクトを実装する良い方法をいくつか示しながら解説するようにしてあります。
0176デフォルトの名無しさん
2008/01/21(月) 23:07:01デフォルトのIExplorerCommandProviderって取得できねーのかな?
なんかあの緑色のコマンドバーのなかのコマンドって余所から実行できないんで困る
プレビューペインとかナビゲーションペインを出し入れしたいんだけど。
0177デフォルトの名無しさん
2008/01/24(木) 00:31:420178デフォルトの名無しさん
2008/01/28(月) 17:29:23ツールバーを表示させたとき、エクスプローラーごとダウンして
バグの発生場所を特定できません。
空のツールバーの作成・起動には成功したのですが、外部から取得したデータを
反映させる機能を追加したところ、ダウンする現象が発生しています。
COMサーバーのデバッグ方法をご教授ください。
環境は、WindowsVista、VC++2008EE、ATLおよびMFC不使用です。
0179デフォルトの名無しさん
2008/02/06(水) 23:57:12サーバ上のやつは取得できて、動かせます
クライアントからサーバ上のCOMを使いたい・・・
IDとかは設定してるのだが・・・
検索3時間してもわからず、ググるキーワードを2,3教えて下さい (-_-)
0180デフォルトの名無しさん
2008/02/07(木) 00:19:02Visual C++なら、アタッチすれば、あとは普通のアプリケーション同様に
ブレークポイントで止めて、変数見たりステップ実行したりできるぞ。
>>179
日本語でおk
0181デフォルトの名無しさん
2008/02/07(木) 01:43:490182デフォルトの名無しさん
2008/02/07(木) 01:46:42きめえから市ね
■ このスレッドは過去ログ倉庫に格納されています