Quantcast
Channel: イグトランスの頭の中
Browsing all 123 articles
Browse latest View live

非実在ファイルをエクスプローラにD&Dする

自アプリからエクスプローラへのドラッグ&ドロップにおいて、ファイルシステムやシェル名前空間上に存在しないデータをやりとりする方法があります。それがCFSTR_FILECONTENTSとCFSTR_FILEDESCRIPTORの組み合わせです。ともにMSDNライブラリのShell Clipboard Formats...

View Article


非同期ドラッグ&ドロップ

今回は非同期でドラッグ&ドロップ処理を実行させる方法です。コード上は前回(非実在ファイルをエクスプローラにD&Dする)の続きになります。通常、ドロップ(IDataObject::GetDataの呼び出し)が行われるのはDoDragDrop関数から返ってくる前です。一方、非同期なドロップではDoDragDropから返ってきた後にドロップ処理が行われるようになります。以下がコードです。前回のコー...

View Article


OSの名前を取得する

正確には、Linuxディストリビューションの名前(可能ならバージョンも)を取得したい(ただしLinux以外も一応想定しておく)という話です。lsb_releaseやuname -oなどを使って収集するコードを書いてみました。厳密さはあまり考えないものとしています。コードはGistに置きました:...

View Article

Firefox拡張を作り始めてみた(シプキャン)

去る8月17日、私立・プログラミングキャンプ 2014 東京大会に参加していました。そのときのLT発表で使ったスライド(若干修正あり)です。このスライドはCC BY-SA 4.0でのライセンスです。日中のハッカソンタイムはこれ作っていました。いい機会なので、なかなかやらないようなことに手を付けてみたわけです。ソースコードはegtra/dframe-for-firefox...

View Article

CasablancaでHTTP(Boost.勉強会)

9月16日、Boost.勉強会 #16 大阪でCasablancaことC++ REST...

View Article


.NETでのRegFree-COM

.NETアセンブリによるCOMサーバーでもマニフェストによるRegFree-COMが可能なことを知ったので、試してみました。さらに、CLR 4(.NET Framework 4~4.5)、CLR 2(.NET Framework 2.0~3.5)の両方で動くようにする方法を調べました。まずはCOMサーバー側、C#です。// t.cs using System; using...

View Article

アラインメント保証付きmake_sharedを作った

今日も配列版make_sharedの話です。指定のアライメントに沿った領域を確保するものを作ってみました。経緯はこうです。手元に、可変長の領域を確保する目的でboost::shared_array<char> p(new...

View Article

Windows Animation Managerを使ってみた

近頃のWindowsには、Windows Animation Managerというアニメーション支援のライブラリが搭載されています(MSDNライブラリ:Windows Animation API の概要)。これを試しに使ってみました。 Windows Animation Managerの概要Windows Animation...

View Article


COINIT_DISABLE_OLE1DDE使おう (CoInitializeEx)

本記事は、COM Advent Calendar 2014 –...

View Article


スレッド初期化・終了関数のまとめ

本記事は、COM Advent Calendar 2014 – Qiitaの2日目の記事です。COMを使用するスレッドでは、CoInitializeEx/CoUninitializeなどを呼ばなければならないのはご存じと思います。実は結構種類があるので、その一覧をまとめてみようと思い立ちました。CoInitialize, CoInitializeEx /...

View Article

参照カウントしないIUnknown

本記事は、COM Advent Calendar 2014 –...

View Article

ISequentialStreamがQIできない

本記事は、COM Advent Calendar 2014 – Qiitaの4日目の記事です。時空が歪んでいます。ISequentialStreamをQueryInterfaceするこんな関数を作ったことがあります。#include <comdef.h>   ISequentialStreamPtr QuerySequentialStream(IUnknown* u) {...

View Article

CoRegisterClassObjectはレジストリ未登録でも成功する

本記事は、COM Advent Calendar 2014 –...

View Article


QueryInterfaceで増えるオブジェクト

本記事は、COM Advent Calendar 2014 – Qiitaの6日目の記事です。時空が歪んでいます。MSXMLのDOMDocumentクラスのオブジェクトは、QueryInterfaceでIStreamを要求すると面白い挙動を示します。#include <iostream> #include <windows.h> #include...

View Article

QueryInterfaceで増えるオブジェクト (2)

本記事は、COM Advent Calendar 2014 – Qiitaの7日目の記事です。前回(QueryInterfaceで増えるオブジェクト)の続きです。DOMDocumentからQueryInterfaceで2つのIStreamを取り出したときの動きを見てみます。IStream.Readを呼び出してみて、IStream同士は独立して取り扱えるらしいことを確かめてみます。#include...

View Article


QueryInterfaceで増えるオブジェクト (3)

本記事は、COM Advent Calendar 2014 – Qiitaの8日目の記事です。QueryInterfaceで増えるオブジェクト...

View Article

MSXMLはISequentialStreamがQIできない

本記事は、COM Advent Calendar 2014 –...

View Article


COMにおけるアパートメントの概要

本記事は、本記事は、COM Advent Calendar 2014 – Qiitaの10日目の記事です。10日でした。今後、COM Advent Calendarでアパートメント間のマーシャリングの話をしたいので、今日は駆け足でアパートメントの説明をします。...

View Article

マーシャリングのAPIまとめ(プロセス内限定)

本記事は、COM Advent Calendar 2014 –...

View Article

ATL::CComGITPtrを使ってみる

本記事は、COM Advent Calendar 2014 –...

View Article
Browsing all 123 articles
Browse latest View live