kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

常時デバイスから取得するかどうか設計時に配慮しよう

ちょっとはまったので。
WindowsにはDeviceCapabilitiesという、デバイスの能力を取得するAPIがあります。このAPIでプリンタでサポートしている用紙の種類を取ってくることができます。
ところが、プリンタ…とくに仮想プリンタによってはかなり応答に時間がかかることがあるようです。通信しているんですかね。印刷処理中に頻繁に呼ぶと、印刷が遅いとか言われて、どはまりします。プリンタなんてそうそう変わらないう前提で、プロセスで一度取得したら終わるまで使いまわすとかしたほうがいいでしょうね。
もともと一度限りしか使わないようなクライアントプログラムならばその都度取得しても問題ないでしょうけど。でも、ドライバ作る側も気を付けていただきたいところ。ちょうど二年前に自分で同じこと書いてるよorz。進歩してないなぁ。
プリンタデバイスに対するDeviceCapabilitiesが遅いことがある - 新日々此何有哉