C++ を使用して、私はこれを理解しようとしてすでに何時間も費やしてきました。このコードは動作中のプログラムからのものです。C# で書き直していますが、理解できないことがいくつかあります。
以下のコードは、「ステップイン」を押したときに実行されるものとまったく同じです。現在、データを含む pCopyDataStruct を使用して、::SendMessage(...) から ::OnCopyData(..) にどのように移行していますか?
main.cpp
void COTP::main()
{
//string will be returned using WM_COPYDATA message
::SendMessage(hWnd, 33508, (WPARAM)GetSafeHwnd(), 11);
// WPARAM is a typedef for UINT_PTR which is an unsigned int.
}
afxwin2.inl
_AFXWIN_INLINE HWND CWnd::GetSafeHwnd() const
{ return this == NULL ? NULL : m_hWnd; }
main.cpp
BOOL COTP::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
CString str, str2;
switch (pCopyDataStruct->dwData)
{
case JRC_COPYDATA_ID_TRACK_FILENAME:
str = (LPCTSTR)pCopyDataStruct->lpData;
break;
}
}
助けてくれてありがとう、今夜できるすべてのmsdnドキュメントを調べましたが、どこかで簡単なものが欠けているようです。コールバックかもしれないと思ったのですが、そうではないようです。