0

COMアドイン内からダイアログを作成し、外部プロセスからダイアログを送信します。私は使用HWND_BROADCASTRegisterWindowMessageます。

ただし、これらのメッセージは、COMアドインのダイアログプロシージャによって受信されることはありません。ダイアログプロシージャによって受信されたすべてのメッセージと、によって返された値もログに記録するため、これを知っていますRegisterWindowMessage

外部プロセスから:

static UINT nCloseMessage = 0;
if (!nCloseMessage)
    nCloseMessage = RegisterWindowMessage(_T("MyCloseMessage"));    
PostMessage(HWND_BROADCAST, nCloseMessage, 0, 0);

COMアドインから:

INT_PTR CALLBACK ProgressDialogProc(__in  HWND hwndDlg,__in  UINT uMsg,__in  WPARAM wParam,__in  LPARAM lParam)
{
    static UINT nCloseMessage = 0;
    if (!nCloseMessage)
        nCloseMessage = RegisterWindowMessage(_T("MyCloseMessage"));    
    if (uMsg == nCloseMessage)
        MessageBox(0,_T("Caught"),0,0);

    return FALSE;
}
4

1 に答える 1

0

HWND_BROADCASTダイアログに親ウィンドウがある場合、このエラーが発生する理由がわかりました。

親に渡すNULLCreateDialogエラーが修正されました。

于 2012-10-26T16:02:19.923 に答える