Visual Studio 2010 で作成した ActiveX のストック プロパティ ページでカスタム カラーが設定できない

現象
Visual Studio 2010 にて、以下の技術情報の手順に沿い、ストック カラー プロパティページ (CColorPropPage) を使用した ActiveX を作成した場合、カスタム カラーが設定できません。システム カラーの設定は可能です。

MFC ActiveX コントロール : ストック プロパティ ページの使用
http://msdn.microsoft.com/ja-jp/library/ww04bt5d(v=vs.100).aspx
原因
Visual C++ 6.0 以前のバージョンの MFC では、ActiveX コントロールは、カラー プロパティのプロパティ ページを表示するために、上記技術情報のとおりクラス ID として CLSID_CColorPropPage を指定しました。CColorPropPage クラスを指すこの GUID は、現在も利用は可能ですが、実装自体は mfc42.dll に含まれており、これは Visual C++ 6.0 時点の内容を引き継いでおります。従って、最新の開発環境や OS にて適切に動作するような実装変更が行われていません。

回避策
ストック プロパティページの代わりに、別途、プロパティ ページを作成する必要があります。
Visual Studio 2010 で提供される最新のコントロールで利用できるクラスについては、以下の Visual Studio 2010 Feature Pack 2 付属のコントロールのサンプル (NewControls) をご参照ください。

  Visual C++ MFC Samples for Visual Studio 2010
  http://archive.msdn.microsoft.com/vcsamplesmfc

関連情報
ストック プロパティの実装に際して、GUID の CLSID_CColorPropPage の代わりに、GUID の CLSID_StockColorPage (CStockColorPage クラス) を使用することも可能です。ただし、これらは msstkprp.dll によって実装されるため、この DLL をアプリケーションで再配布する必要があります。

なお、msstkprp.dll は Visual Studio 2010 には同梱されておらず、 Visual Basic 6.0 あるいは Visual Studio .NET 2003 に含まれております。msstkprp.dll は、アプリケーションと共に配布できる、サポート対象のランタイム ファイルです。

msstkprp.dll をご利用いただく際は、通常の他のランタイムモジュールと同様に、Visual Basic 6.0 または Visual Studio 2003 で開発したアプリケーションと共に配布する必要があります。そのため、ストックカラープロパティページを実装する対象アプリケーションが、Visual Basic 6.0 ないし Visual Studio .NET 2003 からの移行であり、該当ファイル msstkprp.dll が既に配布済みの環境を前提とする場合であれば、CStockColorPage が利用可能です。

msstkprp.dll の Windows Vista、Windows Server 2008、Windows 7、および Windows 8 に対するサポートについては、以下のサイトを参照してください。

  Windows Vista および Windows Server 2008 に対する Visual Basic 6.0 のサポートに関する声明
  http://msdn.microsoft.com/ja-jp/vstudio/ms788708.aspx
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2854957 - 最終更新日: 09/29/2016 14:57:00 - リビジョン: 3.0

Microsoft Visual Studio 2010 Premium with MSDN, Microsoft Visual Studio 2010 Professional, Microsoft Visual Studio 2010 Ultimate

  • kbdeployment kbsetup kbhowto kbexpertiseadvanced kbexpertiseinter KB2854957
フィードバック