2009-11-19 7 views
2

나는 이것이 COM에 대해 그다지 많이 알지 못하기 때문에이 내용이 용서 될 수 있음을 알고 있습니다.창 핸들을 사용하여 IUnkown 가져 오기

기본적으로 내가 뭘하려고하면 실행중인 응용 프로그램에 대한 IUnknown 인터페이스에 대한 포인터를 얻는 것입니다, 문제는 응용 프로그램에 대해 알고있는 유일한 주된 윈도우 핸들입니다.

이것이 가능할까요?

답변

3

이렇게하는 "표준"방법은 AccessibleObjectFromWindow Win32 API입니다. 즉, 실제로는 많은 것을 지원하지 않으므로 귀하의 마일리지가 다를 수 있습니다. AccessibleObjectFromWindow를 호출하고 HWND를 전달한 다음 다시 가져온 IntPtr에 Marshal.GetObjectForIUnknown을 사용합니다.

1

가끔 프로세스가 진행중인 경우 (그렇지 않으면 다른 프로세스의 포인터가 의미가 없음) 창의 작성자가 메시지를 기다리고 인터페이스를 반환한다고 명시 적으로 알려줍니다. 일반적으로 사람들은 일반적으로 해킹을 쓸 필요가 없으며 작가에게 알려지지 않은 메시지를 보내면 예측할 수없는 행동을합니다.

관련 문제