Основы COM-технологий. Артемов М.А. и др. - 28 стр.

UptoLike

Составители: 

ɝɢɢ COM, ɱɬɨ ɨɛɟɫɩɟɱɢɜɚɟɬ ɜɨɡɦɨɠɧɨɫɬɶ ɭɩɪɚɜɥɟɧɢɹ ɞɚɧɧɵɦ ɩɪɢɥɨɠɟ-
ɧɢɟɦ ɫ ɩɨɦɨɳɶɸ ɞɪɭɝɢɯ ɩɪɢɥɨɠɟɧɢɣ ɢ ɦɚɤɪɨɹɡɵɤɨɜ.
ȼɫɟ ɤɨɦɩɨɧɟɧɬɵ Microsoft Office ɩɨɞɞɟɪɠɢɜɚɸɬ ɨɞɢɧ ɢ ɬɨɬ ɠɟ ɦɚɤ-
ɪɨɹɡɵɤ: Visual Basic for Applications (VBA), ɩɨɡɜɨɥɹɸɳɢɣ ɫɨɡɞɚɜɚɬɶ ɩɪɢ-
ɥɨɠɟɧɢɹ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɜɧɭɬɪɢ ɞɨɤɭɦɟɧɬɨɜ Office (ɷɬɨ ɧɚɡɵɜɚɟɬɫɹ
«ɪɟɲɟɧɢɹɦɢ ɧɚ ɛɚɡɟ Microsoft Office»). ɍɩɪɚɜɥɟɧɢɟ ɠɟ ɤɨɦɩɨɧɟɧɬɚɦɢ
Office ɢɡ ɞɪɭɝɢɯ ɩɪɢɥɨɠɟɧɢɣ ɨɫɭɳɟɫɬɜɥɹɟɬɫɹ ɫ ɩɨɦɨɳɶɸ ɚɜɬɨɦɚɬɢɡɚɰɢɢ
(Automation) – ɜɫɟ ɩɪɢɥɨɠɟɧɢɹ Microsoft Office ɹɜɥɹɸɬɫɹ ɫɟɪɜɟɪɚɦɢ ɚɜ-
ɬɨɦɚɬɢɡɚɰɢɢ (ɢɥɢ COM-ɫɟɪɜɟɪɚɦɢ). Ⱦɥɹ ɫɨɡɞɚɧɢɹ ɬɚɤɢɯ ɩɪɢɥɨɠɟɧɢɣ
ɩɪɢɝɨɞɧɵ ɥɸɛɵɟ ɫɪɟɞɫɬɜɚ ɪɚɡɪɚɛɨɬɤɢ, ɩɨɡɜɨɥɹɸɳɢɟ ɫɨɡɞɚɜɚɬɶ ɤɨɧɬɪɨɥ-
ɥɟɪɵ ɚɜɬɨɦɚɬɢɡɚɰɢɢ (COM-ɤɥɢɟɧɬɵ). ɇɚɢɛɨɥɟɟ ɱɚɫɬɨ ɞɥɹ ɷɬɨɣ ɰɟɥɢ ɢɫ-
ɩɨɥɶɡɭɟɬɫɹ Visual Basic, ɧɨ ɷɬɨ ɦɨɝɭɬ ɛɵɬɶ ɢ Delphi, C++ Builder, Visual
C++ ɢɬ. ɩ. Ɉɞɧɚɤɨ, ɩɪɟɠɞɟ ɱɟɦ ɨɛɫɭɠɞɚɬɶ ɜɨɡɦɨɠɧɨɫɬɢ ɬɟɯ ɢɥɢ ɢɧɵɯ
ɫɪɟɞɫɬɜ ɪɚɡɪɚɛɨɬɤɢ, ɫɥɟɞɭɟɬ ɪɚɡɨɛɪɚɬɶɫɹ, ɱɬɨ ɬɚɤɨɟ ɚɜɬɨɦɚɬɢɡɚɰɢɹ. ɉɪɚɤ-
ɬɢɱɟɫɤɢ ɜɫɟ, ɱɬɨ ɜ ɫɨɫɬɨɹɧɢɢ ɫɞɟɥɚɬɶ ɩɨɥɶɡɨɜɚɬɟɥɶ ɥɸɛɨɝɨ ɩɪɢɥɨɠɟɧɢɹ
Microsoft Office ɫ ɩɨɦɨɳɶɸ ɦɟɧɸ, ɤɥɚɜɢɚɬɭɪɵ ɢ ɢɧɫɬɪɭɦɟɧɬɚɥɶɧɨɣ ɩɚɧɟ-
ɥɢ, ɦɨɠɟɬ ɛɵɬɶ ɪɟɚɥɢɡɨɜɚɧɨ ɢɡ ɩɪɢɥɨɠɟɧɢɹ, ɫɨɡɞɚɧɧɨɝɨ ɫ ɩɨɦɨɳɶɸ ɨɞɧɨ-
ɝɨ ɢɡ ɫɪɟɞɫɬɜ ɪɚɡɪɚɛɨɬɤɢ.
Ɉɫɧɨɜɧɨɟ ɩɪɟɢɦɭɳɟɫɬɜɨ ɩɪɢɦɟɧɟɧɢɹ ɩɪɢɥɨɠɟɧɢɣ Microsoft Office
ɫɜɹɡɚɧɨ ɫ ɬɟɦ, ɱɬɨ ɧɟɬ ɧɟɨɛɯɨɞɢɦɨɫɬɢ ɪɚɡɪɚɛɚɬɵɜɚɬɶ ɫɨɛɫɬɜɟɧɧɵɟ ɫɪɟɞɫɬ-
ɜɚ ɮɨɪɦɢɪɨɜɚɧɢɹ ɢ ɩɪɨɫɦɨɬɪɚ ɨɬɱɟɬɨɜ. Ʉ ɬɨɦɭ ɠɟ, ɧɟɤɨɬɨɪɵɟ ɩɨɥɶɡɨɜɚɬɟ-
ɥɢ, ɩɪɢɜɵɤɲɢɟ ɢɫɩɨɥɶɡɨɜɚɬɶ ɩɪɢɥɨɠɟɧɢɹ Microsoft Office ɜ ɩɨɜɫɟɞɧɟɜɧɨɣ
ɪɚɛɨɬɟ
, ɩɪɟɞɩɨɱɢɬɚɸɬ ɯɪɚɧɢɬɶ ɨɬɱɟɬɵ ɢ ɞɪɭɝɢɟ ɞɨɤɭɦɟɧɬɵ ɜ ɨɞɧɨɦ ɢɡ
ɮɨɪɦɚɬɨɜ Microsoft Office.
ȼ ɞɚɧɧɨɣ ɝɥɚɜɟ ɩɪɢɜɟɞɟɧɨ ɨɩɢɫɚɧɢɟ ɦɟɬɨɞɢɤɢ ɪɟɚɥɢɡɚɰɢɢ ɭɩɪɚɜɥɟ-
ɧɢɹ ɩɪɢɥɨɠɟɧɢɹɦɢ Word ɢ Excel ɜ ɩɪɨɝɪɚɦɦɚɯ, ɪɚɡɪɚɛɚɬɵɜɚɟɦɵɯ ɜ ɜɢɡɭ-
ɚɥɶɧɨɣ ɫɪɟɞɟ Delphi, ɧɚ ɨɫɧɨɜɟ ɬɟɯɧɨɥɨɝɢɢ ɚɜɬɨɦɚɬɢɡɚɰɢɢ COM-
ɩɪɢɥɨɠɟɧɢɣ.
ɋɨɜɪɟɦɟɧɧɵɟ ɜɢɡɭɚɥɶɧɵɟ ɫɪɟɞɵ Delphi (ɜɟɪɫɢɢ 7 ɢɜɵɲɟ) ɩɨɡɜɨɥɹɸɬ
ɫɨɡɞɚɜɚɬɶ ɤɨɦɩɨɧɟɧɬɵ, ɜɧɭɬɪɢ ɤɨɬɨɪɵɯ ɪɟɚɥɢɡɨɜɚɧɚ ɫɜɹɡɶ ɫ COM-
ɫɟɪɜɟɪɚɦɢ. ɋ ɨɞɧɨɣ ɫɬɨɪɨɧɵ, ɬɚɤɨɣ ɩɨɞɯɨɞ ɤ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɸ ɩɨɡɜɨ-
ɥɹɟɬ ɢɡɛɟɠɚɬɶ ɧɟɤɨɬɨɪɵɯ ɬɪɭɞɧɨɫɬɟɣ, ɫɜɹɡɚɧɧɵɯ ɫ ɪɟɚɥɢɡɚɰɢɟɣ ɬɟɯɧɨɥɨ-
ɝɢɢ COM, ɚ ɫ ɞɪɭɝɨɣ ɫɬɨɪɨɧɵɩɪɨɝɪɚɦɦɵ, ɪɟɚɥɢɡɨɜɚɧɧɵɟ ɧɚ ɬɚɤɢɯ ɤɨɦ-
ɩɨɧɟɧɬɚɯ, ɪɚɛɨɬɚɸɬ ɫɭɳɟɫɬɜɟɧɧɨ ɦɟɞɥɟɧɧɟɟ, ɱɟɦ ɬɟ, ɤɨɬɨɪɵɟ ɢɫɩɨɥɶɡɭɸɬ
ɢɧɬɟɪɮɟɣɫɵ ɧɚɩɪɹɦɭɸ. Ⱦɪɭɝɢɦ ɨɬɪɢɰɚɬɟɥɶɧɵɦ ɦɨɦɟɧɬɨɦ ɹɜɥɹɟɬɫɹ ɬɨ,
ɱɬɨ ɧɟɤɨɬ ɪɵɟ ɦɟɬɨɞɵ ɢɦɟɸɬ ɞ ɫɬɚɬɨɱɧɨ ɛɨɥɶɲɨ ɤɨɥɢɱɟɫɬɜɨ ɩɚɪɚɦɟɬ-
ɪɨɜ (ɧɚɩɪɢɦɟɪ, ɦɟɬɨɞ PrintOut ɩɪɢɥɨɠɟɧɢɹ Word ɢɦɟɟɬ ɨɤɨɥɨ ɞɜɚɞɰɚɬɢ
ɩɚɪɚɦɟɬɪɨɜ), ɭɫɬɚɧɨɜɥɟɧɧɵɯ ɩɨ ɭɦɨɥɱɚɧɢɸ, ɧɨ ɜ ɩɪɨɰɟɫɫɟ ɮɨɪɦɢɪɨɜɚɧɢɹ
ɤɨɦɩɨɧɟɧɬɨɜ ɜ ɫɪɟɞɟ Delphi ɞɚɧɧɵɟ ɡɧɚɱɟɧɢɹ ɬɟɪɹɸɬɫɹ ɢ ɢɯ ɜɫɟ ɪɚɜɧɨ
ɩɪɢɯɨɞɢɬɫɹ ɜɜɨɞɢɬɶ.
ɨɨɟ
ȼɜɢɞɭ ɩɟɪɟɱɢɫɥɟɧɧɵɯ ɧɟɭɞɨɛɫɬɜ ɛɨɥɶɲɢɧɫɬɜɨ ɩɪɨɝɪɚɦɦɢɫɬɨɜ ɩɪɟɞ-
ɩɨɱɢɬɚɸɬ ɢɫɩɨɥɶɡɨɜɚɬɶ ɩɨɡɞɧɟɟ ɫɜɹɡɵɜɚɧɢɟ, ɝɞɟ ɪɟɚɥɶɧɚɹ ɫɫɵɥɤɚ ɧɚ ɨɛɴ-
ɟɤɬ ɜ ɩɟɪɟɦɟɧɧɨɣ ɢɥɢ ɤɥɚɫɫɟ ɩɨɹɜɥɹɟɬɫɹ ɧɚ ɷɬɚɩɟ ɜɵɩɨɥɧɟɧɢɹ ɩɪɢɥɨɠɟ-
55
ɧɢɹ-ɤɨɧɬɪɨɥɥɟɪɚ. ɏɨɬɹ ɷɬɨɬ ɫɩɨɫɨɛ ɛɨɥɟɟ ɦɟɞɥɟɧɧɵɣ, ɱɟɦ ɪɚɧɟɟ ɫɜɹɡɵɜɚ-
ɧɢɟ, ɧɨ ɨɧ ɞɨɫɬɭɩɟɧ ɜɨ ɜɫɟɯ ɫɪɟɞɫɬɜɚɯ ɪɚɡɪɚɛɨɬɤɢ, ɩɨɡɜɨɥɹɸɳɢɯ ɫɨɡɞɚ-
ɜɚɬɶ ɤɨɧɬɪɨɥɥɟɪɵ ɚɜɬɨɦɚɬɢɡɚɰɢɢ, ɢ ɦɟɧɟɟ ɱɭɜɫɬɜɢɬɟɥɟɧ ɤ ɬɨɦɭ, ɜɫɟ ɥɢ
ɩɚɪɚɦɟɬɪɵ ɦɟɬɨɞɨɜ ɩɟɪɟɱɢɫɥɟɧɵ ɩɪɢ ɢɯ ɜɵɡɨɜɚɯ ɜ ɤɨɞɟ ɩɪɢɥɨɠɟɧɢɹ-
ɤɨɧɬɪɨɥɥɟɪɚ. ɉɪɢ ɩɨɡɞɧɟɦ ɫɜɹɡɵɜɚɧɢɢ ɤɨɪɪɟɤɬɧɨɫɬɶ ɜɵɡɨɜɨɜ ɦɟɬɨɞɨɜ
ɩɪɨɜɟɪɹɟɬɫɹ ɜ ɦɨɦɟɧɬ ɢɯ ɨɫɭɳɟɫɬɜɥɟɧɢɹ, ɬɨ ɟɫɬɶ ɧɚ ɷɬɚɩɟ ɜɵɩɨɥɧɟɧɢɹ
ɩɪɢɥɨɠɟɧɢɹ, ɚ ɧɟ ɧɚ ɷɬɚɩɟ ɟɝɨ ɤɨɦɩɢɥɹɰɢɢ.
ȼɨ ɜɫɟɯ ɩɪɢɦɟɪɚɯ ɞɚɧɧɨɣ ɝɥɚɜɵ ɢɫɩɨɥɶɡɭɟɬɫɹ ɪɚɧɧɟɟ ɫɜɹɡɵɜɚɧɢɟ.
6.1. VBA ɢ ɫɪɟɞɫɬɜɚ ɪɚɡɪɚɛɨɬɤɢ ɤɨɧɬɪɨɥɥɟɪɨɜ
ɚɜɬɨɦɚɬɢɡɚɰɢɢ
Ʉɚɤ ɭɡɧɚɬɶ, ɤɚɤɢɟ ɨɛɴɟɤɬɵ ɞɨɫɬɭɩɧɵ ɜ ɫɟɪɜɟɪɚɯ ɚɜɬɨɦɚɬɢɡɚɰɢɢ ɩɪɢ-
ɥɨɠɟɧɢɣ Microsoft Office? Ⱦɥɹ ɷɬɨɣ ɰɟɥɢ ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɞɨɤɭɦɟɧɬɚ-
ɰɢɸ, ɨɩɢɫɵɜɚɸɳɭɸ ɢɯ ɨɛɴɟɤɬɧɭɸ ɦɨɞɟɥɶ [3]. Ɍɚɤɠɟ ɦɨɝɭɬ ɛɵɬɶ ɩɨɥɟɡ-
ɧɵɦɢ ɫɩɪɚɜɨɱɧɵɟ ɮɚɣɥɵ ɞɥɹ ɩɪɨɝɪɚɦɦɢɫɬɨɜ ɧɚ Visual Basic for
Applications.
ɂɧɨɝɞɚ ɞɥɹ ɨɫɜɨɟɧɢɹ ɨɛɴɟɤɬɧɨɣ ɦɨɞɟɥɢ ɚɜɬɨɦɚɬɢɡɢɪɭɟɦɨɝɨ ɫɟɪɜɟɪɚ
ɦɨɠɧɨ ɧɚɱɚɬɶ ɫ ɡɚɩɢɫɢ ɧɟɨɛɯɨɞɢɦɨɣ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɢ ɞɟɣɫɬɜɢɣ ɜ ɜɢɞɟ
ɦɚɤɪɨɫɚ ɫ ɩɨɦɨɳɶɸ VBȺ. ɋɨɡɞɚɬɶ ɦɚɤɪɨɫ ɦɨɠɧɨ, ɜɵɛɪɚɜ ɢɡ ɦɟɧɸ ɩɪɢ-
ɥɨɠɟɧɢɹ Microsoft Office ɩɭɧɤɬ Tools/Macro/Record New Macro. ɉɪɨɫɦɨɬɪ
ɩɨɥɭɱɟɧɧɨɝɨ ɦɚɤɪɨɫɚ ɜ ɪɟɞɚɤɬɨɪɟ ɤɨɞɚ VBA (ɪɢɫ. 6.1) ɨɛɵɱɧɨ ɩɨɡɜɨɥɹɟɬ
ɩɨɧɹɬɶ, ɤɚɤ ɞɨɥɠɟɧ ɜɵɝɥɹɞɟɬɶ ɤɨɞ, ɪɟɚɥɢɡɭɸɳɢɣ ɷɬɭ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ
ɞɟɣɫɬɜɢɣ.
Ɋɢɫ. 6.1. Ɋɟɞɚɤɬɨɪ ɤɨɞɚ VBA
56
��� COM, ��� ������������ ����������� ���������� ������ �������-           ���-�����������. ���� ���� ������ ����� ���������, ��� ����� �������-
���� � ������� ������ ���������� � �����������.                            ���, �� �� �������� �� ���� ��������� ����������, ����������� �����-
     ��� ���������� Microsoft Office ������������ ���� � ��� �� ���-       ���� ����������� �������������, � ����� ������������ � ����, ��� ��
������: Visual Basic for Applications (VBA), ����������� ��������� ���-    ��������� ������� ����������� ��� �� ������� � ���� ����������-
������� ��������������� ������ ���������� Office (��� ����������           �����������. ��� ������� ���������� ������������ ������� �������
«��������� �� ���� Microsoft Office»). ���������� �� ������������          ����������� � ������ �� �������������, �� ���� �� ����� ����������
Office �� ������ ���������� �������������� � ������� �������������         ����������, � �� �� ����� ��� ����������.
(Automation) – ��� ���������� Microsoft Office �������� ��������� ��-          �� ���� �������� ������ ����� ������������ ������ ����������.
����������� (��� COM-���������). ��� �������� ����� ����������
�������� ����� �������� ����������, ����������� ��������� �������-                 6.1. VBA � �������� ���������� ������������
���� ������������� (COM-�������). �������� ����� ��� ���� ���� ��-                                �������������
���������� Visual Basic, �� ��� ����� ���� � Delphi, C++ Builder, Visual
C++ � �. �. ������, ������ ��� ��������� ����������� ��� ��� ����              ��� ������, ����� ������� �������� � �������� ������������� ���-
������� ����������, ������� �����������, ��� ����� �������������. ����-    ������� Microsoft Office? ��� ���� ���� ����� ������������ ���������-
������� ���, ��� � ��������� ������� ������������ ������ ����������        ���, ����������� �� ��������� ������ [3]. ����� ����� ���� �����-
Microsoft Office � ������� ����, ���������� � ���������������� ����-       ���� ���������� ����� ��� ������������� �� Visual Basic for
��, ����� ���� ����������� �� ����������, ���������� � ������� ����-       Applications.
�� �� ������� ����������.                                                      ������ ��� �������� ��������� ������ ����������������� �������
     �������� ������������ ���������� ���������� Microsoft Office          ����� ������ � ������ ����������� ������������������ �������� � ����
������� � ���, ��� ��� ������������� ������������� ����������� ������-     ������� � ������� VB�. ������� ������ �����, ������ �� ���� ���-
�� ������������ � ��������� �������. � ���� ��, ��������� ����������-      ������� Microsoft Office ����� Tools/Macro/Record New Macro. ��������
��, ��������� ������������ ���������� Microsoft Office � ������������      ����������� ������� � ��������� ���� VBA (���. 6.1) ������ ���������
������, ������������ ������� ������ � ������ ��������� � ����� ��          ������, ��� ������ ��������� ���, ����������� ��� ������������������
�������� Microsoft Office.                                                 ��������.
     � ������ ����� ��������� �������� �������� ���������� �������-
��� ������������ Word � Excel � ����������, ��������������� � ����-
������ ����� Delphi, �� ������ ���������� ������������� COM-
����������.
     ����������� ���������� ����� Delphi (������ 7 � ����) ���������
��������� ����������, ������ ������� ����������� ����� � COM-
���������. � ����� �������, ����� ������ � ���������������� �����-
���� �������� ��������� ����������, ��������� � ����������� �������-
��� COM, � � ������ ������� – ���������, ������������� �� ����� ���-
��������, �������� ����������� ���������, ��� ��, ������� ����������
���������� ��������. ������ ������������� �������� �������� ��,
��� ��������� ������ ����� ���������� ������� ���������� �������-
��� (��������, ����� PrintOut ���������� Word ����� ����� ��������
����������), ������������� �� ���������, �� � �������� ������������
����������� � ����� Delphi ������ �������� �������� � �� ��� �����
���������� �������.
     ����� ������������� ��������� ����������� ������������� ����-
�������� ������������ ������� ����������, ��� �������� ������ �� ���-                           ���. 6.1. �������� ���� VBA
��� � ���������� ��� ������ ���������� �� ����� ���������� �������-
                                   55                                                                       56