1

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ドキュメントを調べましたが、どこかで簡単なものが欠けているようです。コールバックかもしれないと思ったのですが、そうではないようです。

4

2 に答える 2