ウィンドウのないプログラムでユーザ定義のメッセージを受け取るには

[戻る]
2003/09/30(火) 20:30:00
開発環境:WINDOWS2000 VC++6.0  VC5.0

こんにちは。
早速ですが質問をさせてください。

以下のようなdllからエクスポートされたクラス(Test)があったとします。

------------------ testdll.h -----------------------------------------

// MSG_TEST_COMPLETE: wparam is the result
#define MSG_TEST_COMPLETE (WM_USER + 1)

class TESTDLL_API Test
{
public:
    // test が終了したメッセージを受け取るためには hwnd を指定する
    Test(HWND CallbackWind = NULL);
    void do_test(void);
    ...
}    

----------------------------------------------------------------------
 
このクラスを使用して、テスト(do_test)を行って結果を得たいと思いました。

MFC AppWizard (exe) であれば、MSG_TEST_COMPLETE を受け取る
ことができ、問題なくアプリケーションを作成できました。

BOOL CMyDlg::OnInitDialog()
{
   ....
   m_test = new Test(m_hWnd);
}   

void CMyDlg::doTest(void)
{
   m_test->do_test();
}  

LRESULT CMyDlg::OnMyMessage(WPARAM wParam, LPARAM lParam )
{
 m_result = (int) wParam;
}
(参考)
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200004/00040004.txt


今、テストを行って、結果を得るという動作を、VBから実現させたいと考えています。
それぞれdo_test,get_resultというAPIで呼び出したいと考えています。
そのため、VB から呼び出し可能な Win32 Dynamic Link Library を作成しようとしたの
ですが、以下の問題にぶち当たりました。

1. Test class のコンストラクターに指定する hwnd はどうすればいいのか
2. テストが終了したメッセージをどのように受け取ればいいのか

どなたかご教授頂けると助かります。
素人質問で申し訳ございませんが、どうぞよろしくお願いします。

dairygoods 2003/10/01(水) 11:07:16
つまり、VBでウィンドウハンドルを得る方法と、
ユーザー定義メッセージを受け取る方法が分からないのでしょう。
VBの掲示板で聞いたほうが良いと思いますよ。

2003/10/03(金) 10:52:28
[[解決]]
dairygoods さんのおっしゃるとおりですね。
VB を勉強してみます。

古いスレッドには追加発言できません。