今更ながらComponent Object ModelのCOMです。少しでも関係すると思えば、何でもOKです。埋まらなかった日は作成者が必死に書きます。 WinRT API(Windowsストアアプリ)で再び(微妙に?)脚光を浴びているようなそうでもないような。とにもかくにも、今もWindowsネイティブコードの世界に渦巻くシステム、あるいは概念、それがCOMです(よね?)。
Windows APIの多くはC言語を前提としています。次のように戻り値がHRESULTなどのエラーコードとなり、真の戻り値は関数の最後の引数にポインターとして返される構造をしているものが多々あります。 HRESULT Direct3DCreate9Ex( UINT SDKVersion, IDirect3D9EX **ppD3D ); これをC++言語から扱いやすくしたいと思います。 一般的には次のようなcheck()関数で異常値については例外を投げることになるでしょう。 void check(HRESULT hr){ if(FAILED(hr)) throw hr; } 本題は真の戻り値です。 API関数には任意の引数があるため最後の引数を扱うのは困難です。幸いC++言語には可変長テンプレート引数があり、それをうまく扱うstd::tupleクラスとstd::tuple_elementク
I'd like to build a COM visible C# class, say DynamicComponent, that would provide a dynamic interface through COM. Internally this class would maintain a dictionary of delegates: "GetTheAnswer" -> () => { return 42; } "Add" -> (int a, int b) => { return a + b; } ... The client code would be some VBA. Here is the workflow I naively imagine: from the Excel/VBA editor the user references the TLB the
エクスプローラで表示されるサムネイルのイメージを取り出したく、IShellFolderインターフェイスをネットで幾つか調べ、試行錯誤しているのですがうまく動きません。 呼び出しているどのメソッドも動かないため、もしかしたらコーディング上の問題だけではなく、プロジェクトの設定や環境にも問題があるのか・・・と思うのですが何か御存知の方、教えて頂けないでしょうか。 呼び出したのは、BindToObject、GetUIObjectOf、ParseDisplayNameですが、どれもダメでした。 なおWin7 64bit環境だったのでAnyCPUをやめて32bitにしてみたりもしましたが、結果は変わりませんでした。 恐れ入りますがご教示頂けると幸いです。 static Guid IID_IExtractImage = new Guid("{BB2E617C-0920-11d1-9A0B-00C04F
Article describes how to make DirectShow Filters in .NET, it consist of BaseClasses and couple of samples Download Example Filters binaries - 124.1 KB Download BaseClasses and Filters sources - 143.1 KB Download sample applications sources - 75.8 KB Download sample applications binaries - 134.4 KB Introduction In this post I describe how to make DirectShow filters in pure C#. I made the BaseClasse
アーパートメントモデルの種類COMコンポーネント*1は、大きくシングルスレッドアパートメントモデル(STA)と マルチスレッドアパートメントモデル(MTA)に分けることができる。 レンタルスレッドアパートメントモデル(RTA)というのもあるようですが、詳細不明のため割愛します。 ■シングルスレッドアパートメント(Single Thread Apartment) シングルスレッドアパートメントは1つのスレッドから構成されているので、 シングルスレッドアパートメントの中に存在しているすべての COM オブジェクトは、 そのアパートメントに属する1つのスレッドからのメソッド呼び出ししか受け取ることができません。 シングルスレッドアパートメントの中の COM オブジェクトに対するすべてのメソッド呼び出しは、 そのシングルスレッドアパートメントのスレッドのウィンドウ メッセージ キューによって同期さ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く