1 名前:IUnkonwn mailto:sage [2007/01/10(水) 20:13:15 ] いざ語れや
2 名前:Iknow mailto:sage [2007/01/10(水) 20:15:35 ] 嫌だね。
3 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 22:50:49 ] 関連スレ どうしてCOMは即死したのか ttp://pc10.2ch.net/test/read.cgi/tech/1143171172/l50 【OLE】オートメーション総合スレ【ActiveX】 ttp://pc10.2ch.net/test/read.cgi/tech/1137771139/l50 一応 Win32API質問箱 Build48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/l50
4 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 23:01:55 ] 何となく偉くなった気がする15の夜
5 名前:デフォルトの名無しさん [2007/01/10(水) 23:19:39 ] 【ネガティブ派遣根性チェック】 3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。 □派遣先の社員の意見にはたとえ間違っていても反対しない □派遣先から「いつまでもここで仕事してくださいね」と言われるようになりたい □自社に仕事を持ち帰れるように言われるとムカつく □自社で仕事なんてできるわけがない □派遣/受託の差異を指摘する人間はムカつく □派遣先には仕事だけでなく自分のプライベートについても指示して欲しい □自分の月額金額を知らない □派遣先社員より自分の生涯収入が低いのは当然だ □派遣先に尻尾を振り、いつまでも一緒に仕事をすることが大切だ □今のプロジェクトが終わっても同じ派遣先に常駐したい
6 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 22:05:26 ] ヽ / /⌒\ /ヽヽ|/⌒\ii|\ / /ヾゞ///\\| |/ |;;;;;;|/ハ \| |;;;;//⌒ヽ |;/( ^ω^) >>1 おっおっおっ乙枯ー . |{ ∪ ∪ |;;ヾ.,____,ノ |;;; | |;;;;;| |;;;;;|
7 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 00:45:10 ] COMの本、死ぬの早すぎ もうちょっと刷ればいいのに
8 名前:デフォルトの名無しさん [2007/01/16(火) 17:05:09 ] 一通り仕組み頭に入れとけばそれ以上深い話があるでもなく あとは使う部品のマニュアル嫁としかいえないからなw
9 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 17:12:56 ] 簡単に言えば、異なる言語間で共通に使用できるだけで、 異なる環境での使用が困難だったからw (MS仕様のOSでないと使えない) Javaの逆を狙って、見事に大ハズレしただけ もうMSには、新技術を提起して欲しくない。 5年持ったためしがないんだもの・・・・
10 名前:デフォルトの名無しさん [2007/01/16(火) 18:00:56 ] COMは傑作なんだけど。馬鹿にはわからないのが残念でならない
11 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 18:35:27 ] 馬鹿にも分かるものこそが真の傑作だとは思わんか?
12 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 18:52:52 ] comの基本概念は、次の.NETに受け継がれてるけど(当たり前の話だが)、 その設計の具体的要素(インターフェースの呼出設計など)のほとんどは 破棄されて受け継がれず、結局NETフレームワークの大部分は、 JavaVMを参考にして設計された。。。 >>10 の様な知ったか馬鹿信者がいる限り、MSはまた独自のポンコツアーキテクチャを 世に送り出して、世界中のエンジニアを煙に巻く過ちを繰り返すだろう。
13 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 19:08:51 ] >>12 .NETの有り様からするとCOMが素晴らしいということを言いたいのですね?
14 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 19:22:44 ] >>9 COMは10年以上現役だろ むしろ.NETのほうがヤバイ
15 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 19:25:08 ] というかwindows自体がCOMの塊だろ。 winが続く限り生き残るだろ。
16 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 19:34:37 ] >>9 無知乙 COM はMicrosoft Windows Distributed interNet Application (Windows DNA)アーキテクチャにコンポーネント テクノロジを提供し、 Web ベースとクライアント/サーバー アプリケーションを単一のアーキテクチャに統合することを可能にします。 COM を使用することにより、開発者は任意の言語で、任意のネットワークを介して相互作用できる分散コンポーネントを作成することができます。 COM は、Solaris、HP-UX、DEC UNIX、Siemens Nixdorf SINIX など、他のプラットフォーム上のコンポーネントとの相互運用性も提供します。
17 名前:デフォルトの名無しさん [2007/01/16(火) 19:36:00 ] CLSIDがうざい 128ビットの癖にたまに被るし
18 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 19:37:05 ] COMの失敗は名前だけ
19 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 19:47:43 ] 検索できねー
20 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 19:52:11 ] >>14 Windowsの枠組み内でしか生きられないメジャーだがローカルな技術としてな。。。 >>16 >他のプラットフォーム上のコンポーネントとの相互運用性も提供します。 だから、これが上手くいかなかったんだよ! 知ったかは氏ね
21 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 20:07:52 ] 怒りっぽい人ですね
22 名前:デフォルトの名無しさん [2007/01/16(火) 20:10:14 ] 16はすぐ詐偽に引っかかるタイプ
23 名前:デフォルトの名無しさん [2007/01/16(火) 20:12:17 ] >>16 は単に MS のページか どっかの解説サイトからとってきただけなんじゃないの
24 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 20:21:00 ] COMを理解するために必死でC++の仕様を勉強した時期がありました。 嫌な思い出です。
25 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 20:54:51 ] OpenVMS h71000.www7.hp.com/openvms/products/dcom/ Solaris www.softpanorama.org/Net/Application_layer/rpc.shtml EntireX DCOM for LINUX www.softwareag.com/jp/products/entirex/downloads/download_exxdcom.asp Free DCE and DCOM sourceforge.net/projects/freedce J-Interop j-interop.sourceforge.net
26 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 21:02:02 ] >>5年持ったためしがないんだもの・・・・ COMもOLEも、もうすぐ20歳ですが?
27 名前:デフォルトの名無しさん [2007/01/16(火) 21:50:47 ] OLEの定義自体が、過去に二回もコロリと変わってる。 OLE1.0時代は、ただその略名通り(異アプリ間のデータ交換)の技術だったのが OLE2.0時代(COM誕生)には、一つのアーキテクチャの総称だと突如宣言してる。 しかし、ActiveXの誕生と共に「やっぱりただのLink&Embedでした」とまた変えてる。 あまりに節操がない、と言うかエンジニアを舐めてる
28 名前:デフォルトの名無しさん [2007/01/16(火) 22:02:54 ] アパートメントからしてよく分からん。 結局STAでも、他のスレッドからアクセスしていいんだよな。 単に、プロキシ・スタブを介するからMTAに比べると 性能が若干落ちるってことだよな??
29 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 22:52:16 ] DirectXもCOM
30 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 22:53:09 ] その代わり排他制御をしなくて済む(プロキシ・スタブがメソッド呼出をキューイングするため)という利点がある。
31 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 23:01:30 ] その代わり、Read Writeパターンが使えないのでサーバーパフォーマンスが 大幅に落ちるという欠点もある
32 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 17:04:18 ] ActiveX 〜犠牲者たち〜
33 名前:デフォルトの名無しさん [2007/01/17(水) 22:48:58 ] >>31 read write パターンって何ですか? COMは情報が少なくて困る
34 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 22:58:26 ] 名前までわかってるんだから検索しろよ つーか名前を付けたことがデザインパターンの最大の功績と言っても過言ではない
35 名前:デフォルトの名無しさん [2007/01/18(木) 00:03:23 ] なんだデザインパターンか
36 名前:デフォルトの名無しさん [2007/01/18(木) 05:00:46 ] >>35 こーゆーのがエンジニアかと思うと、なんか情けなくなってくるね
37 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 22:50:08 ] Java SwingとOLEとCORBA(にGUIコンポってあるの?)をJava上で手間なくリンクしたい。 ちょうどIEコンポーネントみたいな感じでOS毎の似たような部品を再利用したいんだ。
38 名前:デフォルトの名無しさん [2007/01/18(木) 23:03:05 ] >>36 なんなんだえらそうに デザパタ厨かよwwww
39 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 07:07:41 ] ネーミングパターン こきおろしパターン ぐぐれパターン 話題逸らしパターン
40 名前:デフォルトの名無しさん [2007/01/22(月) 18:43:51 ] 過疎
41 名前:デフォルトの名無しさん [2007/01/31(水) 13:09:50 ] CON
42 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 13:46:23 ] OCN
43 名前:デフォルトの名無しさん [2007/03/09(金) 16:56:26 ] IE用のツールバー作ろうとして、 IDeskBandを継承したクラスのSetSiteで パラメータからQueryInterfaceでIID_IOleWindowを 取得しようとしたんだが E_NOINTERFACEエラーが出る。 なんか心当たりある方いらっしゃいませんか?
44 名前:デフォルトの名無しさん [2007/03/09(金) 22:46:43 ] もしかしてIE7なのが原因? 開発環境はVS2005です。
45 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:54:14 ] どっと混む
46 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:35:59 ] 下手なシャレはよしなしゃれ
47 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:27:30 ] >>43 IOleWindowって自分自身じゃね?
48 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 10:47:13 ] >>47 idm.s9.xrea.com/ratio/2004/06/17/000104.html ここに >ツールバーがactivateされるとき、 IObjectWithSite#SetSite が呼ばれる。 >パラメータのIUnknownインターフェースは、IOleWIndowをquery可能なので、 >これを使ってツールバーの親となるウィンドウの情報を取得する。 >MSDNのサンプルでは、このタイミングでツールバー本体のウィンドウを生成している。 ってあって、MSDNでもそうなってたんだが。
49 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:34:41 ] >>48 IOleWindowとれたよ 親のReBar32WindowのハンドルもGetWindowで正しくとれてる。 Vistaだけども。
50 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 19:28:49 ] なんでだろ・・・ 解決したら報告します。
51 名前:デフォルトの名無しさん [2007/04/13(金) 18:44:41 ] COMCOMCOMCOMCOMCOMCOM COMCOMCOMCOMCOMCOMCOM COMCOMCOMCOMCOMCOMCOM COMCOMCOMCΟMCOMCOMCOM COMCOMCOMCOMCOMCOMCOM COMCOMCOMCOMCOMCOMCOM COMCOMCOMCOMCOMCOMCOM COMCOMCOMCOMCOMCOMCOMage
52 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 19:50:58 ] ATLの属性をつかってテキストで簡単にCOMを作るチュートリアルやってみたが、 あれATL7.0じゃないと動かねーじゃねぇか
53 名前:デフォルトの名無しさん [2007/04/25(水) 18:19:04 ] ネットの情報だけでCOMサーバを勉強するのって無理ある? MFCでコントロール作ってそれをコンテナに組入れるのはやったことあるけど ATLで見えないWinsock+COMサーバ.exeに挑戦中でCOMとソケット通信をどのように 連携すればいいのかで色々悩んだ。 結局ウィンドウメッセージとグローバル変数を駆使してなんとか目処がついた けど、もっとスマートなやり方が載ってる参考書はないんでしょうか?
54 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 12:40:13 ] >>53 ウィンドウを持たないCOMオブジェクトで、Winsockの非同期やるんなら、イベント使った方が 良いと思う。
55 名前:53 [2007/04/26(木) 18:32:04 ] >>54 ありがとう。 >イベント使った方が良いと思う。 のイベントとはウィンドウメッセージとの理解でよいですか? もう一点教えていただきたいことがあるのですが、 ブラウザに貼り付けたコントロール(ocx)からATLで作ったCOMサーバ.exeに Dispatchしてメソッドを呼ぶことができたのですが、 ブラウザを閉じるとCOMサーバ.exeも終了してしまいます。 ブラウザを閉じてもCOMサーバ.exeを常駐させたいのですが クライアント側/サーバ側どちらで対応すればよいのかさえ検討がつきません どのようにすればよいかご存知でしょうか?
56 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 19:14:00 ] よくない。WSAEventSelect使えって話でそ。
57 名前:53 [2007/04/26(木) 23:21:36 ] >>56 さん 了解です。 引続き>>55 についてご存知の方お力を貸してください。 お願いします。
58 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 10:49:59 ] DLLに汁
59 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 18:07:15 ] DCOMの実装に関する参考書や参考サイト知りませんか?
60 名前:デフォルトの名無しさん [2007/04/28(土) 18:31:14 ] ↑クライアントとサーバ両方の実装についてです。 言語は問わないのですが、できればVCについてお願いします。
61 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 02:27:45 ] >>51 なにぃっ、Mageだと!?貴様鉄道板住人だな!
62 名前:デフォルトの名無しさん [2007/05/03(木) 12:01:20 ] COMスレってなんでこんなに過疎ってるの? それについて議論しよう
63 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 12:01:47 ] ネットでCOMについて記述してるサイトもあんま見ない
64 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 12:35:53 ] COMに比べると似たようなことはドトネトの方が簡単にできるから もう存在意義がなくなってんじゃないの?
65 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 12:38:08 ] COMを使う舞台がエクセルVBAなんかに移ってるからな
66 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:28:42 ] なんで?comサーバでの利用機会とか無いの? アプリ間でデータ交換とか外部アプリへの機能提供とかの場面で利用価値あると思うけど まあ、代替手段は色々あるし、わざわざムズい技術を覚えてまでcomを利用する必要もないか 特に開発人口が多い業務系開発だったら尚更だな
67 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:43:47 ] 業務系ならなおさら何でもエクセルでやりたがる もしくはCOBOL
68 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:13:48 ] PlatformSDKにもMIDLはあることだしSxSアセンブリでのCOMならいくらかハードルも低いし、C++での共有ライブラリ作成という観点でもう少しひろまってもいい気がするんだけどな。 ActiveXでもOLEでもなくDLL+αとしてのCOMっていう観点でさ。 なんにしてもMFCやATLで新しくコンポーネント作るってのはなくなっていくんだろうな。せいぜいVB6でか.NETアセンブリからタイプライブラリ作る位になるのか。
69 名前:デフォルトの名無しさん [2007/05/07(月) 18:10:27 ] ATLでアウトプロセスサーバを作っているのですが、 親ウィンドウのメッセージループから自exe内のCOMオブジェクトを どのように参照すればよいかわかりません。 マクロで展開されたポインタがどこかにあると思うのですが どのように参照すればよいでしょうか? ATL初心者なので質問の表現がおかしいかも知れませんが よろしくお願いします。
70 名前:69 [2007/05/07(月) 19:26:22 ] デバッガで見てみたら Choge *a=(Choge*)&ObjectMap[n]; で参照できました。 で、いいですか? ←直感的にやったらできたので不安ですが・・・
71 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 03:09:34 ] いいよ〜いいよ〜いいよ〜
72 名前:デフォルトの名無しさん [2007/05/08(火) 12:19:59 ] もー。ATLイベントの実装の仕方がいまいちわからん。
73 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 12:45:22 ] イベント出す側だったらウィザードが殆どやってくれるからあまり意識したことないけど?
74 名前:デフォルトの名無しさん [2007/05/08(火) 13:32:57 ] イベント出す側なんですが、 クラスビューからメソッドと接続ポイントを追加したんですが xxxxx.idlとxxxxxCP.hに空のクラスを作るだけで メソッドの雛形作ってくれないんですよ。 最初のウィザードのときシンプルオブジェクトで作成してるからでしょうか?
75 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 13:42:03 ] ATLシンプルオブジェクトを追加するとき"接続ポイント"にチェックいれて作れば クラスビューに IHoge と Libの下に _IHogeEvents が出来ているでしょ イベントメソッド追加したければ _IHogeEventsで右クリック - メソッド追加で追加できるよ メソッド追加した後、実装クラス (CHoge) の方で右クリック - 接続ポイントの追加をもう一回 やるのを忘れんな
76 名前:デフォルトの名無しさん [2007/05/08(火) 14:49:43 ] で、できました。 >接続ポイントの追加をもう一回やるのを忘れんな もう一回やったらできました・・・なぜもう一回なのかわかりませんか゛ とにかく今日一日試行錯誤していたのが「もう一回」のキーワードで解決しました。 >>75 さんになにかごちそうしたい気持ちでいっぱいです。
77 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:24:46 ] 極稀に2chも役に立ったり立たなかったりする
78 名前:デフォルトの名無しさん [2007/05/08(火) 17:48:04 ] もう一役お願いします。 イベントを作成したのですが、イベントがクライアントに届きません。 Fire_Hogeを呼びだすときデバッガで追ったら int nConnections = m_vec.GetSize(); で0が帰ってきて その下のループの中のpDispatch->Invokeまでいきません。 ソフトの構成としてはアウトプロセスサーバ.exeからブラウザのjavascriptへイベントを発生したいのですが、上記の通りとなり、イベントを渡すことができませんでした。 m_vecが接続を管理するらしいのですが、javascriptからの接続がうまくないのでしょうか? 接続の方法としては<OBJECT>タグにCLSIDを埋め込むようにしてjavascriptでサーバ.exeのメソッドを呼び出すことは成功しています。
79 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:41:37 ] javascriptからEventをAdviseしてあげた?
80 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:21:50 ] >>78 Fire_Hoge()の呼び出しってどうやってます? 多分IHogeの実装クラスCHogeのインスタンスから呼び出してると思いますが、 COMクライアントが作ったCHogeインスタンスから呼ばないとFireできないっす
81 名前:80 mailto:sage [2007/05/08(火) 20:30:56 ] 補足: インターフェースをシングルトンにしとけば作成されるインスタンスは必ず一つなので、 いっそシングルトンにしてしまうとか つ DECLARE_CLASSFACTORY_SINGLETON ただこれをやると以下の問題も・・・ つ support.microsoft.com/kb/198834/ja 後は泥臭いやり方しか知らない
82 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:07:42 ] こんな感じなんですが・・・ EventをAdviseとはどのようなことをするのでしょうか? <SCRIPT language="javascript" for="HogeID" event="HogeEvents(a, b)"> alert(a); </SCRIPT> <OBJECT ID="HogeID" CLASSID="CLSID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"> </OBJECT> Adviseをお願いします。
83 名前:デフォルトの名無しさん [2007/05/08(火) 21:08:40 ] >>80 のアンカー間違えました。>>79 が正解です
84 名前:デフォルトの名無しさん [2007/05/08(火) 21:14:49 ] >>82 は>>79 に対するレスです。 >>83 は誤爆です。 >>80 ,81 ありがとうございます。 参考にさせていただき再び試行錯誤させていただきます。
85 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:21:59 ] >>80 書き忘れましたが、Fire_Hoge()の呼び出しはは ブラウザ(HTMLに記述したjavascript)からCHoge.exeのメソッドを呼び出して 呼び出されたメソッドの中でFire_Hoge()を呼んでいます。