浜田さん、森さん。関ハムフェスタではご教授有難う御座いました。
何とか私のDigitalSoundCWからTurbo HamLogへリンクが出来ました。Visual Studio 2005のC++で書いたのを一部書き写します。
まず、文字変換のテーブル[94]の英語(大・小文字)、数字、記号を作りました。
BC[0] = 0x30; BF[0] = _T("0");
BC[1] = 0x31; BF[1] = _T("1");
BC[2] = 0x32; BF[2] = _T("2");
BC[3] = 0x33; BF[3] = _T("3");
BC[4] = 0x34; BF[4] = _T("4");
BC[5] = 0x35; BF[5] = _T("5");
BC[6] = 0x36; BF[6] = _T("6");
BC[7] = 0x37; BF[7] = _T("7");
BC[8] = 0x38; BF[8] = _T("8");
BC[9] = 0x39; BF[9] = _T("9");
BC[10] = 0x3a; BF[10] = _T(":");
BC[11] = 0x3b; BF[11] = _T(";");
BC[12] = 0x3c; BF[12] = _T("<");
BC[13] = 0x3d; BF[13] = _T("=");
BC[14] = 0x3e; BF[14] = _T(">");
BC[15] = 0x3f; BF[15] = _T("?");
BC[16] = 0x40; BF[16] = _T("@");
BC[17] = 0x41; BF[17] = _T("A");
BC[18] = 0x42; BF[18] = _T("B");
BC[19] = 0x43; BF[19] = _T("C");
コールを指定する時
CString Cbuff; // ユニコードの文字変数
char buffs[256];// ASCII用のバッファー
int i, j, len, ok;
int cmmd;
HWND hWnd1;
LRESULT hWnd2; ⇔ ここが違います
COPYDATASTRUCT cds;
CComBSTR
bstrTemp;
hWnd1 = ::FindWindowW(_T("TThwin"), NULL);
if (hWnd1 == 0)
{ AfxMessageBox(_T("HamLogを起動して下さい。"), MB_OK , NULL);
return;}
m_editHisCall.GetWindowTextW(Cbuff);
bstrTemp = Cbuff;
len = bstrTemp.Length();
if (len > 0)
{ for (j = 0; j < len; j++)
{
ok = 0;
for (i = 0; i <= 94; i++)
{
if (BF[i] == Cbuff.Mid(j,1))
{
buffs[j] = BC[i];
ok++;
}
}
if (ok == 0) return;
}
cmmd = 1;
cmmd |= 0x10000;
cmmd |= 0x20000;
cds.dwData = cmmd;
cds.cbData = len;
cds.lpData = &buffs;
hWnd2 = ::SendMessageW(hWnd1, WM_COPYDATA, (WPARAM)this->m_hWnd, (LPARAM)&cds);}
と書きました。RST CODEなど他の枠への転送も同様に旨く行きましたのでご報告いたします。無論、漢字には対応できていませんが必要ならハムログの入力画面に直接書き込めます。
なお、何処かに記載されているのかわかりませんが、推察でcmmd = 25を試したところ、DXのチェックボックスがONとなり、時間表示もUTCに変える事が出来ました。 Cmmd = 26にすると国内JST対応でした。
これで、重複チェックもバッチリです。 有難う御座いました。