Kiến trúc COMAddin

Một phần của tài liệu Hệ thống báo điểm tự động qua email trong trường trung học phổ thông (Trang 52 - 56)

8. Phương pháp luận và phương pháp nghiên cứu:

3.4. Kiến trúc COMAddin

COM Add-in là một chức năng của Office được hiện thực lần đầu tiên trong phiên bản Microsoft Office 2000. Kiến trúc này được hỗ trợ bởi tất cả các chương

trình Office, bao gồm Outlook. Những điểm thuận lợi chủ chốt của COM add-in bao gồm:

•COM Add-in chạy trong cùng tiến trình với chương trình chính, do đĩ mã thực thi sẽ chạy nhanh hơn so với mã được lập trình bởi Visual Basic for Application (VBA)

•Kiến trúc COM add-In là kiến trúc nhất quán cho tất cả các chương trình Office, trong khi trong các phiên bản trước của Office (trước Office 2000), mỗi chương trình cĩ kiến trúc mở rộng khác nhau.

•COM Addin cĩ thể được sử dụng cho nhiều hơn một chương trình Office.

Để hiện thực COM Addin, nhà phát triển cần hiện thực giao diện IDTExtensibility2 được mơ tả trong Microsoft Add-in Designer Type Library (MSADDNDR.DLL). Tất cả COM Add-in được kế thừa từ giao diện này phải hiện thực năm phương thức:

OnConnection

Sự kiện OnConnection xảy ra mỗi khi COM Add-in được kết nối. Add-in cĩ thể được kết nối vào lúc khởi động, bởi người dùng cuối, hoặc thơng qua cơ chế tự động. Nếu OnConnection thực hiện thành cơng, addin sẽ thơng báo là nĩ được nạp. Nếu một giá trị lỗi được trả về, ứng dụng chính sẽ ngay lập tức giải phĩng tham chiếu đến Addin và đối tượng Addin bị hủy.

OnConnection nhận bốn tham số sau:

1. Application : Là tham chiếu đến đối tượng của ứng dụng chính

 Ext_cm_AfterStartup : Được bắt đầu bởi người dùng cuối từ hộp thoại COM Addin

 Ext_cm_CommandLine: Được kết nối từ dịng lệnh. (Khơng ứng dụng cho COM Add-in của Office)

 Ext_cm_External: Được kết nối bởi ứng dụng ngồi, thơng qua cơ chế tự động (Khơng ứng dụng cho COM Addin của Office)

 Ext_cm_Startup : Được bắt đầu bởi ứng dụng chính khi khởi tạo (Phương pháp này được điều khiển bởi thiết đặt trong registry)

3. AddInInst : Một tham chiếu đến đối tượng COMAddin đại diện cho Addin này trong tập hợp Addin của ứng dụng chủ.

4. Custom: Một mảng cĩ kiểu Variant lưu trữ dữ liệu được định nghĩa bởi người dùng.

OnDisconnection:

Sự kiện OnDisconnection xảy ra khi COM Addin được ngắt kết nối và trước khi nĩ được giải phĩng khỏi bộ nhớ chương trình. Addin cần phải thực hiện bất cứ thao tác giải phĩng tài nguyên nào trong sự kiện này, và khơi phục bất cứ thay đổi nào đến ứng dụng chủ.

OnDisconnection nhận vào hai tham số sau:

1. RemoteMode : Một hằng số xác định Addin được tháo kết nối như thế nào.

 Ext_dm_HostShutdown – Tháo kết nối khi ứng dụng chính được đĩng

 Ext_dm_userclosed – Tháo kết bởi người sử dụng đầu cuối hoặc điều khiển tự động

2. Custom: Một mảng kiểu Variant giữ những dữ liệu được định nghĩa bởi người dùng.

OnAddinsUpdate:

Sự kiện OnAddinsUpdate xảy ra khi những thiết đặt của COM Addin bị thay đổi. Nĩi một cách khác, sự kiện này sẽ xảy ra bất cứ khi nào một COM add-in được cài đặt hoặc gỡ bỏ khỏi ứng dụng chủ

OnStartupComplete và OnBeginShutdown

Hai phương thức OnStartupComplete và OnBeginShutdown được gọi khi ứng dụng chủ khơng được tương tác, hoặc đang ở trong trạng thái khi mà những tương tác của người sử dụng bị bỏ qua bởi vì ứng dụng đang bận nạp dữ liệu hoặc giải phĩng nĩ trong bộ nhớ. OnStartupComplete chỉ được gọi nếu Addin của bạn được kết nối trong giai đoạn khởi động, và OnBeginShutdown thì chỉ được gọi nếu Addin của bạn được ngắt kết nối bởi ứng dụng chủ trong lúc đĩng chương trình.

Bởi vì hai sự kiện này cho phép cĩ sự tương tác trong lúc nĩ được gọi, chúng là cách duy nhất để thực hiện một tác vụ mà khơng thể thực hiện được trong sự kiện OnConnection và OnDisconnection.

Đăng ký COM Add-in

Để đăng ký COM, một COM Add-in cần phải đăng kí chính nĩ vào mỗi ứng dụng mà nĩ sẽ chạy. Nĩ cần phải tạo một khĩa thành phần trong Registry sử dụng ProgID như là tên của khĩa, ở vị trí:

HKEY_CURRENT_USER\Software\Microsoft\Office\<OfficeApp>\Addins\ <ProgID>

Addin cĩ thể cung cấp những giá trị ở vị trí khĩa này, bao gồm cả tên hiển thị và phần mơ tả chi tiết. Một thành phần cần thiết khác, là Addin phải xác định cơ chế nạp của nĩ bởi một giá trị DWORD gọi là “LoadBehavior”. Giá trị này xác định cách thức Addin được nạp vào ứng dụng chủ như thế nào, nĩ được tạo thành bởi việc kết hợp những giá trị sau:

0 = Ngắt kết nối – khơng được nạp 1 = Kết nối – được nạp

2 = Bootload – Nạp lúc ứng dụng khởi động

8 = DemanLoad – Nạp khi cĩ yêu cầu từ người sử dụng

16 = ConnectFirstTime – Nạp chỉ duy nhất một lần (vào lần khởi động kế) Giá trị mà hầu hết một Addin thơng thường đăng ký là 3 (Connected (1) + Bootload(2))

Một phần của tài liệu Hệ thống báo điểm tự động qua email trong trường trung học phổ thông (Trang 52 - 56)

Tải bản đầy đủ (PDF)

(96 trang)