전체 글 389

## SendMessage & PostMessage ##

## SendMessage & PostMessage ## 1. 기본적인 동작 방식 - 기본적으로 시스템에는 하나의 메시지큐가 있고, 또한 각 스레드 마다 메시지큐가 하나식 생긴다. - 스레드가 처음 생성될 시에는 메시지큐가 생성되지 않고, 메시지큐가 필요한 시점에서 생성된다. (메시지큐가 필요한 시점이란 메시지를 필요로 하는 관련 함수가 한번이라도 호출 되는 시점을 말한다..gdi함수 등..) - SendMessage의 경우 메시지큐를 거치지 않고 직접 윈도우 프로시저를 호출한다. - PostMessage의 경우 메시지큐에서 메시지를 받아와 순서대로 처리한다. (모든 메시지가 메시지큐에 차례로 들어가는 것은 아니다. 예를 들어 WM_PAINT의 경우 이미 메지시큐에 WM_PAINT가 있다면 뒤에 들어온 ..

API 2008.08.15

윈도우 프로시져

윈도우 프로시져 - 메시지 처리함수 - CALLBACK 함수 -> SendMessage로 간접 호출 - 재진입 가능 - WM_LBUTTONDOWN 처리 중에 WM_PAINT 처리 가능 - 가급적 지역 변수 사용 자제 큐메시지 - 주로 사용자의 입력으로부터 발생되는 메시지 비큐메시지 - 메시지 큐에 들어가지 않고 곧바로 윈도우 프로시저로 보내지는 메시지 - 대부분의 윈도우즈 메시지 시스템 메시지 큐 - 시스템 전체에 유일한 메시지 큐 쓰레드 메시지 큐 시스템 메시지 큐 -> 쓰레드 메시지 큐 -> 윈도우 프로시져 시스템은 쓰레드를 생성할 때 디폴트로 메시지 큐를 가지지 않는 쓰레드를 만든다. GetMessage(메시지, 윈도, 필터맥스, 필터민) - 메시지 큐에서 메시지 제거하고 TRUE 리턴 - WM_Q..

API 2008.08.15

함수,변수 표기법(헝가리안)

가급적 지켜주면 가독성이 좋다. 그러나 반복해서 자주 쓰이는 것은 간단한 소문자를 써서 간략하게 나타내는 게 좋을 듯 싶다. 가령 루프문에서 포인터는 그냥 p나 ptr로 표기하는 게 piNum이런 식으로 표기하는 것보다 나은 듯 하다. 함수,변수 표기법 ========================================= a 배열 b또는f BOOL형 변수(b=bool, f=flag) by BYTE형 변수 c 카운터로 사용되는 변수 ch char형 변수 cx, cy x, y길이를 나타내기 위해 사용 되는 변수 d 날짜형 변수 dbl 더블 형 변수 h 핸들 형 변수 n, i int 형 변수 l long형 변수 p 포인터변수 lp long형 포인터 변수 s 문자열 sz NULL 문자로 끝나는 문자열 u ..

API 2008.08.15

COM 개체 구현 실습

http://dislab.hufs.ac.kr/lecture/cp/2003/com_local_server.ppt 문서의 HTML 버전입니다. G o o g l e은 웹문서를 수집(crawl)하면서 자동으로 문서의 HTML 버전을 생성합니다. COM 개체 구현 실습 AddBack Local Server 예제 프로그램 작성 2 AddBack Local Server 구현 Visual C++ 개발 환경의 [File/New] 메뉴 항목을 선택 [New] 대화 상자의 [Properties] 탭에서 [Win32 Application] 항목 선택 [Location] 텍스트 상자에 앞에서 생성한 AddBack 폴더를 지정 [Project] 텍스트 상자에 ‘AddBack’이라고 입력 [Location] 텍스트 상자 끝에 추..

COM, ATL 2008.08.14

com을 위한 기초

1. COM을 위한 기초 COM : 이진표준(binary standard)을 따르며, 구현은 블랙박스로 숨겨져 있고, 외부에선 인터페이스를 통해서만 접근 가능 이진표준 : 서로 다른 언어와 플랫폼에서 개발된 COM 객체 사이의 접근을 가능하게 함 즉, 이진표준에 따른다는 것은, 메모리 맵 상의 데이터 정렬방식이 같다는 것을 의미하게 되고, 이 규칙을 따르는 모든 플랫폼, 언어들이 이 블랙박스(COM 객체)에 접근이 가능하다는 것을 의미 COM에서 interface는 외부에서 접근할 수 있도록 open되어 있는 whitebox 구조이므로, struct(public을 기본)로 구현 COM 객체 자체는 blackbox구조이므로, class(private를 기본)로 구현 가상 상속 struct Life { in..

COM, ATL 2008.08.14

ActiveX로 웹페이지의 URL가져오기

-응용 예) ActiveX 콘트롤로 특정 도메인 접속이나 특정 파일 경로의 접근을 막을수 있다 ActiveX초기화 상태에서 인터넷 익스플로어는 IOleObject::SetClientSite()로 포인터를 사이트에 넘기는데 이때 URL을 가져올수 있다 1. Obtain the client site (IOleClientSite) interface pointer. The container calls IOleObject::SetClientSite() to pass a pointer to the client site. Override this method to cache this pointer. 2. Obtain a moniker to the client site by calling IOleClientSite::..

웹, HTML 2008.08.14

표준 프락시 스텁 dll 작성법 및 기본개념들

COM(3) - AtlCom.doc 조회(44) C/C++, MFC | 2008/06/09 (월) 05:20 추천하기(0) | 스크랩하기(0) 1. COM개요 1.1. COM 의 이점 1.1.1. 왜 COM 이 필요한가? 컴포넌트 개체 모델(Component Object Model, COM)은 자신의 고유한 기능을 제공하는 단위 어플리케이션 즉, 컴포넌트의 통합 및 커뮤니케이션 방법에 대한 표준을 정의한 사양이다. 1.1.2. 컴포넌트 소프트웨어의 조건 1. COM 컴포넌트는 언어 독립적이어야 한다. 2. COM 컴포넌트는 이진(binary) 형태로 제공되어야 한다. 3. COM 컴포넌트는 버전 호환성을 제공해야 한다. 4. COM 컴포넌트는 위치 투명성(location transparency)을 제공해..

COM, ATL 2008.08.14

COM 이란 ... 참고자료....좀 잘못된 부분도 있는듯 하다

COM 이란.. Component Object Model . 개체를 만드는 COM 규칙. Spec! COM을 사용하는 이점. Location Transparency (위치 투명성) - Client가 Server개체를 만들떄 필요한 dll의 Registry위치는 COM SS이 알아서 가져다 주므로 공개되지 않는다. RPC - Remote Proceser call / LRPC - Light Remote Proceser call => 모두 COM SS 내부에서 ... Language Independence (언어 독립성) - Client가 Visual Basic이고 Server가 C++이 더라도 개체생성 코드가 바뀌지 않는다.(다른 언어에 대해서도 부담이 전혀 없다.) 어떤 언어든 COM의 규칙에 따라서만 만..

COM, ATL 2008.08.14