KR20030084709A - Extensible device driver - Google Patents
Extensible device driver Download PDFInfo
- Publication number
- KR20030084709A KR20030084709A KR10-2003-0025792A KR20030025792A KR20030084709A KR 20030084709 A KR20030084709 A KR 20030084709A KR 20030025792 A KR20030025792 A KR 20030025792A KR 20030084709 A KR20030084709 A KR 20030084709A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- driver
- plug
- information
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1224—Client or server resources management
- G06F3/1225—Software update, e.g. print driver, modules, plug-ins, fonts
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1224—Client or server resources management
- G06F3/1226—Discovery of devices having required properties
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
운영 시스템을 실행하는 컴퓨팅 장치에 의해 외부 장치의 사용을 지원하는 장치 드라이버의 장치 드라이버 프로그램에 있어서, 운영 시스템에 의해 호출되어, 드라이버 플러그인 프로그램의 존재를 검출하고, 검출된 드라이버 플러그인 프로그램으로부터 정보를 얻고, 검출된 드라이버 플러그인 프로그램으로부터 운영 시스템으로 정보를 전달하는 초기화 부분을 포함하고, 또한 검출된 플러그인 프로그램의 기능 부분을 액세스하여 실행하고, 운영 시스템으로부터 외부 장치에 대응하는 이벤트 통지를 수신하고, 검출된 드라이버 플러그인 프로그램이 이벤트 통지를 받아들인 경우에 이벤트 통지를 검출된 드라이버 플러그인 프로그램으로 전달하는 운영 부분을 포함한다.A device driver program of a device driver that supports the use of an external device by a computing device running an operating system, the device driver program being called by the operating system to detect the presence of a driver plug-in program and obtain information from the detected driver plug-in program. And an initialization portion for transferring information from the detected driver plug-in program to the operating system, and also accessing and executing a function portion of the detected plug-in program, receiving an event notification corresponding to an external device from the operating system, And an operating portion that forwards the event notification to the detected driver plug-in program when the driver plug-in program receives the event notification.
Description
본 발명은 장치 드라이버를 다시 컴파일(recompilation)할 필요 없이 동적으로 확장 가능한 기능성(functionality)을 제공하는 장치 드라이버에 관한 것이다. 예를 들어, 본 발명은 운영 시스템에 접속되는 프린터 드라이버로 구현될 수 있으며, 프린터 드라이버는 드라이버 플러그인 모듈을 검출하고, 이 검출된 드라이버 플러그인 모듈에 대응하는 정보를 운영 시스템에 제공하며, 그 후, 검출된 드라이버 플러그인 모듈의 기능을 동적으로 액세스하게 된다.The present invention is directed to a device driver that provides dynamically extensible functionality without the need to recompile the device driver. For example, the present invention may be implemented as a printer driver connected to an operating system, where the printer driver detects a driver plug-in module, provides information to the operating system corresponding to the detected driver plug-in module, and thereafter, Dynamically access the functionality of the detected driver plug-in module.
통상, 프린터 드라이버와 같은 장치 드라이버는 프린터 등의 해당 장치의 액세스 및 사용을 지원하기 위해 워크스테이션 혹은 컴퓨터에 설치된다. 장치 드라이버들은 일반적으로 해당 장치의 제조업자에 의해 개발 및 제공되고 있으며, 해당 장치가 컴퓨팅 환경에 물리적으로 설치될 경우, 혹은 사용자가 기존에 설치된 장치를 사용하기 전에 설치되게 된다.Typically, device drivers, such as printer drivers, are installed on workstations or computers to support access and use of such devices, such as printers. Device drivers are generally developed and provided by the manufacturer of the device and are installed when the device is physically installed in the computing environment or before the user uses the device.
윈도우 운영 시스템에서의 장치 드라이버는 통상 dll(dynamic link library) 파일로 알려져 있는, 그 각각이 장치 드라이버의 중요 기능 부분(functional component)을 구현하게 되는 복수의 파일로 이루어진다. 예를 들어, 프린터 드라이버는 사용자 인터페이스 특성 시트(property sheet)를 디스플레이하기 위한 사용자 인터페이스.dll, 이미지 데이터의 필수 렌더링을 취급하기 위한 그래픽 렌더링.dll 및 프린터 드라이버의 기타 기능 부분들을 표현하는 other.dll 파일들로 이루어진다. 이러한 예에서, 사용자 인터페이스.dll 파일은 운영 시스템 인터페이스 호출을 이용 및 액세스함으로써 프린터 드라이버에 대한 사용자 인터페이스 기능성을 구현하기 위한 컴파일된 코드를 포함하고 있다. 이러한 방식에서, 사용자 인터페이스.dll 파일은 필요한 정보 및 파라미터를 운영 시스템에 제공함으로써 프린터 드라이버에 대한 원하는 사용자 인터페이스 특성 시트가 사용자의 디스플레이상에 표시될 수 있다.Device drivers in the Windows operating system typically consist of a plurality of files, known as dynamic link library (dll) files, each of which implements a functional component of the device driver. For example, the printer driver may include a user interface.dll for displaying a user interface property sheet, a graphics rendering.dll for handling mandatory rendering of image data, and other.dll representing other functional parts of the printer driver. It consists of files. In this example, the user interface .dll file contains compiled code for implementing user interface functionality for the printer driver by using and accessing operating system interface calls. In this manner, the user interface .dll file provides the necessary information and parameters to the operating system so that the desired user interface property sheet for the printer driver can be displayed on the user's display.
또한, 사용자 인터페이스.dll 파일은 디스플레이된 사용자 인터페이스에 대한 배경 지원을 동적으로 제공하기 위해 필수 기능 코드(necessary functional code)를 가지고 있다. 예를 들어, 사용자 인터페이스는 흑백 프린트 혹은 컬러 프린트를 위한 버튼 및 대화 특징(dialog features)을 포함할 수도 있으며, 추가로, 사용자가 흑백 프린트를 선택할 경우, 사용자 인터페이스.dll 파일의 기능 코드는 디스플레이된 사용자 인터페이스 특성 시트상의 사용자의 선택을 인식하고 내부 플래그가 그래픽 렌더링.dll 파일로 전달되어 사용자의 선택이 구현되도록 설정하게 된다.In addition, the user interface.dll file has necessary functional code to dynamically provide background support for the displayed user interface. For example, the user interface may include buttons and dialog features for black and white printing or color printing. Additionally, if the user selects black and white printing, the function code of the user interface.dll file is displayed. Recognizing the user's selection on the user interface properties sheet, an internal flag is passed to the graphics rendering .dll file to set the user's selection to be implemented.
상술한 바와 같이, 장치 드라이버의 .dll 파일은 프린터 드라이버를 위한 그래픽 렌더링.dll 파일 및 사용자 인터페이스.dll 파일 등, 장치 드라이버의 소정의 기능성을 구현한다. 각각의 .dll 파일은 자체적으로 다른 .dll 파일들의 호출을 포함하고 있다. 예를 들어, 사용자 인터페이스.dll 파일은 몇 개의 탭된 특성 시트(tabbed property sheets)로 이루어진 사용자 인터페이스를 제공하여 사용자가 액세스 및/또는 수정을 희망하는 장치 타입의 기능에 따라 선택하도록 할 수도 있다. 이러한 경우에, 사용자 인터페이스.dll 파일은 사용자 인터페이스의 각각의 탭된 특성 시트를 나타내는 기타 소정의 .dll 파일들에 대한 고정 호출을 포함할 수도 있다.As described above, the .dll file of the device driver implements certain functionality of the device driver, such as a graphics rendering .dll file and a user interface .dll file for the printer driver. Each .dll file itself contains calls to other .dll files. For example, the user interface.dll file may provide a user interface consisting of several tabbed property sheets to allow the user to select according to the capabilities of the device type they wish to access and / or modify. In such a case, the user interface .dll file may include a fixed call to other predetermined .dll files representing each tabbed property sheet of the user interface.
전술한 바와 같은 장치 드라이버들은 장치 드라이버의 기능적 능력에 대해 드라이버들이 고착된(statically fixed) 이후에 장치 드라이버의 제조업자에 의해 컴파일되는 것이 일반적이다. 예를 들어, 사용자 인터페이스.dll 파일은 사용자의컴퓨터에 배포 및 이어지는 설치에 앞서 컴파일되며, 그 결과, 사용자 인터페이스.dll 파일에 의해 디스플레이 및 지원되는 사용자 인터페이스 특성 시트는 항상 동일하게 된다. 사용자 인터페이스.dll 파일이 기타 소정의 .dll 파일에 대한 고정 호출(fixed calls)을 포함하고 있는 전술한 예의 경우에도, 기타 소정의 .dll 파일들 각각의 식별(identity)은 사용자 인터페이스.dll 파일의 컴파일시 언제나 고정된다.Device drivers as described above are typically compiled by the manufacturer of the device driver after the drivers are statically fixed relative to the device driver's functional capabilities. For example, the user interface .dll file is compiled prior to distribution and subsequent installation on a user's computer, so that the user interface property sheets displayed and supported by the user interface .dll file are always the same. Even in the above example where the user interface .dll file contains fixed calls to other predetermined .dll files, the identity of each of the other predetermined .dll files is determined by the user interface.dll file. It is always fixed at compile time.
따라서, 사용자의 컴퓨터에 설치되는 장치 드라이버의 기능성은 고정되며 사용자에 의해 혹은, 네트워크화된 컴퓨팅 환경에서는 네트워크 관리자에 의해 요구될 수도 있는 부가적인 기능을 추가하기 위해 수정을 가하는 것이 쉽지 않다. 예를 들어, 네트워크 관리자는 안정적인 프린팅 및 작업 평가와 같은 폭넓은 네트워크 인쇄 작업을 사용자의 프린터 드라이버가 지원하도록 희망할 수도 있다. 전술한 바와 같이 프린터 드라이버는 이러한 기능의 부가를 위해 관리자에 의해 수정되는 것이 용이하지 않다. 대신에, 프린터 드라이버의 개발자들은 사용자 인터페이스.dll 파일, 기타 .dll 파일들을 수정하여 기능을 부가한 후, 리컴파일하여 .dll 파일들을 테스트하고 있다. 프린터 드라이버의 수정된 .dll 파일들은 사용자의 컴퓨터 상에 설치되게 된다. 새로운 기능을 장치 드라이버에 부가하고자 할 때마다 요구되는 이러한 수정 처리는 사용자와, 네트워크 관리자, 그리고 장치 드라이버 개발자들을 성가시게 하는 비효율적인 것임을 알 수 있다.Thus, the functionality of device drivers installed on a user's computer is fixed and it is not easy to make modifications to add additional functionality that may be required by the user or by a network administrator in a networked computing environment. For example, a network administrator may wish to have a user's printer driver support a wide range of network print jobs, such as reliable printing and job evaluation. As mentioned above, the printer driver is not easily modified by the administrator for the addition of such a function. Instead, developers of printer drivers are modifying user interface .dll files and other .dll files to add functionality, and then recompiling them to test .dll files. The modified .dll files of the printer driver will be installed on the user's computer. This modification process, which is required whenever a new feature is added to a device driver, is inefficient to annoy users, network administrators, and device driver developers.
도 1은 본 발명의 일 실시예에 따라 구현될 수 있는 컴퓨팅 환경을 나타내는 도면.1 illustrates a computing environment that may be implemented in accordance with one embodiment of the present invention.
도 2는 도 1에 도시된 컴퓨터의 내부 아키텍쳐를 나타내는 상세 블록도.FIG. 2 is a detailed block diagram illustrating the internal architecture of the computer shown in FIG.
도 3은 본 발명의 일 실시예에 따른 프린터 드라이버의 사용자 인터페이스 모듈의 구성을 설명하기 위한 블록도.3 is a block diagram illustrating a configuration of a user interface module of a printer driver according to an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 플러그인 모듈의 구성을 설명하기 위한 블록도.4 is a block diagram illustrating a configuration of a plug-in module according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 로컬 데이터 구조의 구성을 설명하기 위한 블록도.5 is a block diagram illustrating a configuration of a local data structure according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 프린터 드라이버에 의한 플러그인 모듈의 이용을 설명하기 위한 흐름도.6 is a flowchart illustrating the use of a plug-in module by a printer driver according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 프린터 드라이버 사용자 인터페이스의 주 대화 특성 시트를 설명하기 위한 블록도.FIG. 7 is a block diagram illustrating a main dialog property sheet of a printer driver user interface according to an embodiment of the present invention. FIG.
도 8은 본 발명의 일 실시예에 따른 플러그인 모듈로부터 탭된(tabbed) 대화 특성 시트들을 통합하는 프린터 드라이버 사용자 인터페이스의 주 대화 특성 시트를 설명하기 위한 블록도.FIG. 8 is a block diagram illustrating a main dialog property sheet of a printer driver user interface incorporating tabbed conversation property sheets from a plug-in module according to an embodiment of the present invention. FIG.
도 9는 본 발명의 일 실시예에 따른 플러그인 모듈의 등록을 설명하기 위한 흐름도.9 is a flowchart illustrating registration of a plug-in module according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 플러그인 모듈, 프린터 드라이버 및 운영 시스템 간의 상호 작용을 설명하기 위한 흐름도.10 is a flowchart illustrating interaction between a plug-in module, a printer driver, and an operating system according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
10 : 데스크탑 컴퓨터10: desktop computer
11 : 디스플레이11: display
12 : 호스트 프로세서12: host processor
13 : 고정 디스크13: fixed disk
14 : 마우스14: mouse
15 : 키보드15: keyboard
16 : CD-ROM 드라이브16: CD-ROM drive
20 : 프린터20: printer
30 : 서버30: server
본 발명은 운영 시스템과 인터페이스하는 프린터 드라이버를 제공함으로써 상기 문제들을 해소하고, 이에 따라, 프린터 드라이버는 하나 이상의 드라이버 플러그인 모듈을 검출하고, 각각의 검출된 드라이버 플러그인 모듈에 대응하는 정보를 운영 시스템에 제공하며, 각각의 검출된 드라이버 플러그인 모듈의 기능을 동적으로 액세스한다. 이러한 방식에 있어서, 장치 드라이버의 기능성은 장치 드라이버에 의해 검출된 드라이버 플러그인 모듈의 수와 타입에 기초하여 동적으로 확장되는 기능이며, 장치 드라이버를 다시 설계하거나 리컴파일 및 다시 테스트할 필요도 없다.The present invention solves the above problems by providing a printer driver that interfaces with the operating system, whereby the printer driver detects one or more driver plug-in modules and provides information to the operating system corresponding to each detected driver plug-in module. And dynamically access the functionality of each detected driver plug-in module. In this way, the functionality of the device driver is a function that is dynamically extended based on the number and type of driver plug-in modules detected by the device driver, and there is no need to redesign, recompile and retest the device driver.
따라서, 본 발명의 한 양상은 운영 시스템을 실행시키는 컴퓨팅 장치에 의한 외부 장치의 이용을 지원하기 위한 장치 드라이버 프로그램에 관한 것이며, 이 장치 드라이버 프로그램은 운영 시스템에 의해 호출되는 초기화 부분(initialization portion)를 포함하고 있고, 이 초기화 부분는 드라이버 플러그인 프로그램의 존재를 검출하고, 검출된 드라이버 플러그인 프로그램으로부터 정보를 획득하여 이 정보를 검출된 드라이버 플러그인 프로그램으로부터 운영 시스템에 전달한다. 또한, 상기 장치 드라이버 프로그램은 검출된 플러그인 프로그램의 기능 부분를 액세스하여 실행시키고, 운영 시스템으로부터 외부 장치에 대응하는 이벤트 통지를 운영 시스템으로부터 수신하고, 검출된 드라이버 플러그인 프로그램이 이벤트 통지를 수용하는 경우, 그 이벤트 통지를 검출된 드라이버 플러그인 프로그램에 전달하는 운영 부분(operation portion)도 포함하고 있다.Thus, one aspect of the invention relates to a device driver program for supporting the use of an external device by a computing device executing an operating system, the device driver program comprising an initialization portion called by the operating system. This initialization portion detects the presence of a driver plug-in program, obtains information from the detected driver plug-in program, and transfers this information from the detected driver plug-in program to the operating system. Further, the device driver program accesses and executes the function portion of the detected plug-in program, receives an event notification corresponding to an external device from the operating system from the operating system, and when the detected driver plug-in program accepts the event notification, It also includes an operation portion that delivers event notifications to the detected driver plug-in programs.
드라이버 플러그인 프로그램은 드라이버 플러그인 프로그램에 대응하는 엔트리에 대해 운영 시스템의 시스템 레지스트리를 서치함으로써 검출되는 것이 바람직하다. 또한, 정보는 드라이버 플러그인 프로그램으로부터 밖으로 전달되는(export) 포인터에 의해 액세스되는 정보 기능 호출(information function call)을 이용함으로써 드라이버 플러그인 프로그램으로부터 획득된다. 또한, 장치 드라이버 프로그램은 사용자 인터페이스 프로그램이 바람직하고, 드라이버 플러그인 프로그램으로부터 얻어진 정보는 디스플레이를 위한 대화 특성 시트의 속성과, 프린트 작업 평가 등의 특정 기능 혹은 다른 기능을 구현하기 위한 드라이버 플러그인 프로그램에 실행가능한 코드의 포인터를 포함하는 것이 바람직하다. 드라이버 플러그인 프로그램으로부터 얻어진 정보는 사용자 인터페이스 프로그램에 의해 로컬 데이터 구조로 저장되는 것도 바람직하다. 마지막으로, 드라이버 플러그인 프로그램으로부터 얻어진 정보는 어떠한 타입의 이벤트 통지들이 드라이버 플러그인 프로그램에 전달되어야할지를 판정하는데 사용하기 위한 이벤트 요구 지시기(indicator)를 포함하고 있다.The driver plug-in program is preferably detected by searching the system registry of the operating system for an entry corresponding to the driver plug-in program. Information is also obtained from a driver plug-in program by using an information function call accessed by a pointer that is exported out of the driver plug-in program. In addition, the device driver program is preferably a user interface program, and the information obtained from the driver plug-in program can be executed by the driver plug-in program for implementing specific functions or other functions such as properties of the dialog property sheet for display and evaluation of print jobs. It is preferable to include a pointer to the code. The information obtained from the driver plug-in program is also preferably stored in a local data structure by the user interface program. Finally, the information obtained from the driver plug-in program includes an event request indicator for use in determining what type of event notifications should be delivered to the driver plug-in program.
이로 인해, 장치 드라이버의 기능성은 장치 드라이버의 컴퓨팅 장치에서 검출된 드라이버 플러그인 프로그램의 수와 타입에 기초하여 동적으로 확장될 수 있으므로, 각각의 검출된 드라이버 플러그인 프로그램의 기능은 장치 드라이버의 재설계, 리컴파일, 및 재테스트없이 장치 드라이버에 의해 액세스 및 이용된다.Because of this, the functionality of the device driver can be dynamically extended based on the number and type of driver plug-in programs detected on the computing device of the device driver, so that the function of each detected driver plug-in program is redesigned, redesigned. Accessed and used by device drivers without compilation and retesting.
또 다른 양상에 따르면, 본 발명은 운영 시스템을 실행하는 컴퓨팅 장치에 의한 프린터의 이용을 지원하기 위한 프린터 드라이버의 사용자 인터페이스 프로그램에 관한 것이다. 사용자 인터페이스 프로그램은 운영 시스템에 의해 호출되는초기화 부분을 포함하고 있고, 이 초기화 부분는 운영 시스템의 시스템 레지스트리에서 드라이버 플러그인 식별자를 검출하고, 이 드라이버 플러그인 식별자에 대응하는 드라이버 플러그인 프로그램을 메모리에 액세스 및 로드하며, 드라이버 플러그인 프로그램 내의 정보 기능 호출에 대한 드라이버 플러그인 프로그램으로부터 포인터를 획득하고, 드라이버 플러그인 프로그램으로부터 정보를 수신하기 위해 정보 기능 호출을 실행하며, 수신된 정보를 로컬 데이터 구조에 저장하며, 운영 시스템 기능 호출을 이용하여 수신된 정보의 일부를 운영 시스템에 전달한다. 또한, 사용자 인터페이스 프로그램은 수신된 정보에 제공된 기능 포인터를 이용하여 드라이버 플러그인 프로그램의 기능 부분를 액세스하여 실행하는 운영 부분를 포함하고 있으며, 프린터에 의해 수행되는 프린트 작업에 대응하는 이벤트 통지들을 운영 시스템으로부터 수신하고, 드라이버 플러그인 프로그램이 이벤트 통지를 수용한다고 수신 정보에 제공된 이벤트 요구 지시기가 나타내는 경우에는 이벤트 통지를 드라이버 플러그인 프로그램에 전달한다.According to another aspect, the invention relates to a user interface program of a printer driver for supporting the use of a printer by a computing device running an operating system. The user interface program includes an initialization portion called by the operating system, which detects the driver plug-in identifier in the operating system's system registry, accesses and loads the driver plug-in program corresponding to this driver plug-in identifier in memory, Obtains a pointer from the driver plug-in program to the information function call in the driver plug-in program, executes the information function call to receive information from the driver plug-in program, stores the received information in a local data structure, and calls the operating system function. Using a part of the received information is delivered to the operating system. In addition, the user interface program includes an operation portion for accessing and executing a function portion of the driver plug-in program using the function pointer provided in the received information, and receiving event notifications corresponding to print jobs performed by the printer from the operating system. If the event request indicator provided in the reception information indicates that the driver plug-in program accepts the event notification, the event plug-in is delivered to the driver plug-in program.
드라이버 플러그인 프로그램으로부터 얻어진 정보는 디스플레이를 위한 대화 특성 시트의 속성과, 프린트 작업 관리와 같은 특정 기능 또는 다른 기능을 구현하기 위한 드라이버 플러그인 프로그램에서 실행가능한 코드의 포인터를 포함하는 것이 바람직하다. 또한, 이벤트 요구 지시기는 어느 타입의 이벤트 통지가 드라이버 플러그인 프로그램에 전달될 것인지를 정의하는 것이 바람직하다.The information obtained from the driver plug-in program preferably includes an attribute of a dialog property sheet for display and a pointer of code executable in the driver plug-in program for implementing a specific or other function such as print job management. The event request indicator also preferably defines which type of event notification is to be delivered to the driver plug-in program.
이로 인해, 장치 드라이버의 기능은 장치 드라이버에 의해 컴퓨팅 장치에서 검출된 드라이버 플러그인 프로그램의 수와 타입에 기초하여 동적으로 확장될 수있으므로, 각각의 검출된 드라이버 플러그인 프로그램의 기능은 장치 드라이버의 재설계, 리컴파일, 및 재테스트없이 장치 드라이버에 의해 액세스 및 이용된다.Because of this, the function of the device driver can be dynamically expanded based on the number and type of driver plug-in programs detected by the device driver on the computing device, so that the function of each detected driver plug-in program can be redesigned, Accessed and used by device drivers without recompilation and retesting.
또 다른 양상에 따르면, 드라이버 플러그인 프로그램은 장치 드라이버의 장치 드라이버 프로그램에 의한 사용을 위해 제공되며, 이 장치 드라이버는 운영 시스템을 실행하는 컴퓨팅 장치에 의한 외부 장치의 사용을 지원하기 위한 것이다. 드라이버 플러그인 프로그램은 기능적 응용을 지원하는 실행가능 코드를 갖는 기능 부분와, 드라이버 플러그인 프로그램에 의해 지원되는 기능성에 대응하는 자원 정보를 포함하는 자원 부분, 및 정보 기능 호출의 정보 포인터를 포함하고 있다. 정보 포인터는 자원 부분의 자원 정보에 대응하는 자원 포인터 및 기능 부분의 실행 가능 코드에 대응하는 기능 포인터를 장치 드라이버 프로그램에 반송하는 정보 기능 호출을 개시하기 위해 장치 드라이버 프로그램에 의해 액세스된다.According to another aspect, a driver plug-in program is provided for use by a device driver program of a device driver, which device driver is to support the use of an external device by a computing device running an operating system. The driver plug-in program includes a functional part having executable code supporting a functional application, a resource part including resource information corresponding to the functionality supported by the driver plug-in program, and an information pointer of an information function call. The information pointer is accessed by the device driver program to initiate an information function call that carries the resource pointer corresponding to the resource information of the resource portion and the function pointer corresponding to the executable code of the functional portion to the device driver program.
자원 정보는 자원 포인터를 이용함으로써 액세스되고, 드라이버 플러그인 프로그램에 의해 지원되는 다수의 대화 특성 시트와, 드라이버 플러그인 프로그램에 의해 지원되는 각각의 대화 특성 시트의 타입, 및 드라이버 플러그인 프로그램에 의해 지원되는 각각의 대화 특성 시트의 속성을 포함하는 것이 바람직하다. 또한, 자원 부분는 이벤트 핸들러(handler)의 이벤트 포인터를 포함하는 것이 바람직하며, 이벤트 포인터는 정보 기능 호출을 통해 장치 드라이버 프로그램에 전달되고, 이로써 이벤트 포인터는 장치 드라이버 프로그램에 의해 수신된 이벤트 통지를 운영 시스템으로부터 드라이버 플러그인 프로그램에 전달하기 위해 이벤트 핸들러를 개시시키는 장치 드라이버 프로그램에 의해 사용된다. 장치 드라이버 프로그램과드라이버 플러그인 프로그램은 각각 dll(dynamic link library) 파일로 이루어지는 것이 바람직하다.Resource information is accessed by using resource pointers, and includes a number of conversation property sheets supported by the driver plug-in program, types of respective conversation property sheets supported by the driver plug-in program, and each supported by the driver plug-in program. It is preferable to include the properties of the dialog property sheet. In addition, the resource portion preferably includes an event pointer of an event handler, where the event pointer is passed to the device driver program through an information function call, whereby the event pointer receives the event notification received by the device driver program. Used by the device driver program to initiate an event handler for passing from to a driver plug-in program. It is preferable that the device driver program and the driver plug-in program each consist of a dynamic link library (dll) file.
이로 인해, 장치 드라이버의 기능은 장치 드라이버에 의한 컴퓨팅 장치에서의 검출을 위해 등록된 드라이버 플러그인 프로그램의 수와 타입에 기초하여 동적으로 확장될 수 있으므로, 각각의 검출된 드라이버 플러그인 프로그램의 기능은 장치 드라이버의 재설계, 리컴파일(recompile), 및 재테스트없이 장치 드라이버에 의해 액세스되어 이용된다.Because of this, the function of the device driver can be dynamically extended based on the number and type of driver plug-in programs registered for detection on the computing device by the device driver, so that the function of each detected driver plug-in program is determined by the device driver. It is accessed and used by device drivers without redesigning, recompiling, and retesting.
또 다른 실시예에 있어서, 본 발명은 컴퓨팅 장치에 의한 외부 장치의 사용을 지원하는 장치 드라이버의 장치 드라이버 프로그램에 의한 사용을 위해 드라이버 플러그인 프로그램을 등록하는 방법에 관한 것이다. 이 방법은 외부 소스에 위치한 적어도 하나의 이용가능 드라이버 플러그인 프로그램을 식별하고, 컴퓨팅 장치상의 설치를 위해 적어도 하나의 이용가능 드라이버 플러그인 프로그램을 선택하며, 컴퓨팅 장치상의 메모리에 각각의 선택된 드라이버 플러그인 프로그램을 저장함으로써 컴퓨팅 장치에 각각의 선택된 드라이버 플러그인 프로그램을 설치하며, 각각의 선택된 드라이버 플러그인 프로그램에 대응하는 식별자를 컴퓨팅 장치상에서 실행중인 운영 시스템의 시스템 레지스트리에 입력하는 단계를 포함한다.In yet another embodiment, the present invention relates to a method for registering a driver plug-in program for use by a device driver program of a device driver that supports use of an external device by a computing device. The method identifies at least one available driver plug-in program located at an external source, selects at least one available driver plug-in program for installation on the computing device, and stores each selected driver plug-in program in memory on the computing device. Thereby installing each selected driver plug-in program on the computing device, and entering an identifier corresponding to each selected driver plug-in program into a system registry of an operating system running on the computing device.
본 발명의 방법은 장치 드라이버의 개발자에 의해 제공되는 설치 프로그램 또는 web 이나 CD-ROM 등의 또 다른 소스로부터 제공되는 설치 프로그램으로부터 얻어진 설치 스크립트(installation script)에 의해 수행되는 것이 바람직하다. 또한, 각각의 선택된 드라이버 플러그인 프로그램에 대응하는 식별자는 외부 장치의 명칭에 대응하는 시스템 레지스트리 위치에 입력되는 것이 바람직하다.The method of the present invention is preferably performed by an installation script provided by the developer of the device driver or an installation script obtained from an installation program provided by another source such as web or CD-ROM. In addition, the identifier corresponding to each selected driver plug-in program is preferably entered in a system registry location corresponding to the name of the external device.
이로 인해, 드라이버 플러그인 프로그램은 프린터 설치시 혹은 그 이후에 용이하게 액세스되어 등록될 수 있다. 따라서, 장치 드라이버 프로그램의 기능은 장치 드라이버에 의한 컴퓨팅 장치에서의 검출을 위해 등록된 드라이버 플러그인 프로그램의 수와 타입에 기초하여 동적으로 확장될 수 있으므로, 각각의 검출된 드라이버 플러그인 프로그램의 기능은 장치 드라이버의 재설계, 리컴파일, 및 재테스트없이 장치 드라이버에 의해 액세스되어 이용된다.For this reason, the driver plug-in program can be easily accessed and registered at the time of printer installation or later. Thus, the function of the device driver program can be dynamically extended based on the number and type of driver plug-in programs registered for detection in the computing device by the device driver, so that the function of each detected driver plug-in program is the device driver. It is accessed and used by device drivers without redesign, recompile, and retest.
본 발명의 또 다른 실시예에 있어서, 프린터상의 프린트 작업을 수행하기 위한 방법이 제시되며, 프린트 작업은 컴퓨팅 장치에 의해 프린터에 전송된다. 이 방법은, 컴퓨팅 장치에서의 운영 시스템의 실행에 의해, 컴퓨팅 장치의 디스플레이상에 주 프린터 대화 특성 시트를 디스플레이하기 위한 제1 사용자 입력 요구를 수신하고, 운영 시스템에 의해 프린터에 대응하는 프린터 드라이버의 사용자 인터페이스 프로그램의 실행을 개시하며, 사용자 인터페이스 프로그램에 의해 드라이버 플러그인 프로그램에 대응하는 시스템 레지스트리에서 식별자를 검색하며, 사용자 인터페이스 프로그램에 의해 드라이버 플러그인 프로그램으로부터 탭된 대화 특성 시트 정보와 기능 포인터를 획득하고, 탭된 대화 특성 시트 정보와 주 대화 특성 시트 정보를 사용자 인터페이스 프로그램으로부터 운영 시스템에 전달하는 것을 포함하고 있다.In yet another embodiment of the present invention, a method for performing a print job on a printer is provided, wherein the print job is sent to the printer by the computing device. The method receives, by execution of an operating system on a computing device, a first user input request for displaying a primary printer conversational feature sheet on a display of the computing device, and by the operating system for a printer driver corresponding to the printer. Initiates execution of the user interface program, retrieves an identifier from the system registry corresponding to the driver plug-in program by the user interface program, obtains tapped interactive property sheet information and a function pointer from the driver plug-in program by the user interface program, It includes passing the conversation property sheet information and the main conversation property sheet information from the user interface program to the operating system.
본 발명은, 또한 운영 시스템에 의해, 디스플레이 상의 주 프린터 대화 특성 시트 - 이 주 대화 특성 시트는 드라이버 플러그인 프로그램으로부터 얻어진 탭된대화 특성 시트 정보에 대응하는 탭된 대화 특성 시트를 액세스 하기 위한 탭을 포함함 - 를 디스플레이하고, 운영 시스템에 의해 탭된 대화 특성 시트를 디스플레이하기 위한 제2 사용자 입력 요구를 수신하며, 운영 시스템에 의해 제2 사용자 입력 요구에 응답하여 탭된 대화 특성 시트를 디스플레이하는 것을 포함한다. 또한, 본 발명의 방법은, 운영 시스템에 의해 탭된 대화 특성 시트에 의해 지원되는 기능을 이용하기 위한 제3 사용자 입력 요구를 수신하고, 운영 시스템에 의해 사용자 인터페이스 프로그램에 제3 사용자 입력 요구를 전송하며, 사용자 인터페이스 프로그램에 의한 기능 포인터의 이용시, 사용자 입력 요구에 대응하는 기능을 구현하는 드라이버 플러그인 프로그램에서의 실행 가능 코드의 실행을 개시하며, 운영 시스템에 의해 프린터에 의한 이미지 데이터의 인쇄를 개시하기 위한 프린트 요구를 수신하고, 운영 시스템으로부터 프린트 요구를 수신하면 프린터 드라이버에 의해 이미지 데이터를 프린트 작업으로 렌더링하고 프린트 작업을 실행하게 되는 프린터에 프린트 작업을 전송하는 것을 포함한다. 최종적으로 본 발명의 방법은 프린트 작업에 관련된 프린트 이벤트 통지를 사용자 인터페이스 프로그램으로부터 드라이버 플러그인 프로그램에 전송하는 단계를 포함하며, 프린트 이벤트 통지는 드라이버 플러그인 프로그램내 실행가능 코드에 의해 이용된다.The present invention also provides, by the operating system, a main printer dialog property sheet on the display, the main dialog property sheet comprising a tab for accessing a tabbed dialog property sheet corresponding to the tabbed dialog property sheet information obtained from the driver plug-in program. And display, by the operating system, a second user input request for displaying the chat property sheet tapped by the operating system, and display the tapped chat property sheet in response to the second user input request. In addition, the method of the present invention receives a third user input request for utilizing a function supported by a conversation property sheet tapped by the operating system, and sends the third user input request to the user interface program by the operating system. And, upon use of the function pointer by the user interface program, initiate execution of executable code in a driver plug-in program that implements a function corresponding to a user input request, and initiates printing of image data by a printer by the operating system. Receiving the print request, and upon receiving the print request from the operating system, rendering the image data into the print job by the printer driver and sending the print job to the printer that will execute the print job. Finally, the method includes sending a print event notification related to a print job from a user interface program to a driver plug-in program, wherein the print event notification is used by executable code in the driver plug-in program.
탭된 대화 정보는 드라이버 플러그인 프로그램으로부터 밖으로 전달되는 포인터에 의해 액세스되는 정보 기능 호출을 이용하여 드라이버 플러그인 프로그램으로부터 얻어진다. 또한, 탭된 대화 정보는 디스플레이를 위한 대화 특성 시트들의 속성과, 프린트 작업 평가 등의 특정 기능 혹은 다른 기능을 구현하기 위해 드라이버 플러그인 프로그램 내에 실행가능한 코드의 포인터를 포함하는 것이 바람직하다. 드라이버 플러그인 프로그램으로부터 얻어진 정보는 사용자 인터페이스 프로그램에 의해 로컬 데이터 구조로 저장되는 것도 바람직하다. 마지막으로, 드라이버 플러그인 프로그램으로부터 얻어진 정보는 어떠한 타입의 이벤트 통지들이 드라이버 플러그인 프로그램에 전달되어야할지를 판정하는데 사용하기 위한 이벤트 요구 지시기를 포함하고 있다.The tapped conversation information is obtained from the driver plug-in program using an information function call accessed by a pointer passed out from the driver plug-in program. In addition, the tapped conversation information preferably includes attributes of the dialog property sheets for display and pointers of executable code within the driver plug-in program to implement specific or other functions, such as evaluating print jobs. The information obtained from the driver plug-in program is also preferably stored in a local data structure by the user interface program. Finally, the information obtained from the driver plug-in program includes an event request indicator for use in determining what type of event notifications should be delivered to the driver plug-in program.
이로 인해, 장치 드라이버의 기능은 장치 드라이버에 의해 컴퓨팅 장치에서 검출된 드라이버 플러그인 프로그램의 수와 타입에 기초하여 동적으로 확장될 수 있으므로, 각각의 검출된 드라이버 플러그인 프로그램의 기능은 장치 드라이버의 재설계, 리컴파일, 및 재테스트없이 장치 드라이버에 의해 액세스되어 이용된다.As such, the function of the device driver can be dynamically extended based on the number and type of driver plug-in programs detected by the device driver on the computing device, so that the function of each detected driver plug-in program can be redesigned, It is accessed and used by device drivers without recompilation and retesting.
이상의 간단한 개요는 본 발명의 성격을 신속히 이해할 수 있도록 하기 위한 것이며, 첨부 도면을 참조한 다음의 상세한 설명과 바람직한 실시예를 통해 본 발명을 보다 완전히 이해할 수 있을 것이다.The above brief summary is intended to provide a thorough understanding of the nature of the present invention, and the invention will be more fully understood from the following detailed description and preferred embodiments with reference to the accompanying drawings.
<실시예><Example>
본 발명은 프린터 등의 외부 장치의 사용을 지원하기 위해 컴퓨팅 장치에 이용되는 확장 가능한 장치 드라이버에 관한 것이다. 특히, 본 발명의 장치 드라이버는 컴퓨팅 장치의 기능적 능력을 확장하기 위해 컴퓨팅 장치상의 기존의 플러그인 모듈들을 검출하여 통합할 수 있다. 한 예로서, 본 발명에서는 장치 드라이버가 프린터의 사용을 지원하기 위한 프린터 드라이버인 일 실시예에 대해 논의된다. 본 발명은 디지털 복사기, 스캐너, 카메라 등의 기타 장치들을 지원하는 다른 장치드라이버들에 대해 구현될 수 있다.The present invention relates to scalable device drivers used in computing devices to support the use of external devices such as printers. In particular, the device driver of the present invention may detect and integrate existing plug-in modules on the computing device to extend the functional capabilities of the computing device. As one example, the present invention discusses one embodiment where the device driver is a printer driver to support the use of a printer. The present invention can be implemented for other device drivers that support other devices such as digital copiers, scanners, cameras, and the like.
도 1은 본 발명이 구현될 수도 있는 컴퓨팅 환경의 시스템도를 나타내고 있다. 도 1에 도시된 바와 같이, 컴퓨팅 환경은 컴퓨터(10), 프린터(20), 서버(30), 및 접속 통신로(1)를 구비한다. 접속 통신로(1)는 직렬, USB, FireWire 또는 기타 접속 통신로 등, 컴퓨터(10)와 프린터(20)간의 간단한 로컬 접속 통신로(1)가 될 수 있다. 또는, 접속 통신로(1)는 버스-타입 물리적 아키텍쳐로 이루어지는 이더넷 네트워크 매체 등의 네트워크일 수도 있다. 접속 통신로(1)는 인터넷을 포함한 또 다른 타입의 네트워크로 이루어질 수도 있다.1 illustrates a system diagram of a computing environment in which the present invention may be implemented. As shown in FIG. 1, the computing environment includes a computer 10, a printer 20, a server 30, and a connection communication path 1. The connection communication path 1 may be a simple local connection communication path 1 between the computer 10 and the printer 20, such as serial, USB, FireWire or other connection communication paths. Alternatively, the connection communication path 1 may be a network such as an Ethernet network medium composed of a bus-type physical architecture. The connection communication path 1 may be made up of another type of network including the Internet.
데스크탑 컴퓨터(10)는 Microsoft Windows 2000, Microsoft Windows ME 또는 Microsoft Windows XP 등의 윈도우 운영 시스템 환경을 갖는 통상적인 개인용 컴퓨터 혹은 워크스테이션이 바람직하다. PC 타입 컴퓨터의 경우, 통상, 데스크탑 컴퓨터(10)는 디스플레이(11), 키보드(15), 마우스(14), 호스트 프로세서(12), 고정 디스크(13), CD-ROM 드라이브(16) 및 플로피 드라이브 및/또는 기타 타입의 저장 매체(도시생략)를 구비하는 것이 바람직하다. 본 발명에 따른 컴퓨터(10)의 고정 디스크(13)의 컨텐츠는 아래에서 도 2를 참조하여 상세히 설명된다.Desktop computer 10 is preferably a conventional personal computer or workstation having a Windows operating system environment, such as Microsoft Windows 2000, Microsoft Windows ME, or Microsoft Windows XP. In the case of a PC type computer, the desktop computer 10 typically includes a display 11, a keyboard 15, a mouse 14, a host processor 12, a fixed disk 13, a CD-ROM drive 16 and a floppy. It is desirable to have a drive and / or other type of storage medium (not shown). The contents of the fixed disk 13 of the computer 10 according to the present invention are described in detail with reference to FIG. 2 below.
프린터(20, 25)는 접속 통신로(1)에 의해 컴퓨터(10)에도 접속되며, 수신된 프린트 데이터를 기초로 기록 매체상에 이미지들을 프린트할 수 있는 레이저 또는 잉크제트 프린터가 바람직하다. 예를 들어, 컴퓨터(10)는 아래에서 논의되는 바와 같이, 본 발명에 따른 프린터 드라이버를 실행시킴으로써 프린트 작업이 이루어지도록 한다. 프린터(20)는 컴퓨터(10)로부터, 및/또는 다른 소스들로부터 접속 통신로(1)를 통해 넘겨진 프린트 작업을 수용한 후 그 프린트 작업을 실행한다. 프린터(20)는 접속 통신로(1)를 통해 컴퓨터(10)와 양방향 통신을 하고, 프린터(20)에 의한 프린트 작업이 수행되는 동안 프린트 작업의 상태가 컴퓨터(10)에 다시 보고될 수 있도록 하는 것이 바람직하다. 프린터(25)는 전술한 바와 같은 프린터(20)와 유사한 방식으로 동작한다. 본 발명은 다른 타입의 컴퓨팅 장치에 구현될 수도 있으며, 도 1에 도시한 것과 같은 컴퓨터(10)에서의 구현에 국한되는 것은 아니다. 또한, 본 발명은 스캐너, 복사기, 디지털 카메라 등, 프린터 이외의 장치의 타입을 지원하는데 이용될 수 있다.The printers 20 and 25 are also connected to the computer 10 by the connection communication path 1, and a laser or ink jet printer capable of printing images on a recording medium based on the received print data is preferable. For example, the computer 10 allows a print job to be made by executing the printer driver according to the present invention, as discussed below. The printer 20 executes the print job after receiving the print job handed over from the computer 10 and / or from other sources through the connection communication path 1. The printer 20 communicates bidirectionally with the computer 10 through the connection communication path 1, so that the status of the print job can be reported back to the computer 10 while the print job by the printer 20 is being performed. It is desirable to. The printer 25 operates in a similar manner to the printer 20 as described above. The invention may be implemented in other types of computing devices, and is not limited to implementation in the computer 10 as shown in FIG. In addition, the present invention can be used to support types of devices other than printers such as scanners, copiers, digital cameras, and the like.
또한, 접속 통신로(1)는 버스-타입 물리적 아키텍쳐로 이루어지는 이더넷 네트워크 매체와 같은 네트워크 접속 통신로가 바람직하다. 서버(30)는 접속 통신로(1)에도 접속된다. 서버(30)는 Microsoft Windows 2000, Microsoft Windows ME, 혹은 Microsoft Windows XP 등의 윈도우 운영 시스템 환경을 갖는 PC 호환가능 컴퓨터를 포함하는 것이 바람직하다. 서버(30)는 수많은 파일, 애플리케이션, 데이터, 웹페이지, 및 이하에 논의되는 플러그인 모듈들을 저장하기 위해 대용량 고정 디스크인 고정 디스크(31)를 갖는 것이 바람직하다. 따라서, 서버(30)는 파일 서버, 웹 페이지 서버, 애플리케이션 서버 또는 다른 타입의 서버로서, 컴퓨터(10) 등 접속 통신로(1)상의 다른 장치에 의해 이용될 수 있다. 서버(30)는 인터넷 등의 다른 네트워크를 액세스하기 위해 접속 통신로(1)상의 다른 장치들을 위한 게이트웨이로서 동작할 수도 있다. 결국, 서버(30)는 다음에 상술하는 바와 같이, 플러그인 모듈들을 획득하고 설치하기 위해 컴퓨터(10)에 의한 액세스에 대해 웹 페이지를 지원하는 웹 서버로서 동작할 수도 있다.Further, the connection communication path 1 is preferably a network connection communication path such as an Ethernet network medium consisting of a bus-type physical architecture. The server 30 is also connected to the connection communication path 1. The server 30 preferably includes a PC compatible computer having a Windows operating system environment, such as Microsoft Windows 2000, Microsoft Windows ME, or Microsoft Windows XP. The server 30 preferably has a fixed disk 31, which is a large fixed disk for storing numerous files, applications, data, web pages, and plug-in modules discussed below. Thus, server 30 may be used by another device on connection communication path 1, such as computer 10, as a file server, web page server, application server, or other type of server. The server 30 may act as a gateway for other devices on the access communication path 1 to access other networks such as the Internet. As a result, server 30 may act as a web server that supports web pages for access by computer 10 to obtain and install plug-in modules, as described below.
도 2는 본 발명을 구현하기 위한 고정 디스크(13)의 컨텐츠를 포함한, 컴퓨터(10)의 내부 아키텍처를 설명하기 위한 블록도이다. 도 2에 도시된 바와 같이, 컴퓨터(10)의 내부 아키텍쳐는 고정 디스크(13), RAM(17), 및 프로세서(CPU;19)를 포함하고 있다. 통상적인 컴퓨터의 경우, 운영 시스템(40)은 CPU(19)에 의한 액세스 및 실행을 위해 RAM(19)에 원하는 프로그램의 실행 가능 코드를 로드한다. 컴퓨터(10)의 고정 디스크(13)는 운영 시스템(40), 프린터 드라이버(50) 및 저장 영역(60)을 포함하고 있다. 상술한 바와 같이, 운영 시스템(40)은 윈도우 운영 시스템이 바람직하며, 특히 운영 시스템(40)상에서 실행중인 애플리케이션들에 애플리케이션 프로그램 인터페이스를 제공하도록 기능 호출을 지원하는 Microsoft Windows 운영 시스템이 바람직하다. 특히, 기능 호출은 컴퓨터(10)의 디스플레이(11) 상의 특성 시트의 렌더링을 위해 특성 시트에 대응하는 속성 및 정보를 획득할 수 있는 운영 시스템(40)의 호출을 포함하는 것이 바람직하다. 또한, 운영 시스템(40)은 컴퓨터(10)상에서 실행 중인 애플리케이션에 외부 장치의 상태 정보를 제공하는 것을 지원하는 기능 호출을 포함하는 것도 바람직하다.2 is a block diagram illustrating the internal architecture of a computer 10, including the contents of a fixed disk 13 for implementing the present invention. As shown in FIG. 2, the internal architecture of the computer 10 includes a fixed disk 13, a RAM 17, and a processor (CPU) 19. In a typical computer, operating system 40 loads executable code of a desired program into RAM 19 for access and execution by CPU 19. The fixed disk 13 of the computer 10 includes an operating system 40, a printer driver 50, and a storage area 60. As noted above, the operating system 40 is preferably a Windows operating system, particularly a Microsoft Windows operating system that supports function calls to provide an application program interface to applications running on the operating system 40. In particular, the function call preferably includes a call of the operating system 40 capable of obtaining properties and information corresponding to the property sheet for rendering of the property sheet on the display 11 of the computer 10. In addition, the operating system 40 also preferably includes a function call to assist in providing status information of the external device to an application running on the computer 10.
레지스트리(41)는 고정 디스크(13)의 파일 폴더 또는 데이터베이스에 속할 수 있는 고정 디스크(13) 상의 정보 저장 위치이다. 레지스트리(41)는 운영 시스템(40)에 의해 유지 및 이용되고, 프린터, 스캐너, 복사기 등의 장치들을 지원하기 위해 운영 시스템에 필요한 정보를 포함하고 있다. 이 경우, 설명의 편의를 위해, 레지스트리(41)는 컴퓨터(10)의 운영 시스템(40)에 의해 지원되는, 프린터(20 및25)에 대응되는 데이터만을 포함하고 있는 것으로 도시한다. 특히, 레지스트리(41)는 본 발명을 구현하는 플러그인 식별자들을 포함하고 있으며, 운영 시스템(40)이 지원하는 프린터(20 및 25)에 각각 대응하는 2개의 칼럼을 도시하고 있다. 프린터1_id 42 및 프린터2_id 47은 각 프린터(20 및 25)에 대한 장치 식별자이며, 이들은 통상적으로 대응하는 프린터의 이름 및 코드로 구성된다. 예컨대, 프린터1_id 42는 프린터(20)의 "LASER1"을 나타내며, 프린터2_id 47은 프린터(25)의 "INKJET1"을 나타냄으로써, 운영 시스템(40)을 통해 컴퓨터(10)의 사용자가 이용할 수 있는 2개의 프린터를 식별한다.The registry 41 is a location for storing information on the fixed disk 13 which may belong to a file folder or a database of the fixed disk 13. The registry 41 is maintained and used by the operating system 40 and contains information needed by the operating system to support devices such as printers, scanners, copiers, and the like. In this case, for convenience of description, the registry 41 is shown to include only data corresponding to the printers 20 and 25 supported by the operating system 40 of the computer 10. In particular, the registry 41 contains plug-in identifiers that implement the present invention, and shows two columns corresponding to the printers 20 and 25 respectively supported by the operating system 40. Printer 1_id 42 and printer 2_id 47 are device identifiers for each of printers 20 and 25, which typically consist of the name and code of the corresponding printer. For example, the printer 1_id 42 represents "LASER1" of the printer 20, and the printer 2_id 47 represents "INKJET1" of the printer 25, so that the user of the computer 10 through the operating system 40 can use it. Identifies two printers.
프린터1_id 42 및 프린터2_id 47 하단의 각 칼럼에는, 기존의 장치 드라이버, 예컨대 프린터 드라이버(50)에 기능을 추가함으로써, 장치 드라이버를 수정, 리컴파일 및 테스트할 필요없이, 본 발명을 구현하기 위하여, 프린터 드라이버(50)용의 저장 영역(60) 내에 이용가능한 각 플러그인 모듈을 식별하는 플러그인 식별자들의 리스트가 제공된다. 바람직하기로는, 각 플러그인 식별자는 대응되는 플러그인 모듈용의 저장 영역(60)에서의 위치에 대한 어드레스이다. 다른 방법으로, 각 플러그인 식별자는 대응되는 플러그인 모듈에 대한 이름 또는 코드로 구성될 수도 있다.In each column at the bottom of the printer 1_id 42 and the printer 2_id 47, in order to implement the present invention without adding, modifying, recompiling, and testing the device driver by adding a function to an existing device driver, for example, the printer driver 50, A list of plug-in identifiers is provided that identifies each plug-in module available in storage area 60 for printer driver 50. Preferably, each plug-in identifier is an address for a location in storage area 60 for the corresponding plug-in module. Alternatively, each plug-in identifier may consist of a name or code for the corresponding plug-in module.
또한, 레지스트리(41)에 있어서, 프린터(20)에 대응하는 프린터1_id 42 하단의 칼럼에는 sec_plugin_id(42), rdr_plugin_id(44), inst_plugin_id(45) 및 act_plug_id(46)에 대한 플러그인 식별자가 포함되며, 이들은 저장 영역(60) 내에 위치하는 안전 프린트 플러그인 모듈(63), 작업 리다이렉트 플러그인 모듈(62), 설치 플러그인 모듈(61) 및 작업 어카운팅 플러그인 모듈(65)에 대응한다. 이와 같은 방식으로, 레지스트리(41)는 프린터 드라이버(50)가 그 기능을 확장하기 위하여 어떤 플러그인 모듈이 프린터 드라이버(50)에서 필요한지를 판단하는 것을 돕기 위하여, 각 프린터에 대한 플러그인 식별자를 유지하고 있다. 이와 관련하여, 레지스트리(41) 내의 각 플러그인 식별자는, 장치가 설치되는 때에 또는 설치된 후에, 컴퓨터(10)의 사용자 또는 시스템 관리자에 의해, 하기와 같은 방법에 따라서, 레지스트리(41)에서 특정 장치 식별자의 하위에 속하게 된다.In the registry 41, the column below the printer 1_id 42 corresponding to the printer 20 includes plug-in identifiers for sec_plugin_id 42, rdr_plugin_id 44, inst_plugin_id 45, and act_plug_id 46. These correspond to the safety print plug-in module 63, the job redirect plug-in module 62, the installation plug-in module 61, and the job accounting plug-in module 65 located in the storage area 60. In this way, the registry 41 maintains a plug-in identifier for each printer to help the printer driver 50 determine which plug-in module is needed in the printer driver 50 to extend its functionality. . In this regard, each plug-in identifier in the registry 41 is assigned to a specific device identifier in the registry 41 by the user or system administrator of the computer 10 at or after the device is installed, according to the following method. It belongs to the lower part of.
도 2에서 프린터 드라이버(20)는 컴퓨터(10)로 하여금 프린터(20)와 통신하여 그 이용을 가능하게 하는 운영 시스템(40)에 의한 실행을 위한 드라이버 모듈이다. 이와 유사한 프린터 드라이버(도시 생략)를 이용하여 프린터(25)와의 통신 및 그 이용을 가능하게 할 수도 있지만, 설명의 편의상 이에 대한 설명은 생략한다. 도 2에 도시된 바와 같이, 프린터 드라이버(50)는 user_interface_mod(51), graphics_render_mod(52) 및 other_mod(53)의 3개의 모듈로 구성된다. user_interface_mod(51)은 사용자가 프린터 드라이버(50)에 액세스하여 제어하도록 하기 위한 사용자 인터페이스를 제공하는데 이용된다. 예컨대, 본 발명의 실시예에서는, 이 장치 드라이버는 컴퓨터(10)에 의해 프린터(20)를 구동하기 위한 프린터 드라이버(50)이며, 따라서 user_interface_mod(51)은 사용자가 프린터 드라이버(50)의 특징을 액세스하여 제어하기 위하여 디스플레이(11) 상에 사용자 인터페이스를 표시하고자 하는 경우에 실행된다. 운영 시스템(40)과 같은 윈도우 운영 시스템에서는, 사용자가 대화 특성 시트를 표시시켜 프린터 드라이버 사용자인터페이스를 표시시키기 위하여, "프린터 특성"에 대응하는 버튼을 누르는 것이 일반적이며, 프린터 드라이버 사용자 인터페이스는 일반적으로 주 대화 특성 시트로 구성되며, 이 시트에는 다른 탭된 대화 특성 시트들을 액세스하기 위한 텝(tab)을 갖고 있으며, 또한 각 대화 특성 시트는 프린터 드라이버의 소정의 기능에 관한 버튼, 정보 및 대화를 제공한다.In FIG. 2, the printer driver 20 is a driver module for execution by the operating system 40 that allows the computer 10 to communicate with the printer 20 and enable its use. A similar printer driver (not shown) may be used to enable communication with the printer 25 and use thereof, but a description thereof will be omitted for convenience of description. As shown in Fig. 2, the printer driver 50 is composed of three modules: user_interface_mod (51), graphics_render_mod (52), and other_mod (53). user_interface_mod 51 is used to provide a user interface for the user to access and control the printer driver 50. For example, in the embodiment of the present invention, the device driver is a printer driver 50 for driving the printer 20 by the computer 10, so that user_interface_mod 51 allows the user to characterize the printer driver 50. It is executed when a user interface is to be displayed on the display 11 for access and control. In a Windows operating system, such as operating system 40, it is common for a user to press a button corresponding to "printer characteristics" in order to display a dialog property sheet to display a printer driver user interface, and the printer driver user interface is generally Consists of a main dialog property sheet, which has tabs for accessing other tabbed dialog property sheets, each of which provides buttons, information, and dialogs relating to certain functions of the printer driver. .
전술한 바와 같이, 본 발명은 장치 드라이버의 기능을 확장하기 위하여 장치 드라이버에의 액세스 및 결합을 위한 플러그인 모듈을 제공한다. 전술한 실시예에 있어서, 플러그인 모듈은 프린터 드라이버(50)에 예컨대 작업 어카운팅, 안전 프린팅 등의 새로운 기능을 추가시키는데 이용된다. 또한, 플러그인 모듈은, user_interface_mod(51)에 의한 액세스에 의해 프린터 드라이버의 사용자 인터페이스에 결합되어 디스플레이(11) 상에 표시시키기 위한, 새로운 기능에 대응하는 탭된 대화 특성 시트를 제공한다. user_interface_mod(51)의 조합 및 동작에 대해서 아래에서 상세히 설명한다. graphics_render_mod(52)는 프린터 드라이버(52)의 또 다른 구성요소로서, 주어진 이미지 데이터를 컴퓨터(10)의 사용자가 원하는 설정에 따라서 프린트 작업으로 처리하는데 이용된다. other_mod(53)는 프린터 드라이버(50)를 구현하는데 이용되는 다른 모듈을 나타낸다. 이와 관련하여, graphics_render_mod(52) 및 other_mod(53)도 플러그인 모듈에의 액세스 및 결합에 의해 그 기능을 확장할 수 있지만, 설명의 편의를 위하여, 플러그인 모듈의 이용에 대해서는 user_interface_mod(51)에 관해서 상세히 설명하기로 한다. 바람직하기로는, 프린터 드라이버(50)의 전술한 모듈들은 동적 링크 라이브러리 파일이다.As noted above, the present invention provides a plug-in module for accessing and combining device drivers to extend the functionality of the device driver. In the above embodiment, the plug-in module is used to add new functions, such as job accounting, safety printing, to the printer driver 50. The plug-in module also provides a tabbed interactive property sheet corresponding to the new function for coupling to the printer driver's user interface and displaying on the display 11 by access by the user_interface_mod 51. The combination and operation of the user_interface_mod 51 will be described in detail below. graphics_render_mod 52 is another component of the printer driver 52, which is used to process given image data into a print job according to the settings desired by the user of the computer 10. other_mod 53 represents another module used to implement the printer driver 50. In this regard, graphics_render_mod (52) and other_mod (53) can also extend their functionality by accessing and combining plug-in modules, but for convenience of explanation, the use of plug-in modules is described in detail with respect to user_interface_mod (51). Let's explain. Preferably, the aforementioned modules of the printer driver 50 are dynamic link library files.
저장 영역(60)은 본 발명에 따라서 컴퓨터를 동작시키고 프린터 드라이버(50)를 이용하기 위하여 운영 시스템(40) 및 프린터 드라이버(50) 양자에 의해 이용되는 고정 디스크(13) 영역이다. 도 2에 도시된 바와 같이, 저장 영역(60)은 설치 플러그인 모듈(61), 작업 리다이렉트 플러그인 모듈(62), 안전 프린트 플러그인 모듈(63), 정책 관리 플러그인 모듈(64), 작업 어카운팅 플러그인 모듈(65) 및 특징 모드 플러그인 모듈(66)을 포함한다. 레지스트리(41)와 관련하여 전술한 바와 같이, 이들 플러그인 모듈은 프린터 드라이버(50)와 같은 장치 드라이버의 기능을 확장하기 위하여 액세스하는데 이용된다. 예컨대, 설치 플러그인 모듈은 컴퓨터(10)에 의해 사용될 새로운 프린터의 설치를 위한 기능을 제공하며, 작업 리다이렉트 플러그인 모듈(62)은 하나의 프린터로부터 다른 프린터로 프린트 작업을 리다이렉트하는 기능을 제공하며, 안전 프린트 플러그인 모듈(63)은 프린트 작업이 프린터에 전달되고 안전하게 프린트되었음을 확인하는 기능을 제공하며, 정책 관리 플러그인 모듈(64)은 프린터로의 액세스 및 프린터의 기능을 관리하는 기능을 제공하며, 작업 어카운팅 플러그인 모듈(65)은 프린터에 전달된 프린트 작업의 트랙킹 및 리포팅에 관한 기능을 제공하며, 특징 모드 플러그인 모듈(66)은 용지 트레이 또는 스테이플러와 같은 마감(finishing) 장치 등, 프린터에 추가된 새로운 하드웨어를 지원하는 기능을 제공한다. 물론, 도 2에 도시된 저장 영역(60) 내에 도시된 플러그인 모듈의 타입은 프린터를 지원하기 위해 프린터 드라이버에 의해 사용되는 기능들의 예시이며, 이는 스캐너, 복사기, 디지털 카메라 등의 기타 장치뿐만 아니라 프린터 드라이버에 대한 플러그인 모듈에 의해 구현될 수 있는 기능들의 타입 리스트를 이에 한정시키기 위한 것으로 이해되어서는 안된다. 바람직하기로는, 이들 플러그인 모듈들은 동적 링크 라이브러리 파일이다.Storage area 60 is a fixed disk 13 area used by both operating system 40 and printer driver 50 to operate a computer and use printer driver 50 in accordance with the present invention. As shown in FIG. 2, the storage area 60 includes an installation plug-in module 61, a job redirect plug-in module 62, a safety print plug-in module 63, a policy management plug-in module 64, and a job accounting plug-in module ( 65 and feature mode plug-in module 66. As discussed above in connection with the registry 41, these plug-in modules are used to access and expand the functionality of device drivers, such as the printer driver 50. For example, the installation plug-in module provides a function for installation of a new printer to be used by the computer 10, and the job redirect plug-in module 62 provides a function to redirect print jobs from one printer to another printer, The print plug-in module 63 provides a function for confirming that a print job has been delivered to the printer and printed securely. The policy management plug-in module 64 provides a function for managing access to the printer and the functions of the printer. The plug-in module 65 provides functions for tracking and reporting of print jobs delivered to the printer, and the feature mode plug-in module 66 is new hardware added to the printer, such as a finishing device such as a paper tray or a stapler. Provides a function to support it. Of course, the type of plug-in module shown in the storage area 60 shown in FIG. 2 is an example of the functions used by the printer driver to support the printer, which may be printers as well as other devices such as scanners, copiers, digital cameras, etc. It should not be understood as limiting the list of types of functions that can be implemented by the plug-in module for the driver to this. Preferably, these plug-in modules are dynamic link library files.
다시 도 2를 참조하면, 저장 영역(60)은 또한 기타 모듈(67), 기타 파일(69), 웹 브라우저(70), 시스템 폴더(71), 데이터베이스, 로컬 데이터 구조(73) 및 등록 애플리케이션(74)을 포함한다. 기타 모듈(67) 및 기타 파일(69)은 운영 시스템(40) 에 의한 컴퓨터(10)의 조작을 위해서 이용될 뿐만 아니라 컴퓨터(10)의 CPU(19)에 의해 실행되는 기타 애플리케이션에 의해서도 이용된다. 웹 브라우저(70)는 컴퓨터(10)의 사용자로 하여금 접속 통신로(1)를 통하여 서버(30) 등의 웹 서버의 웹 페이지를 액세스할 수 있도록 하기 위하여 CPU(19)에 의해 실행된다. 시스템 폴더는 운영 시스템(40) 및 CPU(19)에 의해 실행되는 기타 애플리케이션에 의해 사용되는 파일 및 애플리케이션을 기억하고 있는 관리 위치이다. 마찬가지로, 데이터베이스(72)는 운영 시스템(40) 및 CPU(19)에 의해 실행되는 기타 애플리케이션에 의해 액세스 및 이용될 수 있는 정보를 저장하는데 이용된다. 로컬 데이터 구조(73)는 user_interface_mod(51)에 의해 이용되는 데이터 구조의 세트로서, 이에 대해서는 아래에서 상세히 설명한다. 마지막으로, 등록 애플리케이션(74)은 바람직하기로는 플러그인 모듈을 레지스트리(41)에 식별하여 설치하는데 이용되는 명령 스크립트로 구성되는 애플리케이션으로서, 이에 대해서는 아래에서 상세히 설명한다.Referring back to FIG. 2, storage area 60 also includes other modules 67, other files 69, web browsers 70, system folders 71, databases, local data structures 73, and registered applications ( 74). The other modules 67 and other files 69 are used not only for the operation of the computer 10 by the operating system 40 but also by other applications executed by the CPU 19 of the computer 10. . The web browser 70 is executed by the CPU 19 to allow a user of the computer 10 to access a web page of a web server such as the server 30 through the connection communication path 1. The system folder is a management location that stores files and applications used by the operating system 40 and other applications executed by the CPU 19. Similarly, database 72 is used to store information that can be accessed and used by operating system 40 and other applications executed by CPU 19. The local data structure 73 is a set of data structures used by the user_interface_mod 51, which will be described in detail below. Finally, the registration application 74 is preferably an application consisting of a command script used to identify and install a plug-in module in the registry 41, which will be described in detail below.
도 3은 도 2에 도시한 프린터 드라이버(50)의 user_interface_mod(51)의 조합을 설명하기 위한 블록도이다. 도 3에 도시된 바와 같이,user_interface_mod(51)은 초기화 부분(80) 및 운영 부분(90)으로 구성된다. 초기화 부분(80)은 프린터 드라이버(50)에 대한 사용자 인터페이스를 표시하라는 사용자의 요청에 응답하여 user_interface_mod(51)을 초기화하는데 이용된다. 예컨대, 사용자가 프린터(20)에 대응하는 "프린터 특성" 버튼을 디스플레이(11) 상에서 선택하는 경우, 운영 시스템(40)은, 그 프린터 드라이버의 사용자 인터페이스를 초기화하여 필요한 대화 특성 시트 정보를 표시를 위해 운영 시스템(40)으로 전달하기 위하여, user_interface_mod(51)의 초기화 부분(80)의 실행을 초기화한다. 초기화 부분(80)은 플러그인 검색 기능(81), 플러그인 정보 기능(82), 대화 구조 기능(83) 및 정적 대화 특성 시트 속성(84)을 포함한다.FIG. 3 is a block diagram for explaining a combination of user_interface_mod 51 of the printer driver 50 shown in FIG. As shown in FIG. 3, user_interface_mod 51 is composed of an initialization portion 80 and an operation portion 90. The initialization portion 80 is used to initialize user_interface_mod 51 in response to a user's request to display a user interface to the printer driver 50. For example, when the user selects a "printer personality" button corresponding to the printer 20 on the display 11, the operating system 40 initializes the user interface of the printer driver to display the necessary interactive property sheet information. In order to transfer the data to the operating system 40, the initialization of the initialization portion 80 of the user_interface_mod 51 is initiated. The initialization portion 80 includes a plug-in search function 81, a plug-in information function 82, a conversation structure function 83, and a static conversation property sheet attribute 84.
플러그인 검색 기능(81)은 레지스터 등 미리 결정된 위치에서 프린터(20)에 대응하는 등록된 플러그인 모듈을 검색한다. 물론, 시스템 디렉토리 폴더 또는 데이터베이스 등 다른 위치를 플러그인 검색 기능(81)에 의한 액세스를 위한 플러그인 모듈을 기억하고 있는 미리 결정된 위치로 이용할 수도 있다. 플러그인 정보 기능(82)은 플러그인 검색 기능(81)에 의해 검출된 임의의 플러그인 모듈에 대응하는 정보를 획득하여, 검출된 플러그인 모듈들로부터 user_interface_mod(51)에 의해 이용될 수 있는 플러그인 모듈을 선택한다. 플러그인 정보 기능(82)은 선택된 플러그인 모듈에 대해 획득된 각각의 정보를 로컬 데이터 구조 내에 저장한다. 대화 구조 기능(83)은, 선택된 플러그인 모듈에 의해 지원되는 각각의 탭된 대화 특성 시트에 대해 획득된 정보 및 속성뿐만 아니라, user_interface_mod(51)에 의해 지원되는 각각의 정적 대화 특성 시트에 대해 획득된 정보 및 속성을, 운영시스템(40)으로 전달하는데 이용된다. 운영 시스템(40)이 각각의 대화 특성 시트에 대한 정보 및 속성들을 수신하게 되면, 운영 시스템(40)은 컴퓨터(10)의 디스플레이(11) 상에 처리된 대화 특성 시트를 표시시킨다. 이와 관련하여, 정적 대화 특성 시트 속성(84)은 user_interface_mod(51)에 의해 지원되는 각각의 정적 대화 특성 시트의 정보 및 속성을 포함하고 있다.The plug-in retrieval function 81 retrieves the registered plug-in module corresponding to the printer 20 at a predetermined position such as a register. Of course, other locations such as a system directory folder or a database may be used as a predetermined location that stores the plug-in module for access by the plug-in search function 81. The plug-in information function 82 obtains information corresponding to any plug-in module detected by the plug-in search function 81 and selects a plug-in module that can be used by the user_interface_mod 51 from the detected plug-in modules. . The plug-in information function 82 stores each information obtained for the selected plug-in module in a local data structure. The conversation structure function 83 obtains information and attributes obtained for each tabbed conversation property sheet supported by the selected plug-in module, as well as information obtained for each static conversation property sheet supported by the user_interface_mod 51. And attributes are passed to operating system 40. When operating system 40 receives information and attributes for each conversation property sheet, operating system 40 displays the processed conversation property sheet on display 11 of computer 10. In this regard, the static conversation property sheet property 84 includes information and properties of each static conversation property sheet supported by user_interface_mod 51.
user_interface_mod(51)의 운영 부분(90)은 정적 대화 특성 시트 지원 코드(91), 정적 기능 코드(92), 플러그인 기능 액세스 코드(93) 및 플러그인 이벤트 코드(94)로 구성된다. 운영 부분(90)은 초기화 부분(80)의 완료 후에 실행되는 것으로, 정적 대화 특성 시트를 지원하고, 선택된 플러그인 모듈에 의해 지원되는 각각의 탭된 대화 특성 시트를 지원하기 위한 대응하는 플러그인 모듈을 액세스하고, 필요한 경우 적절한 플러그인 모듈에 대해 이벤트 정보를 전달하는데 이용된다. 정적 대화 특성 시트 지원 코드(91)는 각각의 정적 대화 특성 시트에서의 설정 및 버튼에 대한 사용자 수정을 모니터하고, 그 정적 대화 특성 시트를 대응하는 방식으로 갱신하고, 수정된 설정을 정적 기능 코드(92) 및 필요한 경우 graphics_render_mod(52) 등 프린터 드라이버(50)의 기타 부분에 전달하여 사용자의 수정을 구현함으로써, 정적 대화 특성 시트를 지원하기 위한 대화 프로세스를 제공한다. 예컨대, 사용자는 디스플레이된 프린터 드라이버 사용자 인터페이스의 주 대화 특성 시트 중에서 하나의 버튼을 이용하여, 컬러 프린팅 대신에 흑백 프린팅을 선택할 수도 있다. 정적 대화 특성 시트 지원 코드(91)는 이 사용자 선택을 graphics_render_mod(52)에 전달하여, 그 이미지 데이터가 프린터(20)에 의한 프린팅의 프린트 작업에 있어서 흑백으로 처리되도록 할 것이다. 정적 기능 코드(92)는 프린터(20)와의 통신 상태를 모니터하거나 프린터(20)에 의해 수행되는 프린트 작업의 상태를 모니터하는 등, user_interface_mod(51)의 기타 정적 기능을 처리하는데 이용된다.The operating portion 90 of user_interface_mod 51 is composed of static conversation property sheet support code 91, static function code 92, plug-in function access code 93, and plug-in event code 94. The operating portion 90 is executed after completion of the initialization portion 80, and supports a static dialog property sheet, accesses a corresponding plug-in module for supporting each tabbed dialog property sheet supported by the selected plug-in module. If necessary, it is used to convey event information for the appropriate plug-in module. The static conversation property sheet support code 91 monitors user modifications to the settings and buttons in each static conversation property sheet, updates the static conversation property sheet in a corresponding manner, and updates the modified settings in the static function code ( 92) and, if necessary, passed to other parts of the printer driver 50, such as graphics_render_mod 52, to implement the user's modifications, thereby providing a conversation process for supporting static conversation property sheets. For example, the user may select monochrome printing instead of color printing, using one button in the main dialog properties sheet of the displayed printer driver user interface. The static interactive property sheet support code 91 will pass this user selection to graphics_render_mod 52 so that the image data will be processed in black and white in the print job of printing by the printer 20. The static function code 92 is used to handle other static functions of the user_interface_mod 51, such as monitoring the status of communication with the printer 20 or monitoring the status of print jobs performed by the printer 20.
플러그인 기능 액세스 코드(93)는 대응하는 선택된 플러그인 모듈에 의해 제공된 탭된 대화 특성 시트를 지원하고, 캐시 선택 플러그인 모듈에 의해 지원되는 기능, 예컨대 작업 어카운팅, 정책 관리 등을 구현하기 위하여, 각각의 선택된 플러그인의 기능 코드를 액세스하는데 이용된다. 플러그인 이벤트 코드(94)는 프린터(20)에 대응하는 운영 시스템(40)으로부터 이벤트 통지를 수신하여, 수신된 이벤트 통지가 선택된 플러그인 모듈로부터 호출되었는지의 여부를 판단하여, 그 이벤트 통지를 그 목적의 적절한 선택 플러그인 모듈에 전달한다.The plug-in function access code 93 supports the tabbed conversation property sheet provided by the corresponding selected plug-in module, and each selected plug-in to implement the functions supported by the cache selection plug-in module, such as job accounting, policy management, and the like. It is used to access the function code of. The plug-in event code 94 receives an event notification from the operating system 40 corresponding to the printer 20, determines whether the received event notification has been called from the selected plug-in module, and sends the event notification to the purpose. Pass it to the appropriate optional plug-in module.
도 4는 본 발명의 일 실시예에 따른 플러그인 모듈의 조합을 설명하기 위한 블록도이다. 플러그인 모듈의 조합을 일반적으로 설명하기 위하여, 도 4에서는 작업 어카운팅 플러그인 모듈(65)을 예로써 설명한다. 도 4에 도시된 바와 같이, 작업 어카운팅 플러그인 모듈(65)은 자원 부분(100) 및 기능 부분(130)을 포함한다. 통상적으로, 자원 부분(100)은 user_interface_mod(51)이 탭된 대화 특성 시트 정보 및 작업 어카운팅 플러그인 모듈(65)에 의해 지원되는 기능을 액세스 및 구현할 수 있도록 하는 정보 및 기능을 제공한다. 기능 부분(130)은 일반적으로 자원 부분(100)에서 설명한 탭된 대화 특성 시트를 지원하는 기능 코드를 제공하며, 주어진 프린터에 전달된 프린트 작업의 수 및 타입을 트랙킹하여 리포트하는 작업 어카운팅 플러그인 모듈(65)의 기능을 제공한다.4 is a block diagram illustrating a combination of a plug-in module according to an embodiment of the present invention. In order to generally describe the combination of plug-in modules, the job accounting plug-in module 65 is described as an example in FIG. 4. As shown in FIG. 4, task accounting plug-in module 65 includes a resource portion 100 and a functional portion 130. Typically, resource portion 100 provides information and functionality that enables user_interface_mod 51 to access and implement tapped conversation property sheet information and functionality supported by task accounting plug-in module 65. The function portion 130 generally provides function codes that support the tabbed conversation property sheet described in the resource portion 100, and the job accounting plug-in module 65 for tracking and reporting the number and type of print jobs delivered to a given printer. ) Function.
도 4에 도시된 바와 같이, 자원 부분은 인터페이스(101) 및 속성(110)을 포함한다. 인터페이스(101)는 user_interface_mod(51)이 탭된 대화 특성 시트 정보 및 작업 어카운팅 플러그인 모듈(65)에 의해 지원되는 기능을 액세스 및 구현할 수 있도록 하는 정보 및 기능을 제공한다. 인터페이스(101)는 플러그인 기능 타입(102), 정보 기능 포인터(103), 이벤트 핸들러 포인터(104), 자원 포인터(105), 기능 포인터(106), 정보 획득 기능(107) 및 이벤트 핸들러(108)를 포함한다. 플러그인 기능 타입(102)은 플러그인 모듈에 의해 지원되는 기능(이 경우에는 작업 어카운팅 기능임)의 타입에 대한 표시(바람직하기로는 텍스트 또는 코드임)를 제공한다. 정보 기능 포인터(103)는 정보 획득 기능(107)의 어드레스를 표현하는 포인터로서, 작업 어카운팅 플러그인 모듈(65)이 정보 기능 포인터(103)와 함께 user_interface_mod(51)을 제공하면, user_interface_mod(51)은 정보 기능 포인터(103)를 이용하여 정보 획득 기능(107)을 호출하여 작업 어카운팅 플러그인 모듈(65) 내에 포함되어 있는 정보를 액세스하게 된다.As shown in FIG. 4, the resource portion includes an interface 101 and an attribute 110. Interface 101 provides information and functionality that enables user_interface_mod 51 to access and implement tapped conversation property sheet information and functionality supported by task accounting plug-in module 65. The interface 101 is a plug-in function type 102, an information function pointer 103, an event handler pointer 104, a resource pointer 105, a function pointer 106, an information acquisition function 107, and an event handler 108. It includes. The plug-in function type 102 provides an indication (preferably text or code) of the type of function supported by the plug-in module, in this case the job accounting function. The information function pointer 103 is a pointer representing an address of the information acquisition function 107. When the job accounting plug-in module 65 provides the user_interface_mod 51 together with the information function pointer 103, the user_interface_mod 51 is The information function pointer 103 is used to call the information acquisition function 107 to access the information contained in the job accounting plug-in module 65.
이벤트 핸들러 포인터(104)는 이벤트 핸들러(108)의 어드레스에 대한 포인터로서, 작업 어카운팅 플러그인 모듈(65)에 의해 user_interface_mod(51)에 제공되어, user_interface_mod(51)이 이벤트 핸들러(108)를 호출하여 포인터(20)에 대한 이벤트의 통지를 작업 어카운팅 플러그인 모듈(65)에 제공하게 된다. 이와 관련하여, user_interface_mod(51)은, 정보 획득 기능(107)을 통하여 user_interface_mod(51)에 전달된 이벤트 핸들러(108)에 기초하여, 이벤트 통지가작업 어카운팅 플러그인 모듈(65)에 전달되어야 하는지를 판단한다. 다른 실시예에서는, 이벤트 핸들러(108)가 작업 어카운팅 플러그인 모듈(65)에 전달되어야 하는 이벤트 통지의 타입에 대한 기술어(descriptor)를 텍스트 또는 코드로 제공하도록 할 수도 있다. 예컨대, 작업 어카운팅 플러그인 모듈(65)의 작업 어카운팅 기능은 프린터(20)에 전달된 모든 프린트 작업의 정확한 어카운팅을 유지하기 위해, 프린트 작업의 성공 페이지의 수와 그 프린트 작업의 타입을 필요로 한다. 자원 포인터(105)는 속성(110)의 어드레스에 대한 포인터로서, 정보 획득 기능(107)을 통하여 user_interface_mod(51)에 제공되어, user_interface_mod(51)이 작업 어카운팅 플러그인 모듈(65)에 의해 지원되는 각각의 탭된 대화 특성 시트의 타입 및 속성을 액세스할 수 있도록 한다. 마찬가지로, 기능 포인터(106)는 속성(110)의 어드레스에 대한 포인터로서, 정보 획득 기능(107)을 통하여 user_interface_mod(51)에 제공되어, user_interface_mod(51)이 작업 어카운팅 플러그인 모듈(65)에 의해 지원되는 각각의 탭된 대화 특성 시트의 타입 및 속성을 액세스할 수 있도록 한다.The event handler pointer 104 is a pointer to the address of the event handler 108, which is provided to the user_interface_mod 51 by the task accounting plug-in module 65 so that the user_interface_mod 51 calls the event handler 108 to call the pointer. The notification of the event for 20 is provided to the task accounting plug-in module 65. In this regard, user_interface_mod 51 determines whether event notification should be delivered to task accounting plug-in module 65 based on event handler 108 passed to user_interface_mod 51 via information acquisition function 107. . In another embodiment, the event handler 108 may be provided with text or code to provide a descriptor for the type of event notification that should be delivered to the task accounting plug-in module 65. For example, the job accounting function of the job accounting plug-in module 65 requires the number of success pages of the print job and the type of the print job in order to maintain accurate accounting of all print jobs delivered to the printer 20. The resource pointer 105 is a pointer to the address of the attribute 110, which is provided to the user_interface_mod 51 via the information acquisition function 107, so that the user_interface_mod 51 is supported by the job accounting plug-in module 65. Allows access to the type and properties of the tabbed dialog property sheet in. Similarly, the function pointer 106 is a pointer to the address of the attribute 110, which is provided to the user_interface_mod 51 via the information acquisition function 107, so that the user_interface_mod 51 is supported by the job accounting plug-in module 65. Allows access to the type and properties of each tabbed dialog property sheet being created.
속성(110)은 자원 포인터(105)에 의해 액세스되며, 대화 특성 시트의 수(111) 및 특성 시트 속성(115)을 포함하고 있다. 대화 특성 시트의 수(111)는 작업 어카운팅 플러그인 모듈(65)에 의해 지원되는 대화 특성 시트의 수를 나타낸다. 특성 시트 속성(115)은 작업 어카운팅 플러그인 모듈(65)에 의해 지원되는 각각의 대화 특성 시트에 대한 칼럼을 포함하는 데이터 구조로서, 특성 시트 수(116), 타입(117) 및 속성(118)을 나타낸다. 이와 같이, 자원 포인터(105)가user_interface_mod(51)에 의해 획득되면, user_interface_mod(51)로부터 작업 어카운팅 플러그인 모듈(65)에 의해 지원되는 각각의 대화 특성 시트의 타입 및 속성을 획득하여, 탭된 특성 시트를 디스플레이(11) 상에 처리하기 위해 운영 시스템(40)에 전달된다. 타입(117)은 바람직하기로는 대화 특성 시트의 타입의 텍스트 또는 코드 표현이며, 예컨대 정적 특성 시트에 있어서는 "정보", 동적 특성 시트에 있어서는 사용자로 하여금 버튼 등을 이용하여 파라미터를 수정할 수 있도록 하는 "선택" 등이다. 속성(118)은 대화 특성 시트 레이아웃에 대한 설명 데이터, 버튼, 대화 특성 시트 상의 대화를 포함하며, 대화 특성 시트를 디스플레이(11) 상에 처리하기 위해 운영 시스템(40)에서 필요하게 되는 대화 특성 시트의 다른 양상들도 포함될 수 있다.The attribute 110 is accessed by the resource pointer 105 and includes the number 111 of the conversation property sheet and the property sheet property 115. Number 111 of conversation property sheets indicates the number of conversation property sheets supported by job accounting plug-in module 65. The property sheet property 115 is a data structure that includes columns for each conversation property sheet supported by the job accounting plug-in module 65. The property sheet property 115 includes a property sheet number 116, a type 117, and an attribute 118. Indicates. As such, when the resource pointer 105 is obtained by the user_interface_mod 51, the type and attribute of each interactive property sheet supported by the job accounting plug-in module 65 is obtained from the user_interface_mod 51, and the tabbed property sheet is obtained. Is delivered to operating system 40 for processing on display 11. The type 117 is preferably a text or code representation of the type of the dialog property sheet, for example "information" for a static property sheet, and "" for a user to modify a parameter using a button or the like in a dynamic property sheet. Choice ", and so on. The attribute 118 includes descriptive data about the dialog property sheet layout, buttons, and dialogs on the dialog property sheet, which are required by the operating system 40 to process the dialog property sheet on the display 11. Other aspects of may also be included.
기능 부분(130)은 기능 코드(131) 및 이벤트 상태 모니터 코드(132)를 포함한다. 기능 코드(131)는 기능 포인터(106)를 이용하여 user_interface_mod(51)에 의해 호출된 실행가능 코드로서, 정보 획득 기능(107)을 통하여 user_interface_mod(51)에 의해 획득된다. 기능 코드(131)는 작업 어카운팅 플러그인 모듈(65)의 기능을 구현하는 것으로서, 이 경우에는 프린트 작업 어카운팅이다. 이벤트 상태 모니터 코드(132)는 이벤트 핸들러(108)를 통하여 user_interface_mod(51)로부터 작업 어카운팅 플러그인 모듈(65)에 전달된 이벤트 통지의 수신을 처리한다. 이벤트 상태 모니터 코드(132)는 수신된 이벤트 통지를 기능 코드(131)에 전달하여 작업 어카운팅 플러그인 모듈(65)에 의해 지원되는 기능의 구현에 이용한다.The functional portion 130 includes a function code 131 and an event status monitor code 132. The function code 131 is executable code called by the user_interface_mod 51 using the function pointer 106 and is obtained by the user_interface_mod 51 through the information acquisition function 107. The function code 131 implements the functions of the job accounting plug-in module 65, which in this case is print job accounting. The event status monitor code 132 handles the reception of event notifications delivered from the user_interface_mod 51 to the job accounting plug-in module 65 via the event handler 108. The event status monitor code 132 forwards the received event notification to the function code 131 for use in implementing the functions supported by the task accounting plug-in module 65.
도 5는 도 2에 나타낸 저장 영역(60)의 로컬 데이터 구조(73)의 조합을 설명하기 위한 블록도이다. 도 3에서 user_interface_mod(51)의 초기화 부분(80)과 관련하여 설명한 바와 같이, user_interface_mod(51)은 작업 어카운팅 플러그인 모듈(65)로부터 정보, 포인터 및 속성을 획득하기 위하여 정보 획득 기능(107)을 이용한다. 초기화 부분(80)은 작업 어카운팅 플러그인 모듈(65)로부터 이 정보를 수신하게 되면, 초기화 부분(80)은 그 정보를 작업 어카운팅 플러그인 모듈(65)에 대응하여 분리된 데이터 구조에 위치시켜 둠으로써, 추후에 정보 획득 기능(107)을 다시 이용하지 않고 신속하고 효과적으로 액세스할 수 있도록 한다. 특히, user_interface_mod(51)의 초기화 부분(80)에서의 플러그인 정보 기능(82) 및 대화 구조 기능(84)은 각각의 선택된 플러그인 모듈로부터 정보를 획득하여, 이를 로컬 데이터 구조(73)의 분리된 디렉토리 구조에 위치시킨다.FIG. 5 is a block diagram for explaining the combination of the local data structures 73 of the storage area 60 shown in FIG. As described in connection with the initialization portion 80 of user_interface_mod 51 in FIG. 3, user_interface_mod 51 uses information acquisition function 107 to obtain information, pointers, and attributes from task accounting plug-in module 65. . When the initialization portion 80 receives this information from the job accounting plug-in module 65, the initialization part 80 places the information in a separate data structure corresponding to the job accounting plug-in module 65, Later, the information acquisition function 107 can be accessed quickly and effectively without using it again. In particular, the plug-in information function 82 and the dialog structure function 84 in the initialization portion 80 of the user_interface_mod 51 obtain information from each selected plug-in module, which is a separate directory of the local data structure 73. Place it in the structure.
다시 도 5를 참조하면, 로컬 데이터 구조(73)는 프린터(20)에 대응하는 레지스트리(41) 내의 printer1_id 42에 등록된 4개의 각각의 플러그인 모듈에 대응하는 구조 140, 160, 180 및 200을 포함하고 있다. 설명의 편의를 위하여, 작업 어카운팅 플러그인 모듈(65)로부터 user_interface_mod(51)에 의해 획득된 정보에 대응하는 데이터 구조 140에 대해서만 설명하기로 한다. 데이터 구조 140에서 알 수 있는 바와 같이, 여기에 포함된 정보는 작업 어카운팅 플러그인 모듈(65)의 자원 부분(100) 내에 포함되어 있는 정보의 일부분이다. 특히, 이 정보는 플러그인 기능 타입(142), 자원 포인터(143), 기능 포인터(144), 이벤트 핸들러 포인터(145) 및 속성(150)을 포함한다. 속성(150)은 대화 특성 시트의 수(151)와, 작업 어카운팅플러그인 모듈(65)에 의해 지원되는 각각의 대화 특성 시트에 대한 특성 시트 수(152), 타입(153) 및 속성을 포함한다. 이들 데이터에 대해서는 작업 어카운팅 플러그인 모듈(65)과 관련하여 전술하였으므로, 이에 대한 추가 설명은 하지 않기로 한다.Referring again to FIG. 5, local data structure 73 includes structures 140, 160, 180, and 200 corresponding to four respective plug-in modules registered in printer1_id 42 in registry 41 corresponding to printer 20. Doing. For convenience of description, only the data structure 140 corresponding to the information obtained by the user_interface_mod 51 from the job accounting plug-in module 65 will be described. As can be seen in data structure 140, the information contained herein is a portion of the information contained within resource portion 100 of task accounting plug-in module 65. In particular, this information includes a plug-in function type 142, a resource pointer 143, a function pointer 144, an event handler pointer 145, and an attribute 150. The attribute 150 includes the number of conversation property sheets 151, the number of property sheets 152, type 153, and properties for each conversation property sheet supported by the job accounting plug-in module 65. Since these data have been described above in connection with the job accounting plug-in module 65, no further description will be given.
도 6은 user_interface_mod(51)과 작업 어카운팅 플러그인 모듈(65) 사이의 상호동작 관계를 설명하는 흐름도이다. 단계 S601에서, user_interface_mod(51)은 운영 시스템(40)으로부터 초기화 호출을 수신하여 초기화 부분(80)을 기동시킨다. 단계 S602에서, 플러그인 검색 기능(801)은 레지스트리에서 프린터(20)에 대응하는 플러그인 모듈의 존재를 검색한다. 단계 S603에서, 플러그인 모듈이 검출되는지가 판단된다. 검출되지 않으면, 처리 수순은 단계 S615로 진행한다. 플러그인 모듈이 검출되는 경우, 처리 수순은 S604로 진행하여, 검출된 플러그인 모듈, 예컨대 작업 어카운팅 플러그인 모듈(65)이 RAM(17) 등의 메모리에 로드된다. 그 다음, 단계 S605에서, 플러그인 정보 기능(82)이 작업 어카운팅 모듈(65)로부터 정보 기능 포인터(103)를 획득한다. 그러면, 단계 S606에서, 플러그인 정보 기능(82)은 그 정보 기능 포인터(103)를 이용하여 작업 어카운팅 플러그인 모듈(65)의 자원 부분(100)으로부터 정보 및 대화 특성 시트 속성(110)을 수신하기 위하여 정보 획득 기능(107)을 호출한다.6 is a flowchart illustrating the interaction relationship between the user_interface_mod 51 and the task accounting plug-in module 65. In step S601, user_interface_mod 51 receives an initialization call from operating system 40 to activate initialization portion 80. In step S602, the plug-in retrieval function 801 retrieves the presence of a plug-in module corresponding to the printer 20 in the registry. In step S603, it is determined whether the plug-in module is detected. If not detected, the processing proceeds to step S615. If a plug-in module is detected, the process proceeds to S604 where the detected plug-in module, for example, the job accounting plug-in module 65, is loaded into a memory such as the RAM 17. Next, in step S605, the plug-in information function 82 obtains the information function pointer 103 from the job accounting module 65. Then, in step S606, the plug-in information function 82 uses the information function pointer 103 to receive information and conversation property sheet attributes 110 from the resource portion 100 of the job accounting plug-in module 65. The information acquisition function 107 is called.
단계 S607에서, 검출된 플러그인 모듈(이 경우에는 작업 어카운팅 플러그인 모듈(65))이 user_interface_mod(51)에 의해 지원되는지의 여부를 판단한다. 지원되는 것이 아닌 경우, 처리 수순은 단계 S602로 진행하여, 등록된 플러그인 모듈의검색을 계속한다. 그 플러그인 모듈이 지원되는 것인 경우, 즉 이 경우에서는 작업 어카운팅이 지원되는 것인 경우, 처리 수순은 단계 S608로 진행하여, 작업 어카운팅 플러그인 모듈(65)로부터 수신된 정보가 로컬 데이터 구조(73)의 분리된 로컬 데이터 구조(140) 내에 저장되게 된다. 단계 S609에서, 대화 구조 기능(83)이 정적 및 플러그인으로부터의 모든 대화 특성 시트의 속성을 운영 시스템(40)에 전달하여, 디스플레이(11) 상의 프린터 드라이버 사용자 인터페이스로서 운영 시스템(40)에 의해 처리되도록 한다. 단계 S610에서, user_interface_mod(51)의 운영 부분(90)이 실행되며, 작업 어카운팅 플러그인 모듈(65)에 의해 지원되는 기능을 구현하는데 필요한, 작업 어카운팅 플러그인 모듈(65)의 기능 부분(130)이 호출되어 운영 부분(90)에 의해 실행된다.In step S607, it is determined whether the detected plug-in module (job accounting plug-in module 65 in this case) is supported by the user_interface_mod 51. If it is not supported, the processing proceeds to step S602 to continue searching for the registered plug-in module. If the plug-in module is supported, that is, in this case, if job accounting is supported, the process proceeds to step S608 in which the information received from the job accounting plug-in module 65 is stored in the local data structure 73. In a separate local data structure 140. In step S609, the dialogue structure function 83 passes the attributes of all the dialogue property sheets from the static and the plug-in to the operating system 40, and is processed by the operating system 40 as a printer driver user interface on the display 11. Be sure to In step S610, the operational portion 90 of user_interface_mod 51 is executed, and the functional portion 130 of the task accounting plug-in module 65, which is required to implement the functions supported by the task accounting plug-in module 65, is called. And is executed by the operating portion 90.
다음으로, 단계 S611에서, user_interface_mod(51)에 의해 결합될 플러그인이 더 존재하는지의 여부를 판단하여, 존재하는 경우, 처리 수순은 단계 S602로 진행한다. 존재하지 않는 경우, 처리 수순은 단계 S612로 진행하여, user_interface_mod(51)은 운영 시스템(40)으로부터 프린터(20)에 대한 이벤트 통지를 수신한다. 단계 S613에서, 수신된 이벤트 통지가 이벤트 핸들러(108)를 이용하여 작업 어카운팅 플러그인 모듈(65)에 의해 요청된 것인지의 여부를 판단한다. 요청된 것인 경우에는, 처리 수순은 단계 S614로 진행하여, 이벤트 통지가 user_interface_mod(51)로부터 작업 어카운팅 플러그인 모듈(65)로 전달되어, 작업 어카운팅 플러그인 모듈(65) 내의 실행가능 코드에 의해 사용되며, 그 후 처리 수순은 단계 S615로 복귀한다. 요청된 것이 아닌 경우, 처리 수순은 바로 단계 S615로 복귀한다.Next, in step S611, it is determined whether or not there are more plug-ins to be coupled by the user_interface_mod 51, and if present, the process proceeds to step S602. If it does not exist, the processing proceeds to step S612, where the user_interface_mod 51 receives an event notification for the printer 20 from the operating system 40. In step S613, it is determined whether the received event notification is requested by the job accounting plug-in module 65 using the event handler 108. If so, processing proceeds to step S614 where an event notification is passed from user_interface_mod 51 to job accounting plug-in module 65 for use by executable code within job accounting plug-in module 65; After that, the processing returns to step S615. If it is not requested, the processing procedure immediately returns to step S615.
도 7은 아무런 플러그인 모듈도 검출되지 않고 user_interface_mod(51)에 아무런 플러그인 모듈도 결합되지 않은 경우의 프린터 드라이버 사용자 인터페이스(220)를 나타낸 도면이다. 도 7에 나타낸 바와 같이, 프린터 드라이버 사용자 인터페이스(220)는 8개의 탭된 대화 특성 시트(221 내지 228)로 구성되며, user_interface_mod(51)에 의해 원래 지원되고 있는 정적 대화 특성 시트를 나타낸다. 이들 8개의 탭된 대화 특성 시트(221 내지 228)는 프린터(20)의 각종 프린팅 양상을 나타낸다.FIG. 7 is a diagram illustrating a printer driver user interface 220 when no plug-in module is detected and no plug-in module is coupled to user_interface_mod 51. As shown in FIG. 7, the printer driver user interface 220 consists of eight tapped interactive property sheets 221-228, which represent the static interactive property sheet that is originally supported by user_interface_mod 51. These eight tapped interactive property sheets 221-228 represent various printing aspects of the printer 20.
도 8은 3개의 플러그인 모듈이 검출되어 user_interface_mod(51)에 의해 결합되는 경우의 프린터 드라이버 사용자 인터페이스(220)를 나타낸 도면이다. 도 8에 나타낸 바와 같이, 프린터 드라이버 사용자 인터페이스(220)는 user_interface_mod(51)에 의해 원래 지원되고 있는 정적 대화 특성 시트를 나타내는 8개의 탭된 대화 특성 시트(221 내지 228)를 포함한다. 또한, 프린터 드라이버 사용자 인터페이스(220)는 관리(229), 설치 프린터(230) 및 리다이렉트(231)에 대한 3개의 추가 탭된 대화 특성 시트를 포함하며, 이들은 정책 관리 플러그인 모듈(64), 설치 플러그인 모듈(61) 및 작업 리다이렉트 플러그인 모듈(62)에 대응한다. 이와 같이, 이들 3개의 추가 기능들 각각에 대한 탭된 대화 특성 시트는, user_interface_mod(51)을 수정, 리컴파일 및 테스트할 필요없이, user_interface_mod(51)을 통해 그들 각각의 플러그인에 의해 제공된다.8 is a diagram illustrating a printer driver user interface 220 when three plug-in modules are detected and combined by the user_interface_mod 51. As shown in FIG. 8, printer driver user interface 220 includes eight tapped interactive property sheets 221-228 that represent static interactive property sheets that are originally supported by user_interface_mod 51. The printer driver user interface 220 also includes three additional tabbed dialog property sheets for administration 229, installation printer 230, and redirect 231, which are policy management plug-in module 64, installation plug-in module. 61 and the work redirecting plug-in module 62. As such, the tabbed conversation property sheet for each of these three additional functions is provided by their respective plug-in via user_interface_mod 51 without having to modify, recompile and test user_interface_mod 51.
도 9는 본 발명에 따른 장치 플러그인 모듈의 식별 및 등록을 설명하기 위한흐름도이다. 단계 S901에서, 플러그인 모듈 등록 애플리케이션(74)이 컴퓨터(10)의 사용자에 의해 액세스된다. 이와 관련하여, 사용자는 컴퓨터(10)의 구성 및 유지를 책임지는 시스템 관리자일 수도 있으며, 단순히 컴퓨터(10)의 사용자일 수도 있다. 전술한 바와 같이, 플러그인 모듈 등록 애플리케이션(74)은 대응하는 장치 예컨대 프린터(20)가 설치되는 때 또는 프린터(20)에 대한 프린터 드라이버(50)에 새로운 기능을 추가시키고자 하는 때에, 고정 디스크(13)의 저장 영역(60)에 액세스 및 로드될 수도 있다. 예컨대, 플러그인 모듈 등록 애플리케이션(74)은 제조사에 의해 프린터(20)에 제공된 설치 파일, 예컨대 CD-ROM으로부터 액세스되거나, 접속 통신로(1)를 통하여 웹을 통해 웹 페이지로부터 액세스되거나, 고정 디스크(13)로부터 액세스되거나, 또는 다른 메모리 매체로부터 액세스될 수 있다. 이 경우, 플러그인 모듈 등록 애플리케이션(74)은 프린터 드라이버(50)의 구성요소들도 함께 설치하는 것이 바람직하다. 또한, 플러그인 모듈 등록 애플리케이션(74)은 프린터(20)의 초기 설치와 연관되지 않은 별도의 애플리케이션으로 구성하고, 웹, CD-ROM, 고정 디스크(13) 또는 기타 메모리 매체로부터 액세스되어 다운로드될 수도 있다.9 is a flowchart illustrating the identification and registration of a device plug-in module according to the present invention. In step S901, the plug-in module registration application 74 is accessed by the user of the computer 10. In this regard, the user may be a system administrator who is responsible for the configuration and maintenance of the computer 10 or may simply be a user of the computer 10. As mentioned above, the plug-in module registration application 74 is a fixed disk (when a corresponding device such as the printer 20 is installed, or when a new function is to be added to the printer driver 50 for the printer 20. 13 may be accessed and loaded. For example, the plug-in module registration application 74 may be accessed from an installation file provided to the printer 20 by the manufacturer, for example, a CD-ROM, accessed from a web page via the web via the connection channel 1, or may be fixed disk ( 13) or from another memory medium. In this case, the plug-in module registration application 74 preferably installs the components of the printer driver 50 together. In addition, the plug-in module registration application 74 may be configured as a separate application not associated with the initial installation of the printer 20, and may be accessed and downloaded from the web, CD-ROM, fixed disk 13, or other memory media. .
바람직하게, 플러그인 모듈 등록 애플리케이션(74)은 프로그램된 코드가 사용될 수 있지만 설치 스크립트로 이루어진다. 도 9로 돌아가면, 플러그인 모듈 등록 신청(74)에 의해 제공된 이용가능한 플러그인 모듈은 단계 S902에서 디스플레이(11) 상에 표시를 위하여 식별된다. 이용가능한 플러그인 모듈은 플러그인 모듈 등록 애플리케이션(74)이 액세스되는 동일한 위치에서 또는 웹 상의 웹페이지, CD-ROM, 고정 디스크(13), 또는 다른 기억 매체와 같은 다른 위치에 배치될 수 있다. 바람직하게, 이용가능한 플러그인 모듈은 프린터명, 프린터 타입 또는 몇몇 다른 파라미터에 기초하여 배열되고 정렬될 수 있다. 단계 S903에서 어떤 이용가능한 플러그인 모듈이 식별되었는지를 판단한다. 그렇지 않으면, 플로우는 단계 S911로 되돌아간다. 이용가능한 플러그인 모듈이 식별되고 표시되면, 적어도 하나의 적용가능한 플러그인 모듈이 단계 S904에서 설치를 위하여 선택된다. 이러한 관점에서, 이용가능한 플러그인 모듈의 선택은 컴퓨터(10)의 사용자에 의한 수동 선택이거나, 또는 컴퓨터(10)의 프린터 드라이버(50)의 검출된 타입에 자동적으로 기초할 수 있다. 후자의 경우는 특히 프린터(20)가 설치된 시점에서 플러그인 모듈이 설치될 때 유용하다.Preferably, the plug-in module registration application 74 consists of installation scripts although programmed code can be used. 9, the available plug-in modules provided by the plug-in module registration application 74 are identified for display on the display 11 in step S902. The available plug-in module may be placed at the same location from which the plug-in module registration application 74 is accessed or at another location such as a web page, CD-ROM, fixed disk 13, or other storage medium on the web. Preferably, the available plug-in modules can be arranged and arranged based on the printer name, printer type or some other parameter. In step S903, it is determined which available plug-in modules have been identified. Otherwise, the flow returns to step S911. Once the available plug-in modules have been identified and displayed, at least one applicable plug-in module is selected for installation in step S904. In this regard, the selection of available plug-in modules may be manual selection by a user of the computer 10 or may be automatically based on the detected type of the printer driver 50 of the computer 10. The latter case is particularly useful when the plug-in module is installed at the time when the printer 20 is installed.
단계 S905에서 선택된 플러그인 모듈은 원본으로부터 복사되고 고정 디스크(13)의 저장 영역(60)에 저장되고, 레지스트리(41)가 선택된 플러그인 모듈의 등록을 준비하기 위하여 액세스된다. 단계 S906에서 기존의 플러그인 모듈이 선택된 플러그인 모듈과 동일 타입, 또는 동일명인 레지스트리(41)에 이미 등록되어 있는지를 판단한다. 그렇다면, 플로우는 컴퓨터(10)의 사용자가 상황을 통지받는 단계 S908로 가고, 단계 S908에서 사용자가 기존의 플러그인 모듈을 교체하거나, 재명명하여 선택된 플러그인 모듈의 설치를 진행하도록 지시된다. 사용자가 교체(또는 재명명)를 선택하면, 플로우가 경우에 따라서 기존의 플러그인 모듈이 삭제되거나 재명명되는 단계 S909로 간다. 플로우는 단계 S910으로 간다. 반면에, 단계 S908에서 사용자가 기존의 플러그인 모듈을 교체하거나, 재명명하여 선택된 플러그인 모듈의 설치를 진행하도록 지시되지 않았다고 판단되면, 플로우는 단계 S911으로 되돌아간다.The plug-in module selected in step S905 is copied from the original and stored in the storage area 60 of the fixed disk 13, and the registry 41 is accessed to prepare for registration of the selected plug-in module. In step S906, it is determined whether the existing plug-in module is already registered in the registry 41 of the same type or the same name as the selected plug-in module. If so, the flow goes to step S908 where the user of the computer 10 is notified of the situation, and in step S908 the user is instructed to replace or rename the existing plug-in module and proceed with the installation of the selected plug-in module. If the user selects a replacement (or rename), the flow goes to step S909 where the existing plug-in module is optionally deleted or renamed. The flow goes to step S910. On the other hand, if it is determined in step S908 that the user has not been instructed to replace or rename the existing plug-in module and proceed with the installation of the selected plug-in module, the flow returns to step S911.
단계 S906에서 선택된 플러그인 모듈과 기존의 플러그인 모듈이 동일한 타입, 또는 동일명인 레지스트리(41)에 이미 등록되지 않았다고 판단되면, 플로우는 단계 S910으로 직접 간다. 이어서 이 경우 프린터(20)에 선택된 플러그인 모듈에 의해 지원되는 장치에 대한 엔트리에 응답하여 선택된 플러그인 모듈에 대하여 레지스트리(41)에 식별자를 입력한다(단계 S910). 식별자는 도 2에 도시된 레지스트리(41)에서와 같은 장치 식별자에 기초한 엔트리에 대하여 입력되거나, user_interface_mod(51)가 엔트리 타입에 기초한 등록된 프러그인 모듈을 검색하는 동안 장치 타입, 사용자명 또는 컴퓨터명에 기초한 엔트리에 대하여 입력될 수 있다. 플로우는 단계 S911로 되돌아간다. 이러한 방식으로, 플러그인 모듈은 대응 장치의 설치 또는 설치 후에 쉽게 액세스되고 설치되고 등록되어, 장치 드라이버를 변경, 리컴파일 및 테스트할 필요없이 장치에 대한 장치 드라이버의 새로운 기능성을 제공할 수 있다.If it is determined in step S906 that the selected plug-in module and the existing plug-in module are not already registered in the registry 41 of the same type or the same name, the flow goes directly to step S910. In this case, an identifier is then input to the registry 41 for the selected plug-in module in response to an entry for the device supported by the plug-in module selected in the printer 20 (step S910). The identifier is entered for an entry based on a device identifier, such as in the registry 41 shown in FIG. 2, or the device type, username or computer name while user_interface_mod 51 searches for a registered plug-in module based on the entry type. Can be entered for an entry based on. The flow returns to step S911. In this way, the plug-in module can be easily accessed, installed and registered after installation or installation of the corresponding device, providing new functionality of the device driver for the device without having to change, recompile and test the device driver.
도 10은 본 발명의 일 실시예에 따른 다중 플러그인 모듈 및 user_interface_mod(51)을 갖는 운영 시스템(40)의 인터페이스를 설명하는 플로우 챠트이다. 단계 S1001에서, 운영 시스템(40)이 프린터 드라이버(50)에 대한 사용자 인터페이스의 주 대화 특성 시트의 표시에 대한 사용자 요청을 수신한다. 운영 시스템(40)은 단계 S1002에서 주 대화 특성 시트의 표시에 대한 사용자 요청에 응답하여 user_interface_mod(51)로 초기화 호출을 송신한다. 이어서user_interface_mod(51)는 프린터(20)에 대응하는 등록된 플러그인 모듈의 검출을 위하여 레지스트리(41)를 검색한다. 단계 S1004에서, 등록된 플러그인 모듈이 단계 S1005에서 검출되는지를 판단한다. 아무것도 검출되지 않으면, 플로우는 단계 S1019로 되돌아간다. 플러그인 모듈이 검출되면, 플로우는 단계 S1005로 가서, 상술된 바와 같이, user_interface_mod(51)가 정보 포인터를 사용하여 각각의 검출된 플러그인 모듈로부터 탭된 대화 특성 시트에 대응하는 정보 및 속성을 얻는다.10 is a flowchart illustrating an interface of an operating system 40 with multiple plug-in modules and user_interface_mod 51 in accordance with one embodiment of the present invention. In step S1001, the operating system 40 receives a user request for display of the main dialog property sheet of the user interface for the printer driver 50. The operating system 40 sends an initialization call to user_interface_mod 51 in response to a user request for display of the main conversation property sheet in step S1002. User_interface_mod 51 then searches registry 41 for detection of a registered plug-in module corresponding to printer 20. In step S1004, it is determined whether the registered plug-in module is detected in step S1005. If nothing is detected, the flow returns to step S1019. If the plug-in module is detected, the flow goes to step S1005, and as described above, the user_interface_mod 51 uses the information pointer to obtain information and attributes corresponding to the tapped conversation property sheet from each detected plug-in module.
다음에, 단계 S1006에서, user_interface_mod(51)가 user_interface_mod(51)에 의해 고유하게 지원되는 정적 탭된 대화 특성 시트에 대한 정보 및 속성에 따라 얻어진 정보 및 속성을 운영 시스템(40)으로 전달한다. 단계 S1007에서, 운영 시스템(40)이 컴퓨터(10)의 디스플레이(11) 상에 프린터 드라이버 사용자 인터페이스의 주 대화 특성 시트를 전달하고, 여기서 주 대화 특성 시트는 검출된 플러그인 모듈로부터 획득한 다른 탭된 대화 특성 시트에 액세스하기 위한 탭을 갖는다. 운영 시스템(40)은 단계 S1008에서 검출된 플러그인 모듈로부터 얻어진 다른 탭된 대화 특성 시트 중 하나의 시트의 표시에 대한 요청을 수신한다. 단계 S1009에서, 운영 시스템(40)은 검출된 플러그인 모듈 중 하나의 모듈로부터 얻어진 요청된 탭된 대화 특성 시트를 표시한다. 단계 S1010에서 운영 시스템(40)에 의해 표시된 탭된 대화 특성 시트에 의해 지원된 기능을 활용하는 요청이 수신되고, 단계 S1011에서 운영 시스템(40)은 기능 요청을 user_interface_mod(51)로 송신한다.Next, in step S1006, user_interface_mod 51 passes to the operating system 40 the information and attributes obtained according to the information and attributes for the static tapped conversation property sheet that are uniquely supported by user_interface_mod 51. In step S1007, the operating system 40 delivers the main dialog properties sheet of the printer driver user interface on the display 11 of the computer 10, where the main dialog properties sheet is another tabbed dialog obtained from the detected plug-in module. It has a tab to access the property sheet. The operating system 40 receives a request for display of one of the other tapped conversation property sheets obtained from the plug-in module detected in step S1008. In step S1009, the operating system 40 displays the requested tapped conversation property sheet obtained from one of the detected plug-in modules. In step S1010 a request to utilize the functionality supported by the tapped conversation property sheet indicated by the operating system 40 is received, and in step S1011 the operating system 40 sends a function request to user_interface_mod 51.
단계 S1012에서, user_interface_mod(51)는 기능 포인터를 이용하여 기능 요청을 수신한 탭된 대화 특성 시트에 대응하는 플로그인 모듈에서 기능 코드를 액세스하여 실행한다. 이러한 방식으로, 플러그인 모듈은 프린터 드라이버(50)의 user_interface_mod(51)에 의해 고유하게 지원되지 않는 기능을 구현한다. 단계 S1013에서, user_interface_mod(51)에 통합될 플러그인 모듈이 더 없는지를 판단하여, 그렇다면, 플로우는 단계 S1005로 가서 다른 플러그인에 대한 정보를 얻는다. 그렇지 않으면, 플로우는 단계 S1014로 직접가서 운영 시스템(40)이 사용자로부터 프린터(20)에 의해 이미지 데이터를 프린트하는 프린트 요청을 수신한다. 운영 시스템(40)은 단계 S1015에서 프린트 요청을 프린터 드라이버(50)로 전달하고, 이미지 데이터가 프린트 작업으로 전해져 단계 S1016에서 프린팅하는 프린터로 송신된다. user_interface_mod(51)는 단계 S1017에서 프린터(20)의 상태를 고려하여 운영 시스템(40)으로부터 이벤트 통지를 수신하고, user_interface_mod(51)가 단계 S1018에서 이벤트 통지를 적합한 플러그인 모듈로 송신한다. 플로우는 단계 S1019로 되돌아간다.In step S1012, the user_interface_mod 51 accesses and executes the function code in the plug-in module corresponding to the tapped conversation property sheet that has received the function request by using the function pointer. In this way, the plug-in module implements functionality not natively supported by the user_interface_mod 51 of the printer driver 50. In step S1013, it is determined whether there are no more plug-in modules to be integrated in the user_interface_mod 51, and if so, the flow goes to step S1005 to obtain information about another plug-in. Otherwise, the flow goes directly to step S1014 where the operating system 40 receives a print request from the user to print image data by the printer 20. The operating system 40 forwards the print request to the printer driver 50 in step S1015, and the image data is transferred to the print job and sent to the printer to print in step S1016. user_interface_mod 51 receives the event notification from the operating system 40 in consideration of the state of the printer 20 in step S1017, and user_interface_mod 51 sends the event notification to the appropriate plug-in module in step S1018. The flow returns to step S1019.
이러한 방식으로, 운영 시스템, 장치 드라이버, 및 드라이버 프러그인 모듈이 조정된 방식으로 함께 기능하여 장치 드라이버의 변경, 리컴파일 및 테스트를 할 필요없이 장치 드라이버에 추가의 기능성을 제공한다.In this way, the operating system, device drivers, and driver plug-in modules work together in a coordinated manner to provide additional functionality to the device driver without the need to change, recompile, and test the device driver.
본 발명은 다른 타입의 장치를 지원하는 프린터 드라이버 이외의 장치 드라이버의 기능 성능을 확장하도록 구현될 수 있음이 이해될 것이다. 또한, 본 발명은 여기서 설명된 것 이상으로, 다른 형태의 운영 시스템으로 장치를 컴퓨팅하고 주변기기를 컴퓨팅하는 다른 타입에서 구현될 수 있다. 또한, 소프트웨어 모듈,기능, 프로그램, 애플리케이션, 및 다른 파일의 기능 양상이 여기서 설명된 것 이외의 소프트웨어 및 명령의 형태로 구현될 수 있다.It will be appreciated that the present invention can be implemented to extend the functional capabilities of device drivers other than printer drivers that support other types of devices. In addition, the present invention may be implemented in other types of computing devices and other types of peripherals with other types of operating systems beyond those described herein. In addition, functional aspects of software modules, functions, programs, applications, and other files may be implemented in the form of software and instructions other than those described herein.
본 발명은 특정한 예시적인 실시형태로 설명되었다. 본 발명은 상술한 실시예에 한정되지 않고 다양한 변경 및 수정이 본 발명의 사상 및 범위로부터 벗어나지 않고 본 기술 분야에서 숙련된 자에 의해 이루어질 수 있다. 특히, 상술된 바와 같이, 본 발명은 네트워크 프린터 뿐만 아니라 다양한 타입의 네트워크 장치를 관리하는데 사용될 수 있다.The present invention has been described in particular illustrative embodiments. The present invention is not limited to the above-described embodiments and various changes and modifications can be made by those skilled in the art without departing from the spirit and scope of the present invention. In particular, as described above, the present invention can be used to manage various types of network devices as well as network printers.
Claims (35)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020030025792A KR100578434B1 (en) | 2002-04-23 | 2003-04-23 | Computer-readable recording media recording expandable device driver programs, methods and devices for registering driver plug-in programs |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/0131,012 | 2002-04-23 | ||
| KR1020030025792A KR100578434B1 (en) | 2002-04-23 | 2003-04-23 | Computer-readable recording media recording expandable device driver programs, methods and devices for registering driver plug-in programs |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20030084709A true KR20030084709A (en) | 2003-11-01 |
| KR100578434B1 KR100578434B1 (en) | 2006-05-11 |
Family
ID=41746177
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020030025792A Expired - Fee Related KR100578434B1 (en) | 2002-04-23 | 2003-04-23 | Computer-readable recording media recording expandable device driver programs, methods and devices for registering driver plug-in programs |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR100578434B1 (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR200453563Y1 (en) * | 2009-06-18 | 2011-05-13 | 조인현 | Divice for fixing wire conducting thunderbolt |
| CN114222972A (en) * | 2019-09-12 | 2022-03-22 | 惠普发展公司, 有限责任合伙企业 | Application presence monitoring and reinstallation |
| CN114237758A (en) * | 2021-12-21 | 2022-03-25 | 元心信息科技集团有限公司 | Communication connection method, communication connection device, electronic equipment and computer-readable storage medium |
| CN114626082A (en) * | 2020-12-10 | 2022-06-14 | 中移物联网有限公司 | Security chip management system, method, device and storage medium |
| CN116708063A (en) * | 2022-12-23 | 2023-09-05 | 荣耀终端有限公司 | Log reporting method, electronic device, cloud server and storage medium |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101235859B1 (en) | 2007-10-10 | 2013-02-20 | 삼성전자주식회사 | Method and apparatus for operating a printer driver corresponding to a application, method and apparatus for installing a printer driver |
| KR101294308B1 (en) * | 2011-07-15 | 2013-08-08 | 엘지전자 주식회사 | Facilities control system and operating method of the system |
-
2003
- 2003-04-23 KR KR1020030025792A patent/KR100578434B1/en not_active Expired - Fee Related
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR200453563Y1 (en) * | 2009-06-18 | 2011-05-13 | 조인현 | Divice for fixing wire conducting thunderbolt |
| CN114222972A (en) * | 2019-09-12 | 2022-03-22 | 惠普发展公司, 有限责任合伙企业 | Application presence monitoring and reinstallation |
| CN114626082A (en) * | 2020-12-10 | 2022-06-14 | 中移物联网有限公司 | Security chip management system, method, device and storage medium |
| CN114237758A (en) * | 2021-12-21 | 2022-03-25 | 元心信息科技集团有限公司 | Communication connection method, communication connection device, electronic equipment and computer-readable storage medium |
| CN114237758B (en) * | 2021-12-21 | 2024-02-02 | 元心信息科技集团有限公司 | Communication connection method, device, electronic equipment and computer readable storage medium |
| CN116708063A (en) * | 2022-12-23 | 2023-09-05 | 荣耀终端有限公司 | Log reporting method, electronic device, cloud server and storage medium |
| CN116708063B (en) * | 2022-12-23 | 2024-06-11 | 荣耀终端有限公司 | Log reporting method, electronic device, cloud server and storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| KR100578434B1 (en) | 2006-05-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3745344B2 (en) | Extensive device driver | |
| KR100675242B1 (en) | Information processing device and control method thereof | |
| KR100311191B1 (en) | Customization of web pages based on requester type | |
| US7168003B2 (en) | Method and apparatus for automating printer and printer driver diagnostics and repair | |
| US20030011640A1 (en) | System and methods for implementing peripheral device front menu panels | |
| US7836441B2 (en) | Administration automation in application servers | |
| US8020170B2 (en) | Information processing apparatus, method of operating it, and computer readable information recording medium | |
| RU2412474C2 (en) | Method and system for creating, storing, managing and consuming culture specific data | |
| US20040230500A1 (en) | Service providing apparatus, user terminal, service providing method, service utilizing method, computer-readable recording medium recorded with a service providing program, and computer-readable recording medium recorded with a service utilizing program | |
| US7069294B2 (en) | Browser based multiple file upload | |
| JP2000298567A (en) | Internet base printing | |
| EP1756720A4 (en) | INSTALLATION METHOD, INFORMATION PROCESSING APPARATUS AND PERIPHERAL MANAGER | |
| US7386845B1 (en) | Automated compatibility and upgrade/downgrade knowledge base | |
| JP5166318B2 (en) | Apparatus, method and program for processing information | |
| US10809993B2 (en) | System, management device, information processing device, control method for management device, control method for information processing device, and computer-readable storage medium | |
| US10356267B2 (en) | Information processing apparatus, control method, and storage medium | |
| CN102223246B (en) | Managing device and control method thereof for managing network device | |
| CN100561435C (en) | Signal conditioning package and information processing method | |
| US20080250430A1 (en) | Method and corresponding apparatus for creation of print drivers in a network | |
| KR100578434B1 (en) | Computer-readable recording media recording expandable device driver programs, methods and devices for registering driver plug-in programs | |
| US8422040B2 (en) | Image forming system and method, management apparatus, and recording medium | |
| US7202961B2 (en) | Method for dynamically creating a printer driver | |
| JP2006163993A (en) | Data processing system, data processing apparatus, data processing method, storage medium storing computer-readable program, and program | |
| JP2000311129A (en) | Peripheral device management system | |
| JP2024167815A (en) | Information processing device, control method thereof, and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-5-5-R10-R17-oth-X000 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
| FPAY | Annual fee payment |
Payment date: 20130425 Year of fee payment: 8 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 8 |
|
| FPAY | Annual fee payment |
Payment date: 20140424 Year of fee payment: 9 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 9 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20150504 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20150504 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |