오후 2:22 00-03-29
조경민 ATL Control 만들기 in HTML
-------------------------------------------------

먼저 ATL COM 프로젝트를 생성한후 New Object을
Controls에서 Full Control로 Simple을 생성한다.

idl에서 다음과 같은 부분에서의 2BEFBB4B-0579-11D4-BF0A-00C026EE271A
이것이 clsid가 된다.

        [
                uuid(2BEFBB4B-0579-11D4-BF0A-00C026EE271A),
                helpstring("Simple Class")
        ]


디버깅용 html 소스 예제

<html>
<body>
<object
   classid="clsid:2BEFBB4B-0579-11D4-BF0A-00C026EE271A"
>

</object>
</body>
</html>

CSimple 클래스는 다음의 클래스를 상속받음으로써 윈도우모양을
갖추게 된다.
public IOleInPlaceObjectWindowlessImpl<CSimple>,


윈도우 메시지를 핸들링하려면
----------------------------
클래스 뷰에서 CSimple 오른클릭후 Add Windows Message Handler
를 클릭하면 된다.


윈도우를 갱신하기
-------------------

STDMETHODIMP CSimple::Refresh()
{
        //AFX_MANAGE_STATE(AfxGetStaticModuleState())

        // TODO: Add your implementation code here
        ::InvalidateRect(m_hWnd, NULL, TRUE);

        return S_OK;
}

API함수가 아닌 맴버 함수를 호출하면 실행시 에러가 난다.
::SendMessage를 쓰더라도 WPARAM,LPARAM을 채워야 한다.
어느 영역을 할것인가를 정해주어야 한다 (보통 윈도우와 틀림)

NULL로 해주게 되면 브라우저 윈도우 전체가 갱신된다.

+ Recent posts