KR101229264B1 - Common meessage distributor and method for transmitting window message thereof - Google Patents
Common meessage distributor and method for transmitting window message thereof Download PDFInfo
- Publication number
- KR101229264B1 KR101229264B1 KR1020110019694A KR20110019694A KR101229264B1 KR 101229264 B1 KR101229264 B1 KR 101229264B1 KR 1020110019694 A KR1020110019694 A KR 1020110019694A KR 20110019694 A KR20110019694 A KR 20110019694A KR 101229264 B1 KR101229264 B1 KR 101229264B1
- Authority
- KR
- South Korea
- Prior art keywords
- message
- window message
- window
- function
- header information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
적어도 하나의 모듈에 연결된 공통 메시지 분배기의 윈도우 메시지 전송 방법이 개시된다. 본 발명에 따른 윈도우 메시지 전송 방법은, DLL(dynamic link library) 모듈의 윈도우 핸들을 등록하는 단계, 상기 적어도 하나의 모듈로부터 상기 윈도우 메시지를 수신하는 이벤트를 검출하는 단계, 상기 이벤트가 검출되면, 콜백 함수를 호출하여 상기 콜백 함수의 큐에 상기 윈도우 메시지를 저장하는 단계, 헤더 정보 해석 함수를 호출하여, 상기 콜백 함수의 큐에 저장된 상기 윈도우 메시지를 분석하는 단계, 상기 윈도우 메시지의 분석 결과를 이용하여, 상기 윈도우 메시지의 전송 경로를 결정하는 단계와 상기 전송 경로를 따라, 상기 윈도우 메시지를 송신하는 단계를 포함할 수 있다.Disclosed is a method of transmitting a window message of a common message distributor connected to at least one module. In accordance with another aspect of the present invention, a method of transmitting a window message includes registering a window handle of a dynamic link library (DLL) module, detecting an event of receiving the window message from the at least one module, and if the event is detected, callback Storing a window message in a queue of the callback function by calling a function; calling a header information interpretation function; analyzing the window message stored in the queue of the callback function; using a result of analyzing the window message The method may include determining a transmission path of the window message and transmitting the window message along the transmission path.
Description
본 발명은 공통 메시지 분배기 및 그 윈도우 메시지 전송 방법에 관한 것으로, 더욱 상세하게는 복수 개의 모듈에 연결되어 복수 개의 모듈 중 적어도 하나의 모듈로 윈도우 메시지를 전송하는 공통 메시지 분배기 및 그 윈도우 메시지 전송 방법에 관한 것이다. The present invention relates to a common message distributor and a window message transmission method, and more particularly, to a common message distributor and a window message transmission method connected to a plurality of modules to transmit a window message to at least one of the plurality of modules. It is about.
각종 프로그램 또는 어플리케이션의 전문성 및 복잡성이 증가함에 따라서, 근자의 프로그램 또는 어플리케이션의 제작 시에는 여러 명이 공동 제작을 수행하여 제작하는 경우가 증가하고 있는 실정이다.As the professionalism and complexity of various programs or applications increase, there are an increasing number of people who co-produce while producing a program or application.
여러 명이 공동 제작에 참여함에 따라, 제작 참여 모듈 간의 연동의 필요성이 증대되고 있으며, 이러한 필요성을 만족하기 위하여 각종 미들웨어가 개발되고 있다. 여기에서 미들웨어는 분산 컴퓨팅 환경의 이종 하드웨어 또는 프로토콜을 연동하여, 응용프로그램 및 운영환경 간의 원활한 통신이 이루어지도록 하는 소프트웨어를 의미하며, 그 예로는 HAVI(Home Audio Video Interoperability), JINI, LonWorks, HnCP(Home Network Control Protocol), UPnP(Universal Plug and Play) 등이 존재한다. As several people participate in the co-production, the necessity of interworking between production participation modules is increasing, and various middlewares are being developed to satisfy this necessity. Here, middleware refers to software that enables seamless communication between applications and operating environments by interworking heterogeneous hardware or protocols in a distributed computing environment. Examples include HAVI (Home Audio Video Interoperability), JINI, LonWorks, and HnCP ( Home Network Control Protocol (UPNP) and Universal Plug and Play (UPnP).
한편, 단일 시스템 내에서 복수 개의 모듈간의 인터페이스의 경우에는, OS(operating system)에서 제공하는 소켓 통신 또는 윈도우 메시지, 공유메모리, 파이프라인 등이 이용될 수 있다.Meanwhile, in the case of an interface between a plurality of modules in a single system, socket communication or window messages, shared memory, pipelines, etc. provided by an operating system (OS) may be used.
특히 윈도우 환경에서는 소켓 통신, 공유메모리, 윈도우 메시지가 주로 이용되며, 연동되는 대상에 따라서 적합한 통신 방법을 선별하여 이용할 수 있다. In particular, in the Windows environment, socket communication, shared memory, and window messages are mainly used, and an appropriate communication method can be selected and used according to the interworking object.
한편, 프로그램 또는 어플리케이션 제작에 소수의 인원만이 참가하는 경우에는, 단일 시스템에서 복수 개의 연동 방법을 사용하여도 시스템의 복잡성에 따른 문제점은 미약할 것이다.On the other hand, when only a small number of people participate in program or application production, even if a plurality of interworking methods are used in a single system, the problem due to the complexity of the system will be weak.
하지만, 근자의 경우와 같이 프로그램 또는 어플리케이션 제작이 대형화되어 다수의 인원이 제작에 참여하는 경우에, 다수의 인원 각각이 이종의 연동 방법을 이용한다면 시스템의 복잡성이 급격하게 증가할 수 있다. However, in the case where the production of a program or an application is enlarged as in the case of the recent case and a large number of people participate in the production, the complexity of the system may increase rapidly if each of the plurality of people uses heterogeneous interworking methods.
뿐만 아니라, 다수의 인원 각각이 이종의 연동 방법을 이용한다면 소프트웨어 통합 과정에서 상당한 시간과 경비가 소요될 것이다. In addition, if multiple personnel each use heterogeneous interworking methods, the software integration process will take considerable time and expense.
이러한 문제점을 해결하기 위하여, 제작에 참여하는 다수의 인원이 공통적으로 이용할 수 있는 공통 메시지 분배기의 개발이 요청된다. In order to solve this problem, it is required to develop a common message distributor that can be commonly used by a large number of people participating in the production.
본 발명은 상기의 요청에 응답함과 동시에, 상술한 문제점을 해결하기 위하여 안출된 것으로, 본 발명은 복수 개의 모듈이 공통적으로 이용할 수 있는 공통 메시지 분배기 및 그 윈도우 메시지 전송 방법을 제공한다.The present invention has been made in response to the above request and at the same time solves the above-described problem, the present invention provides a common message distributor and a window message transmission method that can be commonly used by a plurality of modules.
상술한 바를 달성하기 위해 본 발명은 적어도 하나의 모듈에 연결된 공통 메시지 분배기의 윈도우 메시지 전송 방법에 있어서, DLL(dynamic link library) 모듈의 윈도우 핸들을 등록하는 단계, 상기 적어도 하나의 모듈로부터 상기 윈도우 메시지를 수신하는 이벤트를 검출하는 단계, 상기 이벤트가 검출되면, 콜백 함수를 호출하여 상기 콜백 함수의 큐에 상기 윈도우 메시지를 저장하는 단계, 헤더 정보 해석 함수를 호출하여, 상기 콜백 함수의 큐에 저장된 상기 윈도우 메시지를 분석하는 단계, 상기 윈도우 메시지의 분석 결과를 이용하여, 상기 윈도우 메시지의 전송 경로를 결정하는 단계와 상기 전송 경로를 따라, 상기 윈도우 메시지를 송신하는 단계를 포함할 수 있다. According to an aspect of the present invention, there is provided a method of transmitting a window message of a common message distributor connected to at least one module, the method comprising: registering a window handle of a dynamic link library (DLL) module, the window message from the at least one module Detecting an event for receiving the event; if the event is detected, calling a callback function to store the window message in a queue of the callback function; calling a header information interpretation function; and storing the window message in the queue of the callback function. The method may include analyzing a window message, determining a transmission path of the window message using a result of analyzing the window message, and transmitting the window message along the transmission path.
아울러, 상술한 바를 달성하기 위해 본 발명은 복수 개의 모듈에 연결되어, 윈도우 메시지를 전송하는 공통 메시지 분배기에 있어서, 상기 복수 개의 모듈로부터 윈도우 메시지를 수신하는 통신부, 상기 윈도우 메시지와, 상기 윈도우 메시지를 큐에 저장하는 콜백 함수 및 상기 윈도우 메시지를 해석하는 헤더 정보 해석 함수를 포함하는 DLL(dynamic link library) 모듈의 윈도우 핸들을 저장하는 저장부와, 상기 저장부로부터 호출한 상기 콜백 함수와 상기 헤더 정보 해석 함수를 이용하여 상기 윈도우 메시지의 전송 목적지를 결정하며, 상기 결정된 전송 목적지에 상기 윈도우 메시지를 송신하도록 상기 통신부를 제어하는 제어부를 포함할 수 있다.In addition, in order to achieve the above, the present invention is connected to a plurality of modules, the common message distributor for transmitting a window message, the communication unit for receiving a window message from the plurality of modules, the window message and the window message A storage unit for storing a window handle of a dynamic link library (DLL) module including a callback function for storing in a queue and a header information interpretation function for interpreting the window message, the callback function and the header information called from the storage unit The control unit may be configured to determine a transmission destination of the window message by using an analysis function and to control the communication unit to transmit the window message to the determined transmission destination.
본 발명의 다양한 실시 예에 의하여, 다수의 모듈이 공통적으로 이용할 수 있는 공통 메시지 분배기 및 그 윈도우 메시지 전송 방법이 제공될 수 있으며, 이에 따라 사용자의 편의성이 극대화될 수 있다. 또한 모듈 간의 이종의 프로토콜을 이용하는 데에서 발생할 수 있는 시스템의 복잡성을 경감시킬 수 있다. According to various embodiments of the present disclosure, a common message distributor and a window message transmission method that can be commonly used by a plurality of modules may be provided, and thus user convenience may be maximized. It also reduces the system complexity that can arise from using heterogeneous protocols between modules.
도 1은 본 발명의 실시 예에 의한 공통 메시지 분배기와 공통 메시지 분배기에 연결된 복수 개의 모듈 사이의 관계를 설명하기 위한 개념도이다.
도 2는 본 발명의 실시 예에 따른 공통 메시지 분배기의 내부 상세도이다.
도 3은 콜백 함수의 큐를 개념적으로 도시한 개념도이다.
도 4는 본 발명의 실시 예에 의한 공통 메시지 분배기의 윈도우 메시지 전송 방법을 설명하기 위한 흐름도이다.1 is a conceptual diagram illustrating a relationship between a common message distributor and a plurality of modules connected to a common message distributor according to an embodiment of the present invention.
2 is a detailed internal view of a common message distributor according to an embodiment of the present invention.
3 is a conceptual diagram conceptually illustrating a queue of a callback function.
4 is a flowchart illustrating a window message transmission method of a common message distributor according to an embodiment of the present invention.
이하에서는, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 더욱 상세하게 설명하도록 한다. 도면들 중 동일한 구성 요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의하여야 한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다. Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in more detail. It is to be noted that the same components in the drawings are denoted by the same reference numerals whenever possible. In the following description and the annexed drawings, detailed descriptions of well-known functions and configurations that may unnecessarily obscure the subject matter of the present invention will be omitted.
도 1은 본 발명의 실시 예에 의한 공통 메시지 분배기와 공통 메시지 분배기(120)에 연결된 복수 개의 모듈 사이(100-1,100-2,100-n,110)의 관계를 설명하기 위한 개념도이다.1 is a conceptual diagram illustrating a relationship between a common message distributor and a plurality of modules 100-1, 100-2, 100-n, 110 connected to a
도 1에 도시된 바와 같이, 공통 메시지 분배기(120)는 복수 개의 모듈(100-1,100-2,100-n) 및 통신 모듈(110)에 유선 또는 무선으로 연결될 수 있다. As shown in FIG. 1, the
복수 개의 모듈(100-1,100-2,100-n) 각각은 공동 작업을 수행하기 위하여 공통 메시지 분배기(120)에 연결될 수 있으며, 복수 개의 모듈(100-1,100-2,100-n)은 공통 작업을 수행하기 위한 컴퓨터 등과 같은 지능형 단말의 형태로 구현될 수 있다. 한편 복수 개의 모듈(100-1,100-2,100-n) 각각은 또한 더미 단말의 형태로 구현될 수도 있으며, 더미 단말에 데이터를 입/출력하는 장치가 더 연결될 수 있도록 구성하는 것은 당업자에 자명할 것이다.Each of the plurality of modules 100-1, 100-2, 100-n may be connected to the
복수 개의 모듈(100-1,100-2,100-n) 각각은 특정한 업무를 수행할 수 있도록 지정된 윈도우 메시지를 송신 또는 수신할 수 있다. 여기에서 윈도우 메시지는 모듈 각각의 모듈정보 및 헤더 정보 중 적어도 하나를 포함할 수 있다. 즉, 복수 개의 모듈(100-1,100-2,100-n) 각각은 자신의 모듈정보를 주기적 또는 비주기적으로 공통 메시지 분배기(120)에 송신할 수 있으며, 공통 메시지 분배기(120)는 연결된 복수 개의 모듈(100-1,100-2,100-n)에 대한 정보를 주기적 또는 비주기적으로 갱신할 수 있다. Each of the plurality of modules 100-1, 100-2, 100-n may transmit or receive a window message designated to perform a specific task. The window message may include at least one of module information and header information of each module. That is, each of the plurality of modules 100-1, 100-2, 100-n may transmit its module information periodically or aperiodically to the
상술한 바와 같이, 복수 개의 모듈(100-1,100-2,100-n) 각각은 공통 메시지 분배기(120)로 주기적 또는 비주기적으로 윈도우 메시지를 송신할 수도 있으며, 공통 메시지 분배기(120)가 복수 개의 모듈(100-1,100-2,100-n) 각각으로부터 송신되는 윈도우 메시지를 인터셉트(intercept)할 수도 있다. 윈도우 메시지를 인터셉트하는 구성은 콜백 함수의 호출에 의하여 구현될 수 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다. As described above, each of the plurality of modules 100-1, 100-2, 100-n may periodically or aperiodically transmit a window message to the
또한 공통 메시지 분배기(120)는 DLL(dynamic link library) 모듈의 윈도우 핸들을 등록할 수 있다. 여기에서 DLL은 마이크로소프트 윈도우에서 구현되는 동적 라이브러리이다. DLL의 내부에는 다른 프로그램이 불러서 이용할 수 있는 다양한 함수들을 가지고 있는데, 확장 DLL인 경우는 클래스를 가질 수도 있다. 한편 윈도우 핸들은 HWND형일 수 있다. In addition, the
이후, 공통 메시지 분배기(120)는 각각의 모듈(100-1,100-2,100-n)로부터 수신한 윈도우 메시지를 분석하여 윈도우 메시지가 전송될 전송 경로를 결정할 수 있다. 공통 메시지 분배기(120)가 윈도우 메시지를 분석하여 윈도우 메시지가 전송될 경로를 결정하는 구성에 대하여서는 더욱 상세하게 후술하도록 한다.Thereafter, the
공통 메시지 분배기(120)는 결정된 윈도우 메시지가 전송될 경로에 따라서, 윈도우 메시지를 전송할 수 있다. 더욱 상세하게는 공통 메시지 분배기(120)는 윈도우 메시지를 복수 개의 모듈(100-1,100-2,100-n) 중 하나 또는 통신 모듈(110)로 송신할 수 있다. The
여기에서, 통신 모듈(110)은 복수 개의 모듈(100-1,100-2,100-n)과 직접적으로 연결되지 않은 모듈을 의미할 수 있다. 즉, 복수 개의 모듈(100-1,100-2,100-n) 중 특정 모듈(예를 들어, 10-1)이 특정 모듈(10-1)을 제외한 나머지 모듈(10-2,10-n)이 아닌 망 외부로 윈도우 메시지를 송신할 필요가 있는 경우, 공통 메시지 분배기(120)는 외부로 윈도우 메시지를 송신할 수 있는 통신 모듈(110)로 윈도우 메시지를 송신할 수 있다.Here, the
상술한 바와 같이, 공통 메시지 분배기(120)는 복수 개의 모듈(100-1,100-2,100-n)로부터 송신되는 윈도우 메시지를 모두 수신하거나 또는 인터셉트할 수 있으며, 이에 따라 용이하게 모듈(100-1,100-2,100-n) 간의 호환성을 증대할 수 있다. 아울러, 공통 메시지 분배기(120)는 통신 모듈(110)을 이용하여, 연결된 모듈(100-1,100-2,100-n) 이외의 외부로도 윈도우 메시지를 송신할 수 있으며, 이에 따라 사용자 편의가 더욱 증대될 수도 있다. As described above, the
이하에서는, 도 2를 참조하여 공통 메시지 분배기(120)가 제 1 모듈(201)로부터 윈도우 메시지를 수신 또는 인터셉트하여 제 2 모듈(202)로 송신하는 구성에 대하여 설명하도록 한다.Hereinafter, a configuration in which the
도 2는 본 발명의 실시 예에 따른 공통 메시지 분배기의 내부 상세도이다.2 is a detailed internal view of a common message distributor according to an embodiment of the present invention.
도 2의 실시 예에서는, 공통 메시지 분배기(200)가 제 1 모듈(201)로부터 윈도우 메시지를 전송받아, 제 2 모듈(202)로 전송하는 구성을 상정하도록 한다. In the embodiment of FIG. 2, it is assumed that the
도 2에 도시된 바와 같이, 공통 메시지 분배기(200)는 통신부(210), 저장부(220) 및 제어부(230)를 포함할 수 있다. As shown in FIG. 2, the
통신부(210)는 모듈(201)로부터 윈도우 메시지를 수신 또는 인터셉트할 수 있다. 통신부(210)는 수신된 윈도우 메시지를 저장부(220)에 저장할 수 있다. The communication unit 210 may receive or intercept a window message from the
또한 통신부(210)는 제어부(230)가 결정한 윈도우 메시지 전송 경로에 따라서, 전송 목적지로 결정된 모듈(202)로 윈도우 메시지를 송신할 수 있다.In addition, the communication unit 210 may transmit the window message to the
저장부(220)는 통신부(210)로부터 수신된 윈도우 메시지를 저장할 수 있다. 또한 저장부(220)는 주기적 또는 비주기적으로 DLL(dynamic link library) 모듈의 윈도우 핸들을 등록하여 저장할 수 있다. 여기에서 DLL은 윈도우 메시지를 분석하여 메시지 전송 경로를 결정하는 데 이용될 수 있는 콜백 함수, 헤더 정보 해석 함수, 윈도우 핸들 초기화 함수, 전송 함수 등을 포함할 수 있다. The
제어부(230)는 이벤트 검출부(231), 콜백 함수 호출부(232), 윈도우 메시지 추출부(233), 헤더 정보 해석 함수 호출부(234), 헤더 정보 해석부(235)를 포함할 수 있다.The
이벤트 검출부(231)는 통신부(210)에 제 1 모듈(201)로부터 윈도우 메시지가 수신되었는지 여부를 검출할 수 있다. 통신부(210)는 제 1 모듈(210)로부터 윈도우 메시지가 수신되면, 상술한 바와 같이 저장부(220)에 전송할 수 있으며, 이와 동시에 이벤트 검출부(231)에도 전송할 수 있다. 통신부(210)가 저장부(220) 및 이벤트 검출부(231)의 양 구성 요소에 모두 전송하는 구성은 당업자가 용이하게 도출할 수 있는 것으로 여기에서 더욱 상세한 설명은 생략하도록 한다.The
또는 통신부(210)는 내부에 기설정된 클럭 신호 생성회로를 더 포함할 수 있으며, 통신부는(210) 제 1 모듈(210)로부터 윈도우 메시지가 수신되는 것을 트리거로 하여, 기설정된 클럭 신호를 생성하여 이벤트 검출부(231)로 전송할 수도 있다. 이벤트 검출부(231)는 기설정된 클럭 신호를 수신하는 것을 이벤트로 판단할 수도 있으며, 상술한 방법 이외에도 당업자는 다양한 방법으로 이벤트 검출을 구현할 수 있을 것이다. Alternatively, the communication unit 210 may further include a preset clock signal generation circuit. The communication unit 210 generates a preset clock signal by triggering the reception of a window message from the first module 210. The
이벤트 검출부(231)가 상술한 구성을 통하여 통신부(210)에서 윈도우 메시지를 수신하였다는 이벤트를 검출하면, 이벤트 검출부(231)는 콜백 함수 호출부(232)에 콜백 함수를 호출하는 명령 메시지를 전송할 수 있다.When the
이벤트 검출부(231)로부터 콜백 함수를 호출하라는 명령 메시지를 수신하면, 콜백 함수 호출부는 저장부(220)로부터 콜백 함수를 호출할 수 있다. 여기에서 콜백 함수는 운영 체제(OS)가 호출한 어플리케이션 함수를 지정하는 콜백의 대상으로, 특정한 이벤트 또는 메시지가 발생할 경우 호출되도록 지정될 수 있다. 본 실시 예에서의 이벤트는, 이벤트 검출부(231)가, 통신부(210)에서 윈도우 메시지를 수신하였다는 통지를 수신하는 것일 수 있다. When the command message to call the callback function is received from the
한편 콜백 함수는 큐(queue)를 자료 구조로 이용할 수 있으며, 이에 따라 콜백함수는 FIFO(first in first out)방식으로 큐를 처리할 수 있다. 즉, 본 실시 예에 의한 제어부(230)는 콜백 함수의 큐에서 윈도우 메시지를 하나씩 처리할 수 있다.On the other hand, the callback function can use a queue as a data structure, and thus the callback function can process the queue in a FIFO (first in first out) manner. That is, the
윈도우 메시지 추출부(233)는 콜백 함수가 호출되는 것에 대응하여, 저장부(220)에 저장된 윈도우 메시지를 추출할 수 있다. 상술한 바와 같이, 윈도우 메시지는 FIFO 방식으로 처리되기 때문에, 윈도우 메시지 추출부(233) 또한 윈도우 메시지를 하나씩 추출할 수 있다. The
한편, 윈도우 메시지 추출부(233)는 윈도우 메시지를 저장할 수 있는 매체를 더 포함할 수도 있으며, 예를 들어 윈도우 메시지 추출부(233)는 쉬프트 레지스터 등을 포함할 수 있으며, 이에 따라 FIFO 방식에 의하여 윈도우 메시지를 추출하여 헤더 정보 해석부(235)로 출력할 수 있다. Meanwhile, the
윈도우 메시지 추출부(233)가 FIFO 방식에 의하여 윈도우 메시지를 추출하는 과정은 도 3에 도시된다. 도 3은 콜백 함수의 큐를 개념적으로 도시한 개념도이다. 도 3의 화살표 방향은 시간의 경과에 따른 것으로, 도 3에 도시된 바와 같이 제 1 단계에서 콜백 함수의 큐는 제 1 큐-제 3 큐-제 2 큐의 순서로 저장되어 있음을 확인할 수 있다. 여기에서 제 1 큐, 제 2 큐, 제 3 큐는 각각의 모듈로부터 수신되어 저장부(220)에 저장된 윈도우 메시지일 수 있다. 제 1 큐-제 3 큐-제 2 큐의 저장 순서는 바람직하게는 통신부(210)에 수신된 시계열적 순서일 수 있다. 다만, 시계열적으로 구분하기 불가능한 시간 간격으로 큐가 수신된 경우에는, 기설정된 순위로 복수 개의 큐가 저장될 수도 있다. The process of extracting the window message by the
윈도우 메시지 추출부(233)는 제 1 큐를 헤더 정보 해석부(235)로 출력할 수 있으며, 신규 큐로 제 5 큐를 저장할 수 있다. 도 3에 도시된 제 2 단계에서 제 3 큐-제 2 큐-제 5 큐의 순서로 콜백 함수의 큐에 저장되어 있음을 확인할 수 있다. The
윈도우 메시지 추출부(233)는 제 3 큐를 헤더 정보 해석부(235)로 출력할 수 있으며, 신규 큐로 제 4 큐를 저장할 수 있다. 도 3에 도시된 제 3 단계에서 제 2 큐-제 5 큐-제 4 큐의 순서로 콜백 함수의 큐에 저장되어 있음을 확인할 수 있다. 한편, 도 3에는 콜백 함수의 큐가 선형 큐로 도시되어 있지만, 당업자는 용이하게 선형 큐를 환형 큐로 변경 설계할 수 있을 것이다. The
상술한 바와 같이, 콜백 함수가 큐를 자료 구조로 이용함에 따라 콜백 함수는 윈도우 메시지를 하나씩 헤더 정보 해석부(235)로 출력할 수 있다.As described above, as the callback function uses the queue as a data structure, the callback function may output window messages to the
한편, 윈도우 메시지 추출부(233)는 저장부(220)로부터 윈도우 메시지를 추출하고, 윈도우 메시지를 추출하였다는 통지 메시지를 헤더 정보 해석 함수 호출부(234)로 전송할 수 있다.The
헤더 정보 함수 호출부(234)는 윈도우 메시지 추출부(233)로부터 전송받은 통지 메시지를 트리거로 하여, 저장부(220)로부터 헤더 정보 해석 함수를 호출할 수 있으며, 호출된 헤더 정보 해석 함수를 헤더 정보 해석부(235)로 출력할 수 있다. The header
헤더 정보 해석부(235)는 윈도우 메시지 추출부(233)로부터 수신한 윈도우 메시지와 헤더 정보 해석 함수 호출부(234)로부터 수신한 헤더 정보 해석 함수를 이용하여 윈도우 메시지의 헤더 정보를 해석할 수 있다.The
윈도우 메시지는 제 1 인자로 전송 목적지를, 제 2 인자로 메시지 종류를 제 3 인자로 메시지 내용을 포함할 수 있다.The window message may include a transmission destination as a first factor, a message type as a second factor, and message content as a third factor.
하기의 기재는 윈도우 메시지를 기술하는 함수의 예시이다.The following description is an example of a function describing a window message.
LRESULT SendMessageTimeout(LRESULT SendMessageTimeout (
HWND hWnd, //handleto windowHWND hWnd, // handleto window
UINT Msg, //messageUINT Msg, // message
WPARAM wParam, //first message parameterWPARAM wParam, // first message parameter
LPARAM lParam, //second message parameterLPARAM lParam, // second message parameter
UINT fuFlages, //send optionsUINT fuFlages, // send options
UINT uTimeout, //time-out durationUINT uTimeout, // time-out duration
PDWORD_PTR lpdwResult //return value for synchronous callPDWORD_PTR lpdwResult // return value for synchronous call
););
헤더 정보 해석부(235)는 윈도우 메시지에 포함된 각각의 인자를 해석하여 윈도우 메시지의 전송 목적지를 결정할 수 있으며, 윈도우 메시지와 전송 목적지, 예를 들어 제 2 모듈(202) 정보를 동시에 통신부(210)로 전송할 수 있다. 통신부(210)는 전송받은 전송 목적지를 이용하여 윈도우 메시지를 제 2 모듈(202)로 전송할 수 있다.The header
상술한 구성에 따라서, 공통 메시지 분배기는 제 1 모듈(201)과 제 2 모듈(202)의 콜백 함수를 구동하여 제 1 모듈(201) 및 제 2 모듈(202)로부터 전송되는 윈도우 메시지를 모두 수신 또는 인터셉트하여 윈도우 메시지에 포함된 전송 목적지를 해석할 수 있다. 이에 따라 복수의 모듈로부터 윈도우 메시지가 수신되는 상황에서도, 공통 메시지 분배기(200)는 콜백 함수의 큐에서 FIFO 방식으로 윈도우 메시지를 처리하여 안정적으로 윈도우 메시지를 전송 목적지로 전송할 수 있다.According to the above-described configuration, the common message distributor drives both callback functions of the
이하에서는, 본 발명의 다른 측면에 의한 공통 메시지 분배기의 윈도우 메시지 전송 방법을 도 4를 참조하여 설명하도록 한다.Hereinafter, a window message transmission method of a common message distributor according to another aspect of the present invention will be described with reference to FIG. 4.
도 4는 본 발명의 실시 예에 의한 공통 메시지 분배기의 윈도우 메시지 전송 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a window message transmission method of a common message distributor according to an embodiment of the present invention.
우선, 공통 메시지 분배기에 DLL 모듈의 윈도우 핸들을 등록할 수 있다(S410). 상기의 DLL에 대하여서는 도 1과 관련하여 상술하였기 때문에, 여기에서는 DLL에 대한 상세한 설명을 생략하도록 한다.First, the window handle of the DLL module may be registered in the common message distributor (S410). Since the above DLL has been described above with reference to FIG. 1, a detailed description of the DLL will be omitted here.
DLL 모듈의 윈도우 핸들이 등록되고, 공통 메시지 분배기는 윈도우 메시지를 수신하였다는 이벤트를 검출할 수 있다(S420). 공통 메시지 분배기가 윈도우 메시지 수신 이벤트를 검출하면, 콜백 함수를 호출할 수 있으며(S430), 호출된 콜백 함수의 큐에서 상술한 바와 같이 FIFO 방식에 의하여 윈도우 메시지를 처리할 수 있다.The window handle of the DLL module is registered, and the common message distributor may detect an event that the window message has been received (S420). When the common message distributor detects the window message receiving event, the callback function may be called (S430), and the window message may be processed by the FIFO method as described above in the queue of the called callback function.
윈도우 메시지가 콜백 함수의 큐에 저장이되면, 공통 메시지 분배기는 헤더 정보 해석 함수를 호출하고, 호출된 헤더 정보 해석 함수를 이용하여 윈도우 메시지를 분석할 수 있다(S440).When the window message is stored in the queue of the callback function, the common message distributor may call the header information interpretation function and analyze the window message by using the called header information interpretation function (S440).
또한 공통 메시지 분배기는 윈도우 메시지 분석 결과에 따라서 전송 목적지 및 전송 경로를 결정할 수 있으며(S450), 결정된 전송 목적지에 윈도우 메시지를 전송할 수 있다(S460).In addition, the common message distributor may determine the transmission destination and the transmission path according to the window message analysis result (S450), and transmit the window message to the determined transmission destination (S460).
상술한 윈도우 메시지 전송 방법에 따라서, 복수의 모듈로부터 윈도우 메시지가 수신되는 상황에서도, 공통 메시지 분배기는 콜백 함수의 큐에서 FIFO 방식으로 윈도우 메시지를 처리하여 안정적으로 윈도우 메시지를 전송 목적지로 전송할 수 있다.According to the window message transmission method described above, even in a situation where a window message is received from a plurality of modules, the common message distributor can stably transmit the window message to the transmission destination by processing the window message in the FIFO method in the queue of the callback function.
200 : 공통 메시지 분배기 210 : 통신부
220 : 저장부 230 : 제어부
231 : 이벤트 검출부 232 : 콜밸 함수 호출부
233 : 윈도우 메시지 추출부 234 : 헤더 정보 해석 함수 호출부
235 : 헤더 정보 해석부 200: common message distributor 210: communication unit
220: storage unit 230: control unit
231: event detection unit 232: call ball function call unit
233: window message extraction unit 234: header information interpretation function call unit
235: header information analysis unit
Claims (7)
상기 윈도우 메시지를 큐에 저장하는 콜백 함수 및 상기 윈도우 메시지를 해석하는 헤더 정보 해석 함수를 포함하는 DLL(dynamic link library) 모듈의 윈도우 핸들을 등록하는 단계,
상기 적어도 하나의 모듈로부터 상기 윈도우 메시지를 수신하는 이벤트를 검출하는 단계,
상기 이벤트가 검출되면, 상기 콜백 함수를 호출하여 상기 콜백 함수의 큐에 상기 윈도우 메시지를 저장하는 단계,
상기 헤더 정보 해석 함수를 호출하여, 상기 콜백 함수의 큐에 저장된 상기 윈도우 메시지를 분석하는 단계,
상기 윈도우 메시지의 분석 결과를 이용하여, 상기 윈도우 메시지의 전송 경로를 결정하는 단계와
상기 전송 경로를 따라, 상기 윈도우 메시지를 송신하는 단계를 포함하며,
상기 윈도우 메시지는, 제 1 인자로 상기 윈도우 메시지의 전송 경로를, 제 2 인자로 상기 윈도우 메시지의 종류를, 제 3 인자로 상기 윈도우 메시지의 컨텐츠를 설정하는 윈도우 메시지 전송 방법.In the window message transmission method of the common message distributor connected to at least one module,
Registering a window handle of a dynamic link library (DLL) module including a callback function for storing the window message in a queue and a header information interpretation function for interpreting the window message;
Detecting an event receiving the window message from the at least one module,
If the event is detected, calling the callback function and storing the window message in a queue of the callback function;
Invoking the header information parsing function, analyzing the window message stored in the queue of the callback function;
Determining a transmission path of the window message using the analysis result of the window message;
Transmitting the window message along the transmission path;
And the window message sets a transmission path of the window message as a first parameter, a type of the window message as a second parameter, and contents of the window message as a third parameter.
상기 윈도우 메시지를 기술하는 함수는,
LRESULT SendMessageTimeout(
HWND hWnd, //handleto window
UINT Msg, //message
WPARAM wParam, //first message parameter
LPARAM lParam, //second message parameter
UINT fuFlages, //send options
UINT uTimeout, //time-out duration
PDWORD_PTR lpdwResult //return value for synchronous call
);
인 것을 특징으로 하는 윈도우 메시지 전송 방법.The method of claim 1,
The function that describes the window message is
LRESULT SendMessageTimeout (
HWND hWnd, // handleto window
UINT Msg, // message
WPARAM wParam, // first message parameter
LPARAM lParam, // second message parameter
UINT fuFlages, // send options
UINT uTimeout, // time-out duration
PDWORD_PTR lpdwResult // return value for synchronous call
);
Window message transmission method, characterized in that.
상기 복수 개의 모듈로부터 윈도우 메시지를 수신하는 통신부,
상기 윈도우 메시지와, 상기 윈도우 메시지를 큐에 저장하는 콜백 함수 및 상기 윈도우 메시지를 해석하는 헤더 정보 해석 함수를 포함하는 DLL(dynamic link library) 모듈의 윈도우 핸들을 저장하는 저장부와,
상기 저장부로부터 호출한 상기 콜백 함수와 상기 헤더 정보 해석 함수를 이용하여 상기 윈도우 메시지의 전송 목적지를 결정하며, 상기 결정된 전송 목적지에 상기 윈도우 메시지를 송신하도록 상기 통신부를 제어하는 제어부를 포함하며,
상기 윈도우 메시지는, 제 1 인자로 상기 윈도우 메시지의 전송 경로를, 제 2 인자로 상기 윈도우 메시지의 종류를, 제 3 인자로 상기 윈도우 메시지의 컨텐츠를 설정하는 공통 메시지 분배기.In the common message distributor that is connected to a plurality of modules, and transmits a window message,
Communication unit for receiving a window message from the plurality of modules,
A storage unit for storing a window handle of a dynamic link library (DLL) module including the window message, a callback function for storing the window message in a queue, and a header information interpretation function for interpreting the window message;
A control unit configured to determine a transmission destination of the window message by using the callback function and the header information interpretation function called from the storage unit, and to control the communication unit to transmit the window message to the determined transmission destination;
And wherein the window message sets a transmission path of the window message as a first parameter, a type of the window message as a second parameter, and contents of the window message as a third parameter.
상기 윈도우 메시지를 기술하는 함수는,
LRESULT SendMessageTimeout(
HWND hWnd, //handleto window
UINT Msg, //message
WPARAM wParam, //first message parameter
LPARAM lParam, //second message parameter
UINT fuFlages, //send options
UINT uTimeout, //time-out duration
PDWORD_PTR lpdwResult //return value for synchronous call
);
인 것을 특징으로 하는 공통 메시지 분배기.The method of claim 4, wherein
The function that describes the window message is
LRESULT SendMessageTimeout (
HWND hWnd, // handleto window
UINT Msg, // message
WPARAM wParam, // first message parameter
LPARAM lParam, // second message parameter
UINT fuFlages, // send options
UINT uTimeout, // time-out duration
PDWORD_PTR lpdwResult // return value for synchronous call
);
A common message distributor.
상기 제어부는,
상기 통신부가 상기 윈도우 메시지를 수신하는 이벤트를 검출하는 이벤트 검출부,
상기 이벤트 검출부가 상기 이벤트를 검출하면, 상기 저장부로부터 상기 콜백 함수를 호출하는 콜백 함수 호출부,
상기 저장부로부터 상기 윈도우 메시지를 추출하는 윈도우 메시지 추출부,
상기 저장부로부터 상기 헤더 정보 해석 함수를 호출하는 헤더 정보 해석 함수 호출부와
상기 윈도우 메시지 추출부로부터 전송받은 상기 윈도우 메시지 및 상기 헤더 정보 해석 함수 호출부로부터 전송받은 상기 헤더 정보 해석 함수를 이용하여 상기 윈도우 메시지를 해석하여, 상기 윈도우 메시지의 전송 목적지를 결정하는 헤더 정보 해석부를 포함하는 공통 메시지 분배기.The method of claim 4, wherein
The control unit,
An event detector for detecting an event in which the communication unit receives the window message;
A callback function caller which calls the callback function from the storage when the event detector detects the event;
A window message extracting unit extracting the window message from the storage unit;
A header information analysis function call unit for calling the header information analysis function from the storage unit;
A header information analyzer configured to analyze the window message by using the window message received from the window message extractor and the header information interpreter received from the header information interpreter caller, and determine a transmission destination of the window message. Including common message distributor.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110019694A KR101229264B1 (en) | 2011-03-04 | 2011-03-04 | Common meessage distributor and method for transmitting window message thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110019694A KR101229264B1 (en) | 2011-03-04 | 2011-03-04 | Common meessage distributor and method for transmitting window message thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120100644A KR20120100644A (en) | 2012-09-12 |
KR101229264B1 true KR101229264B1 (en) | 2013-02-04 |
Family
ID=47110338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110019694A KR101229264B1 (en) | 2011-03-04 | 2011-03-04 | Common meessage distributor and method for transmitting window message thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101229264B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104793931A (en) * | 2015-03-23 | 2015-07-22 | 广东瑞德智能科技股份有限公司 | Window message processing method based on MiniGUI |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980045022A (en) * | 1996-12-09 | 1998-09-15 | 양승택 | User event control device and control method using the same |
KR100661006B1 (en) | 2005-12-28 | 2006-12-22 | 주식회사 케이티 | Home network device management system and method thereof |
KR20090015476A (en) * | 2007-08-08 | 2009-02-12 | 엘지엔시스(주) | Apparatus and method for control to window message |
KR20090059308A (en) * | 2007-12-06 | 2009-06-11 | 주식회사 현대오토넷 | Message-based middleware apparatus using queue module of real time operating system and method for managing message |
-
2011
- 2011-03-04 KR KR1020110019694A patent/KR101229264B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980045022A (en) * | 1996-12-09 | 1998-09-15 | 양승택 | User event control device and control method using the same |
KR100661006B1 (en) | 2005-12-28 | 2006-12-22 | 주식회사 케이티 | Home network device management system and method thereof |
KR20090015476A (en) * | 2007-08-08 | 2009-02-12 | 엘지엔시스(주) | Apparatus and method for control to window message |
KR20090059308A (en) * | 2007-12-06 | 2009-06-11 | 주식회사 현대오토넷 | Message-based middleware apparatus using queue module of real time operating system and method for managing message |
Also Published As
Publication number | Publication date |
---|---|
KR20120100644A (en) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10922041B2 (en) | Wireless screen transmission method, extension device, and wireless screen transmission system | |
KR101450491B1 (en) | Transcoder enabled cloud of remotely controlled devices | |
CN105357245B (en) | A kind of smart home system and its design method based on cloud service and ZigBee technology | |
CN109314709A (en) | It is embedded in the telemetering of the enabling mist in Real-time multimedia | |
JP2007335923A (en) | Network system, and server | |
WO2001084291A1 (en) | Network based kvm switching system | |
US20200356513A1 (en) | Asynchronous channel based bus architecture enabling decoupled services | |
EP2308023B1 (en) | Virtual media device | |
JP2012516490A (en) | Method and apparatus for processing user interface comprising component objects | |
US8836482B2 (en) | Method and apparatus for controlling remote user interface client through the third remote user interface client | |
US20120166585A1 (en) | Apparatus and method for accelerating virtual desktop | |
US11126390B2 (en) | System and method for controlling coordination between medical devices, medical workstation and communication device | |
CN102859932A (en) | Method for providing message and device therefor | |
KR101229264B1 (en) | Common meessage distributor and method for transmitting window message thereof | |
CN103885666A (en) | Transmission processing method and transmission processing system of shared information | |
US20120158927A1 (en) | Active monitoring system for serial monitoring device and method thereof | |
EP2566177A1 (en) | Electronic apparatus and method for transferring contents on cloud system to device connected to DLNA | |
CN108984324B (en) | FPGA hardware abstraction layer | |
AU2015100110A4 (en) | System and method of implementing a software game controller on a smart phone or tablet | |
US20060142991A1 (en) | Remote USB network device control | |
KR20200032894A (en) | IoT Communication Method With Messenger Program | |
JP2017033397A (en) | Operation information sharing device, application execution device, operation information sharing system, information processing device and program | |
US20190377699A1 (en) | Analog industrial control systems anti-detection architecture and method | |
CN113949746A (en) | Internet of things virtual sensor implementation method and device and intelligent terminal | |
WO2011041740A1 (en) | System and method for a thin-client terminal system with a local screen buffer using a serial bus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151230 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161228 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171227 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190110 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20200103 Year of fee payment: 8 |