タグ

ブックマーク / eternalwindows.jp (9)

  • パイプの作成と接続

    プロセス間通信を行うにあたって、Windowメッセージが最も手軽な手段であることは異論のないところでしょう。 Windowメッセージであれば、通信に代表される「接続」といった操作を行うこともありませんし、 相手側からしても「接続してくるまで待機」といった操作を行う必要もありません。 ただし、Windowメッセージがあらゆる場面でも使用できるというと、必ずしもそうとはいえません。 たとえば、Windows Vistaから登場したUIPIという機能は、 整合性レベルが低いプロセスが整合性レベルの高いプロセスにメッセージを送ることを防止しているため、 こうした場合はWindowメッセージを使いにくいと感じるかもしれません。 また、通信相手がサービスのような通常のアプリケーションとは異なるデスクトップで実行している場合は、 メッセージを送受信すること自体ができなくなりますから、名前付きパイプのよう

    mntone
    mntone 2015/06/17
  • プロセス間通信

    これまで、メッセージ送信の方法としてPostMessageとSendMessageの2種類が あることを説明しましたが、実はこの両方の関数には、 他のプロセスが作成したウインドウのハンドルを指定することもできます。 これはつまり、他のウインドウに自分が送りたいメッセージを送れるということなので、 メッセージを通じて対象となるウインドウを制御することや、データを送ることができます。 問題は、対象となるウインドウのハンドルをどうやって取得するかですが、 これはFindWindowを呼び出すのが最も簡単であると思われます。 FindWindowの引数から分かることですが、あるウインドウのハンドルを取得するには、 そのウインドウについての情報をある程度知っておかなければなりません。 たとえば、メモ帳のウインドウハンドルを取得しようと考えた場合、 ウインドウタイトルは開いているテキストによって変化し

    mntone
    mntone 2015/06/17
  • プロキシ/スタブ DLL

    mntone
    mntone 2014/11/20
  • クラスオブジェクトの実装

    mntone
    mntone 2014/10/06
  • IDLファイルの作成

    mntone
    mntone 2013/12/13
  • Id3v2の再生

    mntone
    mntone 2013/08/13
  • フレームヘッダ

    上の表は、MPEGバージョンとサンプリングレートの関係を示しています。 ビットの列に書かれている2進数は実際にMP3データに含まれ、 たとえば、この値が01でバージョンがMPEG1だった場合、 サンプリングレートが48000Hzであるということを特定できることになります。 MPEG2は、MPEG1より高い圧縮率をサポートする規格でDVDなどに利用されています。 一般にMP3といえばそのバージョンはMPEG1を指しますが、 MPEG2のアルゴリズムに準じた場合でも拡張子はmp3となります。 ただし、動画における音声ではMPEG1の場合はMP3で圧縮が施されますが、 MPEG2の場合はAACという別の音声圧縮規格が利用されています。 MPEG Audioでは、圧縮に関わるもう1つの要素としてレイヤーが存在します。 レイヤーは1から3段階に別れ、Layer3が最も高い圧縮率を誇っています。 MP

    mntone
    mntone 2013/04/29
    MP3
  • STAとMTA

    COMにおけるクライアントとサーバー間の通信では、当事者の知らないところで数多くの複雑な処理が行われています。 たとえば、COMのクライアントはサーバーがDLLとして実装されていようと、 EXEとして実装されていようとほぼ同じコードを記述できますが、 これはCOMが通信に必要な処理を内部的に行っているからです。 また、サーバーのオブジェクトを実装する際には、 マルチスレッドによる同時アクセスを防ぎたい場合がありますが、 これもそうした旨をレジストリに登録していれば、 COMによって適切な調整が行われます。 つまり、単一のスレッドだけオブジェクトにアクセスすることが保障されることになります。 今回は、こうした事がどのような方法で可能になっているかを考えるために、 アパートメント(以下、アパート)について焦点を当てます。 オブジェクトが単一のスレッドのアクセスだけを想定しているか、 あるいはマ

    mntone
    mntone 2012/06/21
  • ウインドウの作成

    ウインドウクラスを登録したら、それを基にウインドウを作成できます。 ウインドウを作成するには、CreateWindowExを呼び出します。 HWND CreateWindowEx( DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam ); dwExStyleは、拡張ウインドウスタイルを指定します。 ウインドウスタイルとは、ウインドウの概観に関わる一連の定数のことです。 拡張という言葉はこの場合、より高度な概観(透明なウインドウなど)に 関する定数のことだと考えて問題ないでしょう。 指定で

    mntone
    mntone 2011/10/03
  • 1