[表示 : 全て 最新50 1-99 2chのread.cgiへ]
Update time : 11/15 11:08 / Filesize : 19 KB / Number-of Response : 86
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

COM



1 名前:IUnkonwn mailto:sage [2007/01/10(水) 20:13:15 ]
いざ語れや

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()を呼んでいます。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<19KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef