CDS_RESET フラグと CDS_RESET_EX フラグについて

こんにちは、Platform SDK (Windows SDK) サポートチームです。 Windows Vista および Windows Server 2008 から提供されている CDS_RESET_EX フラグについてご紹介します。   概要 Windows Vista および Windows Server 2008 から、ChangeDisplaySettingsEx 関数の第四引数 DWORD dwflags に指定可能なフラグ値として、CDS_RESET_EX (0x20000000) が Windows SDK 同梱のヘッダーファイルに追加されています。   詳細 ChangeDisplaySettingsEx 関数の第四引数に指定可能なフラグ値の一つに、CDS_RESET (0x40000000) があります。 この CDS_RESET は、要求された設定が現在の設定と同じであっても、ディスプレイ デバイスの設定を変更する (リセットする) ためのフラグです。 ところが Windows Vista および Windows Server 2008 には、要求された設定が現在の設定と同じである場合は CDS_RESET を指定してもリセット処理が有効にならない問題がありました。 この問題は、Windows…


Windows 10 Anniversary Update の 日本語版 Microsoft IME 使用時に、不明なスレッドが生成される

こんにちは、Platform SDK (Windows SDK) サポートチームです。 Windows 10 Anniversary Update (バージョン 1607) の日本語版 Microsoft IME で確認されている問題についてご案内します。   現象 Windows 10 Anniversary Update の 日本語版 Microsoft IME 使用時に、Desktop アプリケーションのプロセス内に、不明なスレッドが生成される問題が確認されています。   詳細 TextBox 等の文字入力が可能なコントロールを使用している Desktop アプリケーションにおいて、Windows 10 Anniversary Update の日本語版 Microsoft IME を使用していると、プロセス内に不明なスレッドが生成される現象が発生します。 不明なスレッドは、文字入力が可能なコントロールが生成される際に、それらのコントロールと同じ数だけ生成されます。 また、文字入力が可能なコントロールが破棄されても、これらの不明なスレッドは終了せず、プロセスが終了するまで存在し続けます。 このため、長時間 Desktop アプリケーションを実行していると、増加したスレッドによってプロセス内のメモリ消費量が上昇し、メモリ不足でプロセスが強制終了する等の予期しない問題が発生することがあります。 なお、本現象はバージョン 1511 までの Windows 10 では、日本語版 Microsoft IME を使用している場合でも発生しません。 また、Windows…


PropertyGrid で MultilineStringEditor を使用した場合、初回表示のみエディターの幅が異なる

こんにちは、Platform SDK (Windows SDK) サポートチームです。 .NET Framework 3.5 SP1 上において PropertyGrid コントロールを使用した場合に発生する問題についてご案内します。 現象 PropertyGrid コントロール上で文字列を扱うプロパティに対して MultilineStringEditor クラスを指定すると、対象プロパティが編集されるとき個別に編集フィールドを表示することができますが、以下に示すように初回表示と 2 回目以降の表示に違いがあります。 初回の表示: 2 回目以降の表示: なお、.NET Framework 4 以降ではこの現象が発生せず、初回から 2 回目以降と同じ正しい位置に表示されます。 原因 この現象は、.NET Framework 3.5 SP1 の不具合により発生します。 .NET Framework 3.5 SP1 では、位置指定処理に考慮が不足した部分があるため、初回表示時のみ正しい位置に表示されません。 回避方法 この不具合は、.NET Framework 4 以降で修正されています。 お手数ですが、開発していただいているアプリケーションをビルドする際の「対象のフレームワーク」として .NET Framework 4 以降をご利用ください。 関連資料 PropertyGrid クラス https://msdn.microsoft.com/ja-jp/library/system.windows.forms.propertygrid.aspx MultilineStringEditor クラス…


入手可能な Windows SDK について Winows 8 / 8.1 / 10 向け

Windows SDK については以前の記事にて紹介されていますが、対象になる Window のバージョンや、SDK に同梱されているツールなどが新しくなっていますので改めて紹介します。このページでは最新の Windows 8 / 8.1 / 10 向けの SDK について記述しますので、それ以前の Windows SDK に関しては下記のリンクをご覧ください。  入手可能な Windows SDK について (2011年4月21日) https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2011/04/21/windows-sdk/ Windows SDK とは Windows SDK の概要については前回の記事にも書かれていますが、ここでも簡単にご案内します。 Windows SDK は Windows API を利用して Windows 上で動作するソフトウェアを開発するためのキットです。新しいバージョンの Windowsで提供される新機能を使ったソフトウェアを開発する場合、対応するヘッダー ファイルやライブラリなどが含まれる新しい Windows SDK を使用することになります。 Windows SDK には上記の他にも検証ツールやサンプルなど、開発をサポートするコンテンツが含まれていますので、開発者の皆様には是非利用いただきたいと思います。 Windows SDK は Windows OS がバージョンアップするたびに、新しいバージョンが無償で提供されています。 ※ Visual Studio と…


Windows 10 のメジャーアップデートを行った際に設定したレジストリ値が移行されない場合がある

こんにちは、Platform SDK (Windows SDK) サポートチームです。 Windows 10 のメジャーアップデートを行うと旧バージョンで設定したレジストリ値が移行されない現象についてご案内いたします。   現象 Windows 10 のメジャーアップデートからバージョンを更新するとレジストリの値が移行されない現象を複数のお客様から報告いただいています。弊社でもこの現象が発生することを把握しています。いただいたお問い合わせの中から以下のようなレジストリが移行されない傾向がありますが、移行されない明確なレジストリ値のリストや条件は確認できていません。   ・ バージョンアップ後の OS で動作が保証されないレジストリ値 ・ バージョンアップ後の OS に悪影響を及ぼす可能性があるレジストリ値 ・ 既定で存在しない追加された OS の設定   OS のレジストリ設定に依存して動作するアプリケーションを開発しており、Windows 10 のメジャーアップデート後に期待通りの動作が見られない場合はレジストリの値が期待する設定になっているか一度確認をお願いします。   対処方法 Windows Update 時にレジストリが移行されない現象を抑止する対処方法はありません。このような現象を確認いただいた場合はアップデート後レジストリの再設定をお願いします。


タブレット モード ON の Windows 10 モーダル ダイアログ動作について

こんにちは、Platform SDK (Windows SDK) サポートチームです。Windows 10 を タブレット モード ON で使用している時のモーダル ダイアログ動作についてご案内します。   現象 バージョン 1511 (OS ビルド 10586.0) までの Windows 10 を タブレット モード ON で使用していると、アプリケーションが表示したモーダル ダイアログが親ウィンドウの背面に表示される現象が発生します。モーダル ダイアログが閉じるまでは親ウィンドウに制御が返らないため、ユーザーはアプリケーションを操作できなくなります。 本現象は、Win32 や WPF 等のデスクトップ アプリケーションにおいて発生します。また、Windows 10 Anniversary Update (バージョン 1607 (OS ビルド 14393.0)) では発生しません。   回避策 バージョン 1511 (OS ビルド 10586.0) までの Windows 10 に対する回避策として、以下の三つの方法が確認されています。  …


[MS16-035] .NET Framework 4.6/4.6.1 のセキュリティ更新プログラムのサポート技術文書 (KB3136000) について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、[MS16-035] .NET Framework 4.6/4.6.1 のセキュリティ更新プログラムのサポート技術文書 (KB3136000) について、お知らせします。   <背景> Microsoft では、.NET Framework 4.6/4.6.1 用のセキュリティ更新プログラムをインストール後に特定の印刷問題が発生した場合に対処するため、2016 年 5 月 11 日に、Microsoft .NET Framework 用の更新プログラムを再リリースしました。 しかしながら、本更新プログラムに関するサポート技術文書  (KB3136000) において、更新プログラムの適用対象に関する [Notice] の記載内容に誤りがありました。 本ブログでは、その内容を訂正させていただきます。   [MS16-035] Windows Vista SP2、Windows Server 2008 SP2、Windows 7 SP1、および Windows Server 2008 R2 SP1 用の .NET Framework 4.6 および Windows 7…


モダンスタンバイがサポートされた Windows 10 環境でスリープイベントが取得できない場合がある

こんにちは、Platform SDK (Windows SDK) サポートチームです。モダンスタンバイがサポートされた Windows 10 環境でプログラムからスリープを検知する処理の動作についてご案内します。   現象 OS がスリープに入った状態やスリープから復帰した状態をアプリケーション上で検知する場合、RegisterSuspendResumeNotification 関数を利用して WM_POWERBROADCAST メッセージの PBT_APMSUSPEND (スリープに入る) イベントや PBT_APMRESUMEAUTOMATIC (スリープから復帰) イベントを利用します。しかし、モダンスタンバイがサポートされた Windows 10 環境では、これらメッセージは、 コネクテッドスタンバイがサポートされた Windows 8.1 とは異なるタイミングで通知される場合があります。 Windows 10 では以下のタイミングで WM_POWERBROADCAST メッセージが通知されません。   ・ OS 起動直後、約 2 分の間スリープに入った時、および復帰時のイベントが通知されません 。 ・ ログオフからログオン直後、約 2 分の間スリープに入った時、および復帰時のイベントが通知されきません 。 ・ ストアアプリを起動または、タブレットモードのメニュー (画面全体を覆うメニュー) を開くと、その後 2 分間は通知が来ません。 ・ ストアアプリを起動後すぐに閉じても、2 分間は通知が来ません。 ・…


ReadConsoleInput 関数を呼び出すと次の文字の上位 1 バイトが返される場合がある

現象 Windows 8 / Windows Server 2012 以降のクライアントおよびサーバー OS において ReadConsoleInput 関数を使用して日本語を入力した際、以下の挙動となります。 1回目の関数呼び出し時に日本語文字の上位 1 バイトが返され、2 回目の呼び出し時に、次の文字の上位 1 バイトが返されます Windows 7 / Windows Server 2008 R2 の OS では、1 回目の関数呼び出し時に日本語文字の上位 1 バイトが返され、2 回目の呼び出し時に次の文字の下位 1 バイトが返されます。この関数の異なる挙動に伴い Windows 8 以降の getch() などのダブルバイト文字は扱う関数は影響を受け、telnet クライアントで日本語入力が文字化けする問題が確認されています。 例えば、以下の再現サンプルコードを実行し、”あ” を入力しますと Windows 7 の環境では ”82 a0” が返されますが、Windows 8 以降の環境では ”82 82” が返されます。 int _tmain(int…


.NET Framework 4.6 インストール環境において描画したオブジェクトが印刷されない場合があります。

  こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は .NET Framework 4.6 インストール環境にて、WPF アプリケーションから印刷処理を実施しても何も印刷されない現象についてお知らせします。   概要 WPF アプリケーション上で作成した描画オブジェクトを印刷するシナリオにおいて下記条件を満たしている場合、印刷に失敗します。 ・ .NET Framework 4.6 がインストールされた Windows 8 / Windows Server 2012 以降の環境。 ・ 印刷対象が Pen、Line や Rectangle 等の線や図形オブジェクトのみで生成された描画オブジェクトを印刷。 ・ XPS非対応のプリンタドライバで印刷 この条件を満たしている場合、以下のように印刷処理が失敗します。 ・ 印刷 (紙の出力) が行われません。 ・ 印刷が行われなくともアプリケーション上で例外は発生しません。 ・ 印刷処理を実行してもプリンタキューに待機中のジョブが何も表示されません。 *XPS対応のプリンタドライバを使用した場合は発生しません なお、描画オブジェクトの中に Image オブジェクトが存在している場合は正常に印刷処理が行われます。   原因 本現象の根本原因は .NET Framework 側の処理ではなく、.NET…