とき、MFC ActiveX コントロール サブクラス ウィンドウ クラスの実装 Comctl32.dll では、Visual Basic 6. 0 アプリケーションから、"System Error &H80004005"エラー メッセージを受信します。

文書翻訳 文書翻訳
文書番号: 223152 - 対象製品
すべて展開する | すべて折りたたむ

目次

現象

MFC ActiveX コントロール、Visual Basic 6. 0.exe からスローされる次のエラー Comctl32.dll の原因によって実装のウィンドウ クラスをサブクラス化します。
"システム エラー & H80004005 (-2147467259)。 不明なエラー"
ActiveX コントロールのデバッグ バージョンとファイルの末尾に COleControl::CreateControlWindow、上またはライン 662 近くに、Ctlcore.cpp、ASSERT。

この問題は Visual Basic 6. 0 から.exe をビルドして Visual Basic 開発環境の外部からを実行する場合にのみに発生します。

原因

Microsoft Visual Basic の実行可能ファイル、CreateEx で既定でのコモン コントロール ライブラリ (Comctl32.dll) を初期化しない呼び出し COleControl::CreateControlWindow で失敗します。 0x0000057F - GetLastError() の呼び出しによりに明示的に初期化するには、コモン コントロール ライブラリ必要があることを示すウィンドウ クラスを検索することはできません。

解決方法

ActiveX コントロールの InitInstance、内側に呼び出しを行う:
InitCommonControls(void)
または
InitCommonControlsEx(LPINITCOMMONCONTROLSEX lpInitCtrls)
このにより Comctl32.dll がロードされで実行されているコントロールのコンテナーに関係なく、初期化します。

コントロールのコードから InitCommonControls の呼び出しの代わりに呼び出すことも、Visual Basic クライアント アプリケーションから直接: できます。
  • 対応するフォーム; の全般宣言を行う例:
    Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
  • 呼び出しを追加:
    InitCommonControls
    					
    、Form_Load メソッド。
状況によっては、このあります遅すぎます、コモン コントロール ライブラリを初期化します。 したがって、コントロールの InitInstance でこの呼び出しを追加する勧めします。

状況

これは仕様によるものです。

詳細

問題の再現手順

  1. Visual C++ で MFC ActiveX コントロール ウィザードを使用して既定 ActiveX コントロールを作成します。
  2. [ウィンドウ クラスをサブクラス化する (Visual C++ 6. 0 AppWizard のステップ 2)、AppWizard の制御の設定] セクションで、次のいずれかを選択: msctls_hotkey32、msctls_progress32、msctls_statusbar32、msctls_trackbar32、msctls_updown32、SysAnimate32、SysHeader32、SysListView32、SysTabControl32、または SysTreeView32。
  3. コントロールを作成します。
  4. Microsoft Visual Basic 6. 0 を開き、新しい標準 EXE プロジェクトを作成します。
  5. [ プロジェクト ] メニューの [ コンポーネント ] をクリックし、Microsoft Visual C++ を使用するだけで作成したコントロールを選択します。
  6. このコントロールを選択し、フォームに描画するウィンドウ。
  7. ファイル メニューの Project.exe の作成 ] をクリックし、exe をビルドします。
  8. Windows エクスプローラーを開きこの実行可能ファイルを実行します。

プロパティ

文書番号: 223152 - 最終更新日: 2006年11月21日 - リビジョン: 3.1
この資料は以下の製品について記述したものです。
  • Microsoft Foundation Class Library 4.2?を以下の環境でお使いの場合
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
    • Microsoft Visual Basic 5.0 Learning Edition
    • Microsoft Visual Basic 6.0 Learning Edition
    • Microsoft Visual Basic 5.0 Professional Edition
    • Microsoft Visual Basic 6.0 Professional Edition
    • Microsoft Visual Basic 5.0 Enterprise Edition
    • Microsoft Visual Basic Enterprise Edition for Windows 6.0
キーワード:?
kberrmsg kbtshoot kbcmnctrls kbprb kbctrl kbmt KB223152 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:223152
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com