特定のクラス タイプ ("VSDebugger CDataTipWnd") でウィンドウを作成しようとしていますが、CreateWindowEx を実行すると失敗し、GetLastError によってクラスが見つからないことが通知されます。参照用のコードは次のとおりですが、重要ではありません。
const Win32WindowStyles dwStyle = Win32WindowStyles.WS_POPUP;
IntPtr wnd = NativeMethods.CreateWindowEx(0L, "VSDebugger CDataTipWnd", "MyWindow",
dwStyle, 100, 100, 100, 100, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
私はプロセスでプラグインとして実行しており、このクラスのウィンドウが以前に作成されていることを知っています (Winspector/Spy++ を使用して確認しました) が、このタイプのウィンドウを自分で作成しようとすると、動作せず、理由がわかりません。
ドキュメントには、 「クラスを登録するモジュールがウィンドウを作成するモジュールでもある場合、クラス名は RegisterClass または RegisterClassEx で登録された任意の名前にすることができます。クラス名は、定義済みのシステム クラス名のいずれかにすることもできます。システム クラス名の一覧については、「備考」セクションを参照してください。RegisterClass が実際に別のモジュール (dll/exe) で作成された可能性はありますか? 別のモジュールでクラスを作成するだけで、別のモジュールから名前でアクセスできなくなりますか?? もしそうなら、どうにかしてそのクラスを見つけて、それでウィンドウを作成できますか?
ありがとう!ヴィタリー