Windows Programing for C/C++(Not MFC)
316 :
デフォルトの名無しさん:
不可視のウィンドウを作って、WM_SETTEXT を無視、WM_GETTEXT で任意の
文字列を返す、という事をやりたいのですが、どうもうまく行きません。
ウィンドウプロシージャでこれらのメッセージを捕まえようとしても、外部プロセス
からの SendMessage() では普通にテキスト設定/取得されてしまいます。
(ウィンドウプロシージャにメッセージが届いていないようです)
一方、プロセス内部からの SendMessage() では、きちんとウィンドウプロシージャ
にメッセージが届き、期待通りの動作をします。
何がいけないのでしょうか。
LRESULT CALLBACK StringGiverWindowProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
static LPCSTR GivingText = NULL;
switch(Message)
{
case WM_CREATE:
GivingText = (LPCSTR)((CREATESTRUCT *)lParam)->lpCreateParams);
break;
case WM_GETTEXT:
if(lParam && GivingText)
return (LRESULT)strncpy((LPSTR)lParam, GivingText, (size_t)wParam);
break;
case WM_SETTEXT:
break;
default:
return(DefWindowProc(hWnd, Message, wParam, lParam));
}
return 0;
}