探検
COM
■ このスレッドは過去ログ倉庫に格納されています
2007/01/10(水) 20:13:15
いざ語れや
149デフォルトの名無しさん
2007/12/14(金) 22:18:03 IDropTarget/IDropTargetHelperを実装したクラスのウィンドウで
ドラッグドロップをしています。
そのウィンドウ上にマウスカーソルがあるときに他のウィンドウを非アクティブのまま
表示するようにしたいんですが、ウィンドウを表示すると元のウィンドウの下に
ドラッグイメージが隠れてしまいます。
(後から表示したいウィンドウもIDropTarget/IDropTargetHelperを実装してます。そっち上では
ドラッグイメージは隠れません)
ドラッグイメージのZOrderをなんとかしたいわけですが、
ヒント等ご存知の方いらしたら教えてくんなましょ
ドラッグドロップをしています。
そのウィンドウ上にマウスカーソルがあるときに他のウィンドウを非アクティブのまま
表示するようにしたいんですが、ウィンドウを表示すると元のウィンドウの下に
ドラッグイメージが隠れてしまいます。
(後から表示したいウィンドウもIDropTarget/IDropTargetHelperを実装してます。そっち上では
ドラッグイメージは隠れません)
ドラッグイメージのZOrderをなんとかしたいわけですが、
ヒント等ご存知の方いらしたら教えてくんなましょ
150デフォルトの名無しさん
2007/12/15(土) 01:59:23 そのウィンドウと他のウィンドウと元のウィンドウと後から表示したいウィンドウが
どのウィンドウなのかわかんないのでAとかBとか名前付けて書いてくれると嬉しい
どのウィンドウなのかわかんないのでAとかBとか名前付けて書いてくれると嬉しい
151デフォルトの名無しさん
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使わないと正常なんで、諦めるかも……
すべてのウィンドウ: 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使わないと正常なんで、諦めるかも……
152デフォルトの名無しさん
2007/12/20(木) 16:43:05 mpeg compass.jp
名古屋駅近辺でお話しましょう
名古屋駅近辺でお話しましょう
153デフォルトの名無しさん
2007/12/20(木) 23:05:18 COM初心者です。
CLSCTX_INPROC_SERVERを渡したCoCreateInstanceは
1つのプロセス内に1つのインスタンスを作成するみたいですが、
1つのプロセス内の複数のスレッドでひとつのIIDで指定されたインスタンスを
スレッドごとに作成したいときはどうしたらいいのでしょう。
もしかしてIIDごとに何個つくれるとか決まってたりするんでしょうか
CLSCTX_INPROC_SERVERを渡したCoCreateInstanceは
1つのプロセス内に1つのインスタンスを作成するみたいですが、
1つのプロセス内の複数のスレッドでひとつのIIDで指定されたインスタンスを
スレッドごとに作成したいときはどうしたらいいのでしょう。
もしかしてIIDごとに何個つくれるとか決まってたりするんでしょうか
154デフォルトの名無しさん
2007/12/20(木) 23:14:33 各スレッドでCoCreateInstanceを呼べばいい。
155デフォルトの名無しさん
2007/12/28(金) 13:03:07 Win32スレから誘導されてきますた
IExtractImageを実装したんだけど、2000で動かすと時々フォルダ内の全ファイルに同じ
サムネイルが出るようになる不具合はどう対処したらいいんでしょう。
MSDNのサンプル実装で起きるし、フラグ類いろいろ変えたりマルチスレッド対応にしたり
しても改善せず・・・
IExtractImageを実装したんだけど、2000で動かすと時々フォルダ内の全ファイルに同じ
サムネイルが出るようになる不具合はどう対処したらいいんでしょう。
MSDNのサンプル実装で起きるし、フラグ類いろいろ変えたりマルチスレッド対応にしたり
しても改善せず・・・
156デフォルトの名無しさん
2008/01/03(木) 22:27:35 関数型でCOM使いたいんだけど、実装ありまっか?
157デフォルトの名無しさん
2008/01/03(木) 23:06:10 あるよ。
158デフォルトの名無しさん
2008/01/04(金) 21:05:48 処理系を教えてください
159デフォルトの名無しさん
2008/01/04(金) 21:12:55 >>144の本(ATL Internals 2nd Edition)て日本語版出ないのかねぇ。
160デフォルトの名無しさん
2008/01/04(金) 22:24:07 >>156
F#なら.NET経由でいけるのでは
F#なら.NET経由でいけるのでは
161デフォルトの名無しさん
2008/01/06(日) 12:47:23162デフォルトの名無しさん
2008/01/07(月) 18:37:25 終わってるというよりは枯れてる・・・と思いたい
163デフォルトの名無しさん
2008/01/08(火) 08:38:47 COM無いとウィンドウズ自体起動しないだろ
164デフォルトの名無しさん
2008/01/08(火) 09:32:43 インタネッツセキュリティが無いので、DCOMは終わりマスタ。
PDFリーダーとか本当にメジャーなものしか存在が許されないというか。
PDFリーダーとか本当にメジャーなものしか存在が許されないというか。
165デフォルトの名無しさん
2008/01/08(火) 22:27:40 >>163
さすがに起動はするwwwwwwwwwww
さすがに起動はするwwwwwwwwwww
166デフォルトの名無しさん
2008/01/08(火) 22:31:55 デスクトップ(HDESKTOP的な意味で)の表示くらいまではいけるうと思う。
167デフォルトの名無しさん
2008/01/09(水) 03:09:25 タスクマネージャとかってCOM使ってる?
168デフォルトの名無しさん
2008/01/09(水) 03:41:29 タスクマネージャくらいならパフォーマンスカウンタとかPSAPIくらいで大丈夫じゃねーか
デスクトップの表示まで行くと無理だな
IShellFolder
デスクトップの表示まで行くと無理だな
IShellFolder
169デフォルトの名無しさん
2008/01/09(水) 13:36:00 アプリケーションのタブでアイコンを表示してるから
COMつかってるんじゃね
COMつかってるんじゃね
170デフォルトの名無しさん
2008/01/09(水) 13:43:28 な に が い い た い ?
171デフォルトの名無しさん
2008/01/10(木) 02:32:53 アイコン表示してるのはリストビューの標準機能とイメージリストコントロールでCOM関係ない
172デフォルトの名無しさん
2008/01/10(木) 02:40:58 VistaはCOM無しでは動かないかも
VistaのユーザーモードドライバはCOM仕様だから
VistaのユーザーモードドライバはCOM仕様だから
173デフォルトの名無しさん
2008/01/10(木) 08:22:49 >>164
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030717/3/?ST=security
やべえ今までしらんかった
Administratorでログオンすると危険にさらされるんだね。
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030717/3/?ST=security
やべえ今までしらんかった
Administratorでログオンすると危険にさらされるんだね。
174デフォルトの名無しさん
2008/01/10(木) 18:28:10 そもそもDCOMをルー田子えさ攻め
175本田
2008/01/17(木) 17:43:02 >COMプログラマの解説書
>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オブジェクトを実装する良い方法をいくつか示しながら解説するようにしてあります。
>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オブジェクトを実装する良い方法をいくつか示しながら解説するようにしてあります。
176デフォルトの名無しさん
2008/01/21(月) 23:07:01 VistaのExplorerで
デフォルトのIExplorerCommandProviderって取得できねーのかな?
なんかあの緑色のコマンドバーのなかのコマンドって余所から実行できないんで困る
プレビューペインとかナビゲーションペインを出し入れしたいんだけど。
デフォルトのIExplorerCommandProviderって取得できねーのかな?
なんかあの緑色のコマンドバーのなかのコマンドって余所から実行できないんで困る
プレビューペインとかナビゲーションペインを出し入れしたいんだけど。
177デフォルトの名無しさん
2008/01/24(木) 00:31:42 俺はしたくないしされたくもない
178デフォルトの名無しさん
2008/01/28(月) 17:29:23 タスクバーのツールバー(IDeskBand)をCOMサーバーとして作成しています。
ツールバーを表示させたとき、エクスプローラーごとダウンして
バグの発生場所を特定できません。
空のツールバーの作成・起動には成功したのですが、外部から取得したデータを
反映させる機能を追加したところ、ダウンする現象が発生しています。
COMサーバーのデバッグ方法をご教授ください。
環境は、WindowsVista、VC++2008EE、ATLおよびMFC不使用です。
ツールバーを表示させたとき、エクスプローラーごとダウンして
バグの発生場所を特定できません。
空のツールバーの作成・起動には成功したのですが、外部から取得したデータを
反映させる機能を追加したところ、ダウンする現象が発生しています。
COMサーバーのデバッグ方法をご教授ください。
環境は、WindowsVista、VC++2008EE、ATLおよびMFC不使用です。
179デフォルトの名無しさん
2008/02/06(水) 23:57:12 COM・・・
サーバ上のやつは取得できて、動かせます
クライアントからサーバ上のCOMを使いたい・・・
IDとかは設定してるのだが・・・
検索3時間してもわからず、ググるキーワードを2,3教えて下さい (-_-)
サーバ上のやつは取得できて、動かせます
クライアントからサーバ上のCOMを使いたい・・・
IDとかは設定してるのだが・・・
検索3時間してもわからず、ググるキーワードを2,3教えて下さい (-_-)
180デフォルトの名無しさん
2008/02/07(木) 00:19:02181デフォルトの名無しさん
2008/02/07(木) 01:43:49 エッチ スケッチ
182デフォルトの名無しさん
2008/02/07(木) 01:46:42 >>179
きめえから市ね
きめえから市ね
183179 レス禁止
2008/02/07(木) 21:45:43 とりあえず2,3単語が分かりました、消えます
184デフォルトの名無しさん
2008/02/08(金) 03:48:03185デフォルトの名無しさん
2008/02/08(金) 17:32:50 ネットワークに関係なく、
単にコンポーネントの提供する側と利用する側という意味で使っているかもよ。
179の書き方ではどういう意味か分からないけど。
単にコンポーネントの提供する側と利用する側という意味で使っているかもよ。
179の書き方ではどういう意味か分からないけど。
186デフォルトの名無しさん
2008/02/08(金) 21:26:27 俺もそうかと思ってたので>>184の洞察力に感服
187デフォルトの名無しさん
2008/02/21(木) 16:24:48 このスレに住まわれるCOMの精霊様、
どうか以下の件についてお答えくださいませ。
VS2005でATLプロジェクトでWindowsサービスを作りましたが、
PreMessageLoop()の中で、以下のコードが無いとサービスが起動しません。
-----
if (SUCCEEDED(hr) && !m_bDelayShutdown)
hr = CoResumeClassObjects();
-----
しかしサービスに1つでもCOMインタフェースを追加すると
CoResumeClassObjects()がS_OK以外を返すようになります。
そこでCoResumeClassObjects()を呼び出さないようにしても、
サービスは起動してくれます。
なぜCOMインタフェースが自分で追加していない状態では
CoResumeClassObjects()を呼ぶ必要があり、
COMインタフェースを追加すると呼ぶ必要がなくなるのでしょうか?
どうか以下の件についてお答えくださいませ。
VS2005でATLプロジェクトでWindowsサービスを作りましたが、
PreMessageLoop()の中で、以下のコードが無いとサービスが起動しません。
-----
if (SUCCEEDED(hr) && !m_bDelayShutdown)
hr = CoResumeClassObjects();
-----
しかしサービスに1つでもCOMインタフェースを追加すると
CoResumeClassObjects()がS_OK以外を返すようになります。
そこでCoResumeClassObjects()を呼び出さないようにしても、
サービスは起動してくれます。
なぜCOMインタフェースが自分で追加していない状態では
CoResumeClassObjects()を呼ぶ必要があり、
COMインタフェースを追加すると呼ぶ必要がなくなるのでしょうか?
188デフォルトの名無しさん
2008/02/22(金) 01:05:40 Effective COMには
・1つ以上のクラスをエクスポートしてるサービスが最初のCoregisterClassObjectの呼び出しで開始してしまうと、それらのクラスの初期化の問題が起きる場合がある
・このためREGCLS_SUSPENDフラグで起動を遅らせて、CoResumeClassObjectsで起動させる
みたいなことはあったけど。
追加したときにフラグ上書きしたことになってるのではと想像。
・1つ以上のクラスをエクスポートしてるサービスが最初のCoregisterClassObjectの呼び出しで開始してしまうと、それらのクラスの初期化の問題が起きる場合がある
・このためREGCLS_SUSPENDフラグで起動を遅らせて、CoResumeClassObjectsで起動させる
みたいなことはあったけど。
追加したときにフラグ上書きしたことになってるのではと想像。
189187
2008/02/22(金) 13:15:06 ふむー、こういうことかな?
サービスそのものがCOMであるけど、サービスは起動直後に立ち上がるから、
自分でタイミング見て初期化しないといけない。
新たにCOM実装すると、ATLのどっかで初期化するようになる。
よってサービスでCoregisterClassOBjectsを呼ぶと2重初期化で
エラーを返すのかな。
なんにせよ、COM追加したら呼ばないでいいのだろうか。
とりあえず外部アプリからサービスのCOM呼び出しとかは、うまくは動いてるし。
サービスそのものがCOMであるけど、サービスは起動直後に立ち上がるから、
自分でタイミング見て初期化しないといけない。
新たにCOM実装すると、ATLのどっかで初期化するようになる。
よってサービスでCoregisterClassOBjectsを呼ぶと2重初期化で
エラーを返すのかな。
なんにせよ、COM追加したら呼ばないでいいのだろうか。
とりあえず外部アプリからサービスのCOM呼び出しとかは、うまくは動いてるし。
190デフォルトの名無しさん
2008/02/26(火) 02:30:07 外部からエクスプローラーバーのIBandSiteを取得したいのですが、
とれません。
どのようにして取得すればよいでしょうか?
とれません。
どのようにして取得すればよいでしょうか?
191デフォルトの名無しさん
2008/03/23(日) 00:54:12 CHogeってCOMクラスが
HRESULT SetHoge(IDispatch* pV)
ってメソッドを持っていて、pVのポインタをCHogeのメンバとして保持するとき
- SetHoge()の先頭くらいでthis->pV->AddRef()
- FinalRelease()でthis->pV->Release()
ってすればOKって認識であってるかな。
HRESULT SetHoge(IDispatch* pV)
ってメソッドを持っていて、pVのポインタをCHogeのメンバとして保持するとき
- SetHoge()の先頭くらいでthis->pV->AddRef()
- FinalRelease()でthis->pV->Release()
ってすればOKって認識であってるかな。
192デフォルトの名無しさん
2008/03/27(木) 21:43:35 >>191
一般的にはこんな感じ
SetHoge(IHoge* pHoge)
{
if (pHoge) pHoge->AddRef();
if (this->pHoge) this->pHoge->Release();
this->pHoge = pHoge;
}
NULLをセットして開放することを許可しておくと、循環参照等を
断ち切るときのためになるので吉。
ATL 等なら、CComPtr<IHoge> pHoge とメンバ変数を宣言し、
SetHoge(IHoge* pHoge) { this->pHoge = pHoge; } で十分。
非 ATL なら _com_ptr_t の利用も考慮してみると良いと思う。
一般的にはこんな感じ
SetHoge(IHoge* pHoge)
{
if (pHoge) pHoge->AddRef();
if (this->pHoge) this->pHoge->Release();
this->pHoge = pHoge;
}
NULLをセットして開放することを許可しておくと、循環参照等を
断ち切るときのためになるので吉。
ATL 等なら、CComPtr<IHoge> pHoge とメンバ変数を宣言し、
SetHoge(IHoge* pHoge) { this->pHoge = pHoge; } で十分。
非 ATL なら _com_ptr_t の利用も考慮してみると良いと思う。
193191
2008/03/27(木) 22:33:15 ああそうかメンバ自体をCComPtrにしとけば代入だけでいけますね。
194デフォルトの名無しさん
2008/04/13(日) 00:28:44 おお、COMのすれ、あるんだ!
195デフォルトの名無しさん
2008/04/13(日) 03:00:22 よろしくね(´・ω・`)
196デフォルトの名無しさん
2008/04/13(日) 03:09:06 先生、googleがCOMを検索してくれないので勉強できません
197デフォルトの名無しさん
2008/04/14(月) 23:31:09 COM
OLEオートメーション総合
どうしてCOMは即死したのか
の3つのCOM関連スレがあるけど、どう使い分けるの?
というかどれもすでに死んでるのかな、、少しさびしい。
OLEオートメーション総合
どうしてCOMは即死したのか
の3つのCOM関連スレがあるけど、どう使い分けるの?
というかどれもすでに死んでるのかな、、少しさびしい。
198デフォルトの名無しさん
2008/04/15(火) 00:13:00 >>197
IEコンポーネントをC++から使う話はたまにWin32APIスレで見る。
.NETから各種COMコンポーネントを使う話もたまにC#やVB.NETのスレで見る。
あと、DirectXのことは当然DirectXのスレで扱われる。
質問はそっちで賄われるから、
その3つのスレはほとんど雑談くらいにしか使われないんだよね。
IEコンポーネントをC++から使う話はたまにWin32APIスレで見る。
.NETから各種COMコンポーネントを使う話もたまにC#やVB.NETのスレで見る。
あと、DirectXのことは当然DirectXのスレで扱われる。
質問はそっちで賄われるから、
その3つのスレはほとんど雑談くらいにしか使われないんだよね。
199デフォルトの名無しさん
2008/04/18(金) 01:20:01 雑談モード。
たしかMSHTML::IHTMLWindowだったか、QueryServiceというのがあったが、QueryInterfaceと何が違ったんだろう…。
どっちもIFを取得するという点では同じなのだが。何か長短があるんだろうか。
たとえば自分がComponent作るとき、QuerySeriviceでIF提供したほうがいいなって場面あるんだろか。
たしかMSHTML::IHTMLWindowだったか、QueryServiceというのがあったが、QueryInterfaceと何が違ったんだろう…。
どっちもIFを取得するという点では同じなのだが。何か長短があるんだろうか。
たとえば自分がComponent作るとき、QuerySeriviceでIF提供したほうがいいなって場面あるんだろか。
200デフォルトの名無しさん
2008/04/22(火) 15:39:39 IBindCtxとIMonikerの関係と、存在意義について教えてください。
201デフォルトの名無しさん
2008/04/22(火) 18:00:23 それらは、MkParseDisplayNameとBindToObjctや、
それをラップしたCoGetObjectなどのように
文字列からCOMオブジェクトを作るためのものだと俺は理解している。
IMonikerはその文字列をくるんだだけのインタフェース。
IBindCtxはオプションを指定するBIND_OPTSをくるんだだけのインタフェース。
実際にはもう少し高機能だろうけど。
文字列ってのは何でもあり。ファイルパスやURLもそうだし、
とあるExcelブックのあるセルを参照するのは
"C:\[hoge.xls]Sheet1!A5"みたいな感じだったと思う。
それをラップしたCoGetObjectなどのように
文字列からCOMオブジェクトを作るためのものだと俺は理解している。
IMonikerはその文字列をくるんだだけのインタフェース。
IBindCtxはオプションを指定するBIND_OPTSをくるんだだけのインタフェース。
実際にはもう少し高機能だろうけど。
文字列ってのは何でもあり。ファイルパスやURLもそうだし、
とあるExcelブックのあるセルを参照するのは
"C:\[hoge.xls]Sheet1!A5"みたいな感じだったと思う。
202200
2008/04/22(火) 18:45:43 >>201
ありがとうございます。
IBindCtxやIMonikerを引数に渡すAPIやInterfaceが多いのですが、
MSDNを何度読んでも、どういう時にどういう設定で使えばよいか良くわからず、困っています。
MSDNに、
The IBindCtx interface provides access to a bind context, ・・・
と書かれていますが、”bind context”とは何なのでしょうか?
ありがとうございます。
IBindCtxやIMonikerを引数に渡すAPIやInterfaceが多いのですが、
MSDNを何度読んでも、どういう時にどういう設定で使えばよいか良くわからず、困っています。
MSDNに、
The IBindCtx interface provides access to a bind context, ・・・
と書かれていますが、”bind context”とは何なのでしょうか?
203デフォルトの名無しさん
2008/04/22(火) 18:49:42 文字列からオブジェクトへの変換を行うバインダへのハンドルのようなもんと思えば
204デフォルトの名無しさん
2008/04/23(水) 07:47:16 >>199
自分の理解では。QueryInterfaceは、あくまでもそのオブジェクトが持つ機能を公開するもので。
QueryServiceは、そのオブジェクトが管理している別のオブジェクトを返すものだと思っている。
例えば、プラグインとかさ。
自分の理解では。QueryInterfaceは、あくまでもそのオブジェクトが持つ機能を公開するもので。
QueryServiceは、そのオブジェクトが管理している別のオブジェクトを返すものだと思っている。
例えば、プラグインとかさ。
205デフォルトの名無しさん
2008/04/23(水) 16:12:01 >>119
QueryInterface は自分自身の IUnknown を返さなくてはならない
(オブジェクトの寿命や同定とかいう観点から)という制約というか仕様なので、
要求された機能を持つ他のオブジェクト(かも知れない)のインタフェイスを
返すには使えないから。
QueryInterface は自分自身の IUnknown を返さなくてはならない
(オブジェクトの寿命や同定とかいう観点から)という制約というか仕様なので、
要求された機能を持つ他のオブジェクト(かも知れない)のインタフェイスを
返すには使えないから。
206デフォルトの名無しさん
2008/04/23(水) 17:03:26207デフォルトの名無しさん
2008/04/23(水) 19:07:22208デフォルトの名無しさん
2008/04/25(金) 00:15:14209デフォルトの名無しさん
2008/04/25(金) 01:37:41 ごめん、自己解決。なんで必要か分かった。
はじめから追加サービスがどれだけあるか決まってるならGetterでいいが、
今後の拡張にそってどれだけサービスが増えるか分からないので、名前引きにした、ということですな。
expandoみたいな考え方な。
だからPluginとかいう話もガイシュツだったわけね。賢いなぁ、アドバイスしてくれた人
はじめから追加サービスがどれだけあるか決まってるならGetterでいいが、
今後の拡張にそってどれだけサービスが増えるか分からないので、名前引きにした、ということですな。
expandoみたいな考え方な。
だからPluginとかいう話もガイシュツだったわけね。賢いなぁ、アドバイスしてくれた人
210デフォルトの名無しさん
2008/04/26(土) 01:29:06 COMコンポーネントのメソッドから、COMコンポーネント呼び出し元クライアントの
SID取って管理者権限か判断とかできるかな?
SID取って管理者権限か判断とかできるかな?
211デフォルトの名無しさん
2008/09/07(日) 09:08:57 COM勉強してるけど、楽しいなあ
212デフォルトの名無しさん
2008/09/07(日) 09:56:27 最初だけだよ・・・一定規模以上のプログラム作り出したら全てを放り投げたくなる
213デフォルトの名無しさん
2008/09/07(日) 10:50:31 Javaが90年代に鯖サイドであっという間に普及したのはCOMのめんどくささのおかげ
CORBAよりはましだけど
CORBAよりはましだけど
214デフォルトの名無しさん
2008/09/07(日) 18:37:14 何ズレた事言ってんだよw
215デフォルトの名無しさん
2008/10/22(水) 17:34:53 C#からCOMいじりしてると、なんか脳液がドクドク出てくるのが分かる
もうシェルインターフェイスだけで丼飯バクバク食えるぞ
自分がMだとは思わなかった
もうシェルインターフェイスだけで丼飯バクバク食えるぞ
自分がMだとは思わなかった
216デフォルトの名無しさん
2008/10/22(水) 18:26:23 C++からCOMいじると最強。 >これ、何の意味がある暗号インターフェース?
217デフォルトの名無しさん
2008/10/22(水) 18:31:43 これ、何語? >MFC
218デフォルトの名無しさん
2008/10/24(金) 13:03:42219デフォルトの名無しさん
2008/10/24(金) 19:23:32 C#ではExcelのオートメーションみたいにデフォルト引数を使いまくりだと死ねる。
220デフォルトの名無しさん
2008/10/27(月) 11:06:10 C#では重かったり、.net frameworkでサポートされてないのを
C++で書いてCOM化してC#から呼ぶのは使えるな。
C++で書いてCOM化してC#から呼ぶのは使えるな。
221デフォルトの名無しさん
2008/10/27(月) 11:10:24 ↑
C#とCOMを無きものにしたらどうよ?
C#とCOMを無きものにしたらどうよ?
222デフォルトの名無しさん
2008/10/27(月) 12:34:16 windowsでGUIアプリ作るのにC#って選択肢ははずせないしね・・・
さすがに、いまさらATLとかは辛い。
さすがに、いまさらATLとかは辛い。
223デフォルトの名無しさん
2008/10/27(月) 12:43:10 >windowsでGUIアプリ作るのにC#
外して下さい。
おながいします。
外して下さい。
おながいします。
224デフォルトの名無しさん
2008/10/30(木) 22:47:48 COM作ろうと思って、shobjidl.hインクルードしたんだが、多重定義のエラー
で、調べてみるとNO_WIN32_LEAN_AND_MEANをdefineすれば解決できるらしい
#define NO_WIN32_LEAN_AND_MEANしようが、コンパイルオプションに/D NO_WIN32_LEAN_AND_MEAN
つけようが、まだ多重定義エラーがでる・・・
解決策おしえてー;;
win xp sp3
vc++6
platform sdk 2003 server sp1
で、調べてみるとNO_WIN32_LEAN_AND_MEANをdefineすれば解決できるらしい
#define NO_WIN32_LEAN_AND_MEANしようが、コンパイルオプションに/D NO_WIN32_LEAN_AND_MEAN
つけようが、まだ多重定義エラーがでる・・・
解決策おしえてー;;
win xp sp3
vc++6
platform sdk 2003 server sp1
225デフォルトの名無しさん
2008/10/30(木) 23:04:27 WIN32_LEAN_AND_MEANを定義したままなんてことはないよな?
226デフォルトの名無しさん
2008/10/30(木) 23:08:44 >>225
はい。
ソースのほうは
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
にしてるので・・・
はあ・・・・なんでだ・・・
なんだかんだで1日中調べてる・・・
どこかで、VC++6では2003年2月以降に発行されたplatform sdkは使えないとか
書いてあったけどそれは違うよね・・・?
はい。
ソースのほうは
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
にしてるので・・・
はあ・・・・なんでだ・・・
なんだかんだで1日中調べてる・・・
どこかで、VC++6では2003年2月以降に発行されたplatform sdkは使えないとか
書いてあったけどそれは違うよね・・・?
227デフォルトの名無しさん
2008/10/30(木) 23:12:53228デフォルトの名無しさん
2008/10/30(木) 23:19:59 >>227
優先される?って?
/D WIN32_LEAN_AND_MEAN単独でも
#define WIN32_LEAN_AND_MEAN単独でも
どちらも同じように多重定義エラーでるんですよね・・・
ちなみに・・VC++6のコンパイルオプションだけど、
プロジェクト⇒設定⇒C/C++オプションのところに
/D WIN32_LEAN_AND_MEANを加えるですよね
優先される?って?
/D WIN32_LEAN_AND_MEAN単独でも
#define WIN32_LEAN_AND_MEAN単独でも
どちらも同じように多重定義エラーでるんですよね・・・
ちなみに・・VC++6のコンパイルオプションだけど、
プロジェクト⇒設定⇒C/C++オプションのところに
/D WIN32_LEAN_AND_MEANを加えるですよね
229デフォルトの名無しさん
2008/10/30(木) 23:29:32 >vc++6
>platform sdk 2003 server sp1
VCのバージョンを上げろゴラってことじゃないかと・・・
>platform sdk 2003 server sp1
VCのバージョンを上げろゴラってことじゃないかと・・・
230デフォルトの名無しさん
2008/10/30(木) 23:39:59231224,226,228
2008/10/31(金) 00:08:51 すみません。
すべてNO_WIN32_LEAN_AND_MEANです。
すべてNO_WIN32_LEAN_AND_MEANです。
232デフォルトの名無しさん
2008/11/10(月) 20:10:51 永遠なるCOMを称えてage
233デフォルトの名無しさん
2008/12/07(日) 02:34:42 Windowsの音量を変更するCOM教えてください。。。
すんません、こんな質問で。
すんません、こんな質問で。
234デフォルトの名無しさん
2008/12/08(月) 12:28:56 つ[http://www.google.co.jp/search?hl=ja&q=Windowsの音量を変更するCOM教えてください]
235デフォルトの名無しさん
2009/04/08(水) 22:12:02 "wshom.ocx"をimportしようとすると生成された.tlh,.tli でエラーが発生します
#import "C:\WINDOWS\system32\wshom.ocx" rename_namespace("XXX") named_guids
debug\wshom.tlh(1004) : error C2629: 'class _variant_t (' は不正です。
debug\wshom.tli(832) : warning C4003: マクロ 'GetFreeSpace' に指定された実引数の数が少なすぎます。
…
import以外にはなにもしていない(mainからreturnしているだけ)なのにこのようなエラーがでる理由がわかりません。
importするやり方が悪いのでしょうか?
#import "C:\WINDOWS\system32\wshom.ocx" rename_namespace("XXX") named_guids
debug\wshom.tlh(1004) : error C2629: 'class _variant_t (' は不正です。
debug\wshom.tli(832) : warning C4003: マクロ 'GetFreeSpace' に指定された実引数の数が少なすぎます。
…
import以外にはなにもしていない(mainからreturnしているだけ)なのにこのようなエラーがでる理由がわかりません。
importするやり方が悪いのでしょうか?
236デフォルトの名無しさん
2009/04/10(金) 19:40:45 ほしゅ
237235
2009/04/11(土) 21:35:32 ITypeLib ViewerからVBScript Regular Expression を*.IDLファイルに保存したら、
ファイルに出力されるインターフェースが途中までしか保存されません。
具体的には、IregExp2インターフェースの
interface IRegExp2 : IDispatch {
[id(0x00002711), propget]
HRESULT Pattern([out, retval] BSTR* pPattern);
[id(0x00002711), propput]
HRESULT Pattern([in] BSTR pPattern);
[id(0x00002712), propget]
HRESULT IgnoreCase([out, [EOF] ←[EOF]は出力されません。単にファイル終端なだけです
ここまででファイルの終端になっています。何が悪いんだろう・・・
ファイルに出力されるインターフェースが途中までしか保存されません。
具体的には、IregExp2インターフェースの
interface IRegExp2 : IDispatch {
[id(0x00002711), propget]
HRESULT Pattern([out, retval] BSTR* pPattern);
[id(0x00002711), propput]
HRESULT Pattern([in] BSTR pPattern);
[id(0x00002712), propget]
HRESULT IgnoreCase([out, [EOF] ←[EOF]は出力されません。単にファイル終端なだけです
ここまででファイルの終端になっています。何が悪いんだろう・・・
238デフォルトの名無しさん
2009/04/13(月) 02:42:25 >>237
最近同じところではまった気がする
結局、何が悪いかは分からなかったけど、ITypeLib View のウィンドウの右ペインで
テキスト選択 => コピー => エディタで貼り付け、
で回避した
ちなみにコピーは Ctrl+C
Ctrl+C のコピーできるなら、マウス右クリックの編集メニューサポートしとけよって…
最近同じところではまった気がする
結局、何が悪いかは分からなかったけど、ITypeLib View のウィンドウの右ペインで
テキスト選択 => コピー => エディタで貼り付け、
で回避した
ちなみにコピーは Ctrl+C
Ctrl+C のコピーできるなら、マウス右クリックの編集メニューサポートしとけよって…
239235
2009/04/14(火) 22:04:30 ありがとう!!!
手動コピペでうまくいった
手動コピペでうまくいった
240235
2009/04/14(火) 22:48:06 >>233
> Windowsの音量を変更するCOM教えてください。。。
> すんません、こんな質問で。
>
Dim objShell
Set objShell = CreateObject("Shell.Application.1")
objShell.ControlPanelItem("mmsys.cpl")
これでどうよ?コントロールパネル-サウンドとオーディオデバイスのプロパティ を出すだけだけど
> Windowsの音量を変更するCOM教えてください。。。
> すんません、こんな質問で。
>
Dim objShell
Set objShell = CreateObject("Shell.Application.1")
objShell.ControlPanelItem("mmsys.cpl")
これでどうよ?コントロールパネル-サウンドとオーディオデバイスのプロパティ を出すだけだけど
241235
2009/04/14(火) 23:23:57 APIでwaveOutSetVolume()ってのがあるみたいだな>>オーディオの調整
242デフォルトの名無しさん
2009/04/16(木) 13:13:27 はいはい
243デフォルトの名無しさん
2009/05/05(火) 15:20:06244デフォルトの名無しさん
2009/08/27(木) 04:41:21 あげ
2009/08/30(日) 05:14:08
COM形式の実行ファイルの話はこのスレでいいんですか
2009/08/30(日) 12:33:10
いいとは思うが、COM形式の実行ファイルって何だ?
2009/08/30(日) 12:47:30
command.com
2009/08/30(日) 13:10:03
いまさらそっちのCOMなのか
じゃあ違うな
個別のスレはなさそうだし、「スレ立てるまでもない質問はここで」とかで聞くしかないんじゃないの?
じゃあ違うな
個別のスレはなさそうだし、「スレ立てるまでもない質問はここで」とかで聞くしかないんじゃないの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
- 宅急便デス
- さっむ
- 千晴だけど30年前にゲームのカセット貸したら勝手に売られたんだけど
- ッシャー
- 千晴って大王だったの?
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
