トップページ⇒tech
986コメント350KB

COM の世界を斬る!

■ このスレッドは過去ログ倉庫に格納されています
0001IUnknownNGNG
ATL や MFC でラッピングされていない素顔の COM について語り合いましょう。
0709デフォルトの名無しさんNGNG
>>708
超マルチうざい
0710デフォルトの名無しさんNGNG
>>709
ごめんね。でも、情報を得るには仕方がない・・・・・
0711デフォルトの名無しさんNGNG
> でも、情報を得るには仕方がない・・・・・
ハァ?
0712デフォルトの名無しさんNGNG
>>710
氏ね。
0713デフォルトの名無しさんNGNG
>>710
何いってんの?
中学生?
0714デフォルトの名無しさんNGNG
それにしても、マルチポストとか目ざとくよく見つけるよな…。
0715デフォルトの名無しさんNGNG
>>674
厳密にはDllRegisterServer, DllUnregisterServerはCOM DLLにとって必須ではない。
インストール時の利便性を考えてRegSvr32とかで自己登録できるようにしてるだけ。
最近のWindows Installerを使ったSETUPではSETUPプログラムが直接レジストリに
書き込みする場合が多くなってきてるみたいだし、実際登録用の関数をエクスポート
してないCOM DLLも存在する。

本当に必要なのはDllGetClassObject, DllCanUnloadNowのほうだ。これが無ければ
COM DLLとして成立しない。

COM DLLは、CLSIDというGUIDを通じてDLLフルパスを探索てDLLをロード、
DllGetClassObjectでクラスファクトリを作成して、CreateInstane()メソッドから連鎖的に
オブジェクトのインスタンスを作成してゆくタイプのDLL。
普通のDLLは、必要な機能をすべて関数として仕立ててそれをずらーっとエクスポート
してるタイプ。Dependency Walkerで見比べてみるとよくわかるよ。
0716674NGNG
>>715
>厳密にはDllRegisterServer, DllUnregisterServerはCOM DLLにとって必須ではない。

御意
0717デフォルトの名無しさんNGNG
>>715
>>710です。なんか、思い出しました。2年前にそんなことしてました。なつかしや〜。
結局、一番単純な古典的DLLを作って、VBAから呼ぶ路線にしたいと思います。
VBAからWin32APIを使うために必要は知識を網羅した(?)参考書も、他スレで教えてもらいました。
一番単純な古典的DLLで作ったほうが、Solarisなんかに計算エンジンを移すときに、楽そう。
それにしても、やっぱりみなさん詳しいですね。ぼくは、ホントアマチュアだから。
これからも時々お邪魔します。
(^ー^)ノ ヨロシク オネガイシマス
0718bloomNGNG

http://www.agemasukudasai.com/bloom/
0719COM初心者NGNG
素朴な疑問なのですが、コンポーネントサービスでアプリケーションを
右クリックし、詳細設定タブを開くとデバッグという項目があってデバッ
ガ内で実行するというチェックボックスとデバッガパスという入力フィー
ルドがあります。これはどのように使うのでしょうか?これを使ってCOM+
のデバッグがもっと的確にできるようになるといいのですが。
0720デフォルトの名無しさんNGNG
>>693の
>Internet Explorerのイベントを処理する (検討中)
のところが知りたいんだけど
どっか参考資料ない?
0721名無し@沢村NGNG
>>720
MFCのCHtmlViewのソース。
0722720NGNG
>>721
見たけど使ってないぞ
0723名無し@沢村NGNG
>>722
どこ見てるんだ。
BEGIN_EVENTSINK_MAPのあたりを見ればだいたい分かるだろ。
0724名無し@沢村NGNG
>>722
おとなしく、ここでも見とけ。
ttp://www.nitoyon.com/vc/tips/ie_component.htm
0725722NGNG
>>723,724
すいません。
0726デフォルトの名無しさんNGNG
comってcommand.com とかのcomということで委員ですか
0727デフォルトの名無しさんNGNG
激しく既出。
0728デフォルトの名無しさんNGNG
>>727
→同じ
 違う

?
0729デフォルトの名無しさんNGNG
↑

?
0730COM初心者NGNG
どなたか教えてください〜
0731デフォルトの名無しさんNGNG
Component Object Model
0732デフォルトの名無しさんNGNG
あげ
0733名無し@沢村NGNG
俺はCOMに真剣に取り組もうとしたことがあったが、レジストリに登録云々のことろで面倒くさくなってやめたね。
0734デフォルトの名無しさんNGNG
>>733
関数化すればいいやん
ただそれだけのことを何で?
0735デフォルトの名無しさんNGNG
あれ、沢村じゃん
いかん、容易に釣られてもた

鬱だ氏のう
0736IP記録実験NGNG
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0737デフォルトの名無しさんNGNG
「2chでは裏でIP記録されています。IPを抜かれたくなければ
セキュリティガードに…」

というコピペを流行らせる会 会長↓
0738デフォルトの名無しさんNGNG
そして歴史に刻まれていく
0739デフォルトの名無しさんNGNG
普通に考えて、増えると思うなー。子供世代がPC買って参入してくるから。老人はもともと少ないからなかなか自然減少しないし。
鯖のほうで制限しない限り。
0740デフォルトの名無しさんNGNG
>>326
ネタですよね?
0741デフォルトの名無しさんNGNG
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。          
勢いで上告なんかしても一発で上告却下(門前払い)だよ。
   
二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm
  
ようするに上告しても今の制度では100%無駄。 これで完全終了ってことか。
0742デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0743デフォルトの名無しさんNGNG
すごいラインナップだな(藁
>tmp鯖
0744デフォルトの名無しさんNGNG
>>552
ご愁傷様。
0745デフォルトの名無しさんNGNG
つまらないね。

トリップだってさ
全然ボツ。
0746デフォルトの名無しさんNGNG
>>145
掲示板の一番下が「2ちゃんねる20030107a」
ってなってる板じゃなかったかな?
0747デフォルトの名無しさんNGNG
>>499
漏れが恐いのは、今後の他の裁判だ。
まだいくつか残ってるんでしょ?
0748デフォルトの名無しさんNGNG
159は尊師
0749デフォルトの名無しさんNGNG
>>649
誤爆じゃなくて、ここの前スレのコピペだと思われ。
0750デフォルトの名無しさんNGNG
するからなー。
0751デフォルトの名無しさんNGNG

鷺の質問・雑談スレに移動して下さいね。
0752デフォルトの名無しさんNGNG

シミュレート
0753デフォルトの名無しさんNGNG
ひろゆき君。
メルマガまってるよ。
0754デフォルトの名無しさんNGNG
スレタイの日本語、微妙におかしいね。
0755デフォルトの名無しさんNGNG
news2鯖に入った瞬間撤退すんなよw>コピペ荒らし
0756デフォルトの名無しさんNGNG
2ちゃんねるのオランダ引越しまだぁ〜
0757デフォルトの名無しさんNGNG
まあ、あnグラな話やりたきゃ他逝けってことかなぁ。
雑談、学問、技術系な板には関係ないな。
0758デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0759デフォルトの名無しさんNGNG
知らなかった(゚д゚)つφ.,._., メモメモ
0760デフォルトの名無しさんNGNG
事実・嘘をとわず公衆の面前でその人を侮辱したりした場合です。
0761デフォルトの名無しさんNGNG
まあ,ここでどんなに崇高な理想ブチ上げてるヤツよりも,
実際カラダ張ってるのはひろゆきなわけだからな……。
動機はよくわからないが。
0762デフォルトの名無しさんNGNG
一秒でも早い閉鎖を日々祈ってます( ´∀`)y-~~
0763デフォルトの名無しさんNGNG
内Pのレッド吉田、頼むから「今日のレッド」の時に
ネタ帳見ながらやるのやめてくれ、一応カネ貰ってんだろ
0764デフォルトの名無しさんNGNG
大阪JCネタ
0765デフォルトの名無しさんNGNG
それもどうかと思うけどな(^_^;)
やはり「書き込むことに責任あることを認識しろ」かと。

つーか、まもなく6億〜
0766デフォルトの名無しさんNGNG
きねん
0767デフォルトの名無しさんNGNG
2ちゃんの運営側の簡単なお財布事情を知りたいのですが、
どこか詳しい解説ページ等はございますでしょうか?
0768デフォルトの名無しさんNGNG
ヽ(*`Д´)ノナンダトウ!
0769デフォルトの名無しさんNGNG
Nyの掲示板がもうちょっと使いやすければねぇ。
特定の鯖に依存しないP2Pは理想的でありんす。
あれがWebのあるべき姿でありましょう。
0770デフォルトの名無しさんNGNG
いや、最近のニュー速は本当に良くなってきたと思うよ。
ニュース速報板だからね。
0771デフォルトの名無しさんNGNG
・・・横槍。

削除依頼を内容証明以外の方法で行っても有効ですが、条理が根拠ではありません。
意思表示の一般原則であり自明のことです。
免責の対象にはならないから安心してください。
0772デフォルトの名無しさんNGNG
やっとhtml化だ、過去ログが読める
がんばってください
0773山崎渉NGNG
(^^)
0774デフォルトの名無しさんNGNG
4nd・・・天然ですか?>1
0775山崎渉NGNG
(^^)
0776デフォルトの名無しさんNGNG
浮上!!
0777山崎渉NGNG
(^^)
0778デフォルトの名無しさんNGNG
誰かこれからのCOMと.NETについて教えてください.
まだCOMを学ぶ価値はありますか.
.NETとどう関わりあっているのでしょうか.
0779デフォルトの名無しさんNGNG
>>778
価値が有るか無いかで言えば無いと思う。現在の.NETでは
一応、COMへのインターフェイスを用意されていて過去の資産を
利用出来るようにしているけど、あくまでも一時的な処置であり、
MSの思惑としては今までCOMでやってきた事も全て、.NETで行いたい
とかんがえているはずだから。
0780デフォルトの名無しさんNGNG
>>779
でも、とりあえず出来る出来ないで言えば、できた方がいいのでは。
Webシステム等のクライアント部品として、ActiveX使う事もあるでしょ?

#...ま、必ず覚える必要があるって訳でも無いが。
0781デフォルトの名無しさんNGNG
まあいわゆるひとつの「必要になるまでほっとく」というやつですな
暇つぶしにはなるだろうけど、必要に駆られないと身にならんと思う
0782778NGNG
みなさんありがとうございました.
COMも横目で眺めつつ.NETの勉強してみます.
0783デフォルトの名無しさんNGNG
別スレで回答がないのでこちらに・・・

------
 LPITEMLISTを解放するために手順が必要になってしまいます。 
まずIMallocっていうインターフェースを持って来なくっちゃならない。 
名前から想像できる通り、IMalloc ってのは COM ベースのメモリ
アロケータ(メモリの確保/解放を実行する)のようなもので結構
いろんなところで登場してくる。 まさか API ひとつだけですんじゃ
うようなもののために COM 使うとは思わなかったけど、要求され
てるんでしょうがない。
http://www.bd.wakwak.com/~opapa/VC/API/SHBrowseForFolder.htm
-------

この辺のプログラミングを理解するには、どんな本が
適切でしょうか? Win32 API側で確保したメモリを
アプリ側で解放するらしいのですが、説明を読んでも
やり方が今一つわからずに使えません。

コモンコントロールなんかのWinプログラミングの基礎本
(by ハーバードシルト)と、柏原さんの「MFCによる
Winプログラミングの基礎知識」は読みました。

>>68は、おいらが読むのに適切でしょうか?
抽象的な概念だけじゃなく、実際のコード書きに
直接役立ちますか?


0784名無し@沢村NGNG
>>783
ヌヒよ、今日は特別に便利なAPIを教えてやろう。
それはCoTaskMemFree()だ。
0785デフォルトの名無しさんNGNG
沢村様にレスするのは恐れ多いが
OLEのアロケータ(CoTaskMemFree)とシェルのアロケータが今後も一致するという保証は無い
0786名無し@沢村NGNG
>>785
MSDNのCoTaskMemAlloc()の説明には、
Allocates a block of task memory in the same way that IMalloc::Alloc does.
て書いていますが、それでもだめですか? どうか、教えて下されー。
0787デフォルトの名無しさんNGNG
ShGetMallocで得られるIMallocとCoGetMallocで得られるIMalloc
の実装が同じである保証がどこにある?
0788名無し@沢村NGNG
>>787
VC7付属のshlobj.hには下記のような説明があるのですが、それでもだめですか?
教えて下されー。

// Notes:
// In next version of Windowso release, SHGetMalloc will be replaced by
// the following macro.
//
// #define SHGetMalloc(ppmem) CoGetMalloc(MEMCTX_TASK, ppmem)
0789デフォルトの名無しさんNGNG
おうっ
VC6のshlobj.hでもPSDKOct2002のshlobj.hでもそう書いてある
沢村様に論破された漢として語り継がれそうだ
0790デフォルトの名無しさんNGNG
>>784
ありがとうございます。

CFolderDialog::~CFolderDialog()
{
CoTaskMemFree(lpItemIDList);
}

という風にデストラクタに実装してみました。
デバッカで追ってみたのですが、CoTaskMemFree実行
直後はlpItemIDListも、その参照先も特に変化ないのですが、
こんなもんなんですかね?

きちんと解放されたかどうか確認する方法はありますか?

0791名無し@沢村NGNG
ヌヒ等よ、NETて何よ?
それはCOMより新しいのか?
COMでやっとアプリがつくれるようになった俺としては、そういうのが出てくると非常に困る!
NETで検索してみたが出てくる件数が多すぎてわからなかった…
ヌヒ等よ、教えてはくださらぬか?
0792デフォルトの名無しさんNGNG
>>791
おれもつい半年前にやっとのことでCOM開発できるようになったんだが、
.NETをやってみて衝撃を受けたよ。
もうCOMなんてやっててもニーズがない。
はっきりそう分かった。
.NETならCOMの10倍は楽にCOMより使いやすいコンポーネントが作れる。
時代の流れだと思って.NETの勉強をした方がいいと思う。
ショックはでかいと思うけどね、、おれがそうだったように。。。
でもCOMの知識があるとないとでは差は大きいから無駄ではない。
COMを知らない香具師はどれだけ.NETの功績か大きいか絶対わかんないだろうな。
0793名無し@沢村NGNG
>>791
NETの解説したページがあれば教えてはくださらぬか?
>.NETならCOMの10倍は楽にCOMより使いやすいコンポーネントが作れる。
性能もCOMよりいいのか?ならCOMは意味ないじゃん!!
NETって意味が広すぎて検索しても出てくる件数が多すぎてわからぬのよ…
ヌヒよ、教えてはくださらぬか?
0794デフォルトの名無しさんNGNG
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/mssharsourcecli2.asp
こっから辿ってソース嫁。これ最強。
0795デフォルトの名無しさんNGNG
COMもたそがれの時期を迎えたか...
0796デフォルトの名無しさんNGNG
ただし.NET Frameworkをインストしていないユーザーは
見捨てることになる罠。
0797デフォルトの名無しさんNGNG
糞スレ常時アゲ
0798デフォルトの名無しさんNGNG
COM になっていれば、.NET 連携は簡単だし、オレなんか
ActiveX 使いたくて、.NET憶えたえた後にいまさら COM 何ぞ勉強中なんだけど。
0799デフォルトの名無しさんNGNG
すいません。
基本的な事(しかも厳密にはCOMの質問ではない)かもしれませんが、
質問があります。

BSTRな文字列を使用する場合はにSysAllocStringを使用しますが、
こいつをSysFreeStringするのは誰がやらなければいけないのでしょうか?

たとえば、
コンポーネントのメソッドに
HogeA(BSTR strHoge)
があった場合、コンポーネント内部でSysFreeStringを行う必要があるのでしょうか?

また、コンポーネントのメソッドに
HogeB(BSTR* strHoge)
があった場合、(値を返す場合)SysFreeStringが行うのでしょうか?

また、IConnectionPointなイベントで、HogeAのようなイベントがあった場合、
イベントを受け取ったクライアント側でSysFreeStringを行うのでしょうか?

すいません、ご教授願います。

0800デフォルトの名無しさんNGNG
http://msdn.microsoft.com/library/en-us/com/com_3rub.asp
HogeA(BSTR host);
呼び出し側が解放
HogeB(BSTR* hoge);
返送するなら、呼ばれた側が解放、確保。呼び出し側で解放
0801800NGNG
HogeBはIDLに依存だった。
[out]BSTR* hoge
なら、呼ばれた側は解放せずに確保
[in,out]BSTR* hoge
なら、解放してから確保。
0802799NGNG
>>800,>>801

レスありがとうございます。
大変参考になりました、これで安心して作成できます。

しかし皆さんMSDNの解説ソースをよく発見できますねぇ(失礼な言い方ですが変な意味じゃないです)
自分なんかは膨大な情報量ですぐにソースが発見できません。
やっぱり英語力とかでしょうか・・・・

ありがとうございました。


0803デフォルトの名無しさんNGNG
http://bdn.borland.com/article/0,1410,29779,00.html

The problem was, when Microsoft added support for IClassFactory2, they added the QueryInterface for IClassFactory2 after the existing code that queried for IClassFactory.

・・・
0804デフォルトの名無しさんNGNG
COM+
0805デフォルトの名無しさんNGNG
macross+
0806デフォルトの名無しさんNGNG
age
0807デフォルトの名無しさんNGNG

BC++5.5 でCOM関連のプログラミングってできますか?
0808デフォルトの名無しさんNGNG
最新の音楽情報満載。音楽ファン必見のサイト
音楽ギフト券の全プレあり
http://camellia16.fc2web.com/ongakudb.html
0809 NGNG
保守&質問です。
Win32 API質問スレからこちらを紹介されました。

COM で QI して得たポインタが サスペンド/ハイバネーションを行なうと、無効になる
ことがあります。色々調べたら 6分通信がされなかったらポインタを無効にする仕様だ
そうですが、うまい回避策(workaround)を知っていたら教えて下さい。

ちなみに QI したポインタを全部覚えておいて、レジュームメッセージを受けとって、
Release() -> QI しても、先にポインタを使われることがあって、だめみたい。
(´・ω・`)
■ このスレッドは過去ログ倉庫に格納されています