HAMLOG開発室は、HAMLOGに関連したプログラム開発(C、パスカル、VB言語等、又はDLL)についての
専用BBSです。プログラム言語に関する投稿以外は通常のHAMLOG相談室に投稿して下さい。
HAMLOG開発室BBS

sendmessageで受信できず 投稿者:JP7CZE 川辺

VB6で,WM_COPYDATA.txt をもとに,Hamlogのデータ入力ウィンドウとのやり取りを行なおうとしています.

アプリケーションからの送信の場合には,コールサインの入力や保存もできているのですが,
データの読み取りがうまくできていません.

Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As String ' void * のつもり
End Type

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long

Function GetFromHAMLOG(Command As Long) As String

Dim cmmd As Long

Dim Hwnd1, Hwnd2, myhwnd As Long

Dim cds As COPYDATASTRUCT

Dim cbuff As String * 512

Dim X As Long

Hwnd1 = FindWindow("TThwin", vbNullString)
If Hwnd1 < 1 Then ' ハムログが起動していない
Exit Function
End If

Call AppActivate("Turbo HAMLOG", 0)

cds.dwData = Command
cds.cbData = 0
cds.lpData = vbNullString

myhwnd = FormTempLog.hwnd '作成中のプログラムのハンドル

X = SendMessage(Hwnd1, WM_COPYDATA, myhwnd, cds)

GetFromHAMLOG = cds.lpData

End Function

 これを msg = GetFromHAMLOG(112) で実行すると,本来なら,QTHのデータが帰ってくるはずですが,うまくいきません.

 SendMessageの戻り値は,0以外の数字(たとえば 10749274)が帰ってきて問題ないようです.

戻り値は,
cds.cbData : 0
cds.dwData : 112
cds.lpData : ""

となっていて,dwData は,呼び出す前のままで,0または1になっていません.

dwDataが変わっていないということは,データを受け取っていないとも思いますが,myhwndがおかしいのか,どうすればいいのか,ちょっと困っています.

よろしくご教示願います.

2014/09/06(Sat) 01:01:40  [No.563]


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)
- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
Call 名前 ※必須
文字色
Eメール
タイトル sage
URL
メッセージ 手動改行 強制改行 図表モード
メッセージには上記と同じURLを書き込まないで下さい
画像File  (130kBまで)
暗証キー (英数字で8文字以内)
投稿キー (投稿時 投稿キー を入力してください)
プレビュー