ВУЗ:
Составители:
COM-ɫɟɪɜɟɪɚ ɢɡ ɩɚɦɹɬɢ. ȿɫɥɢ ɤɚɤɨɟ-ɥɢɛɨ ɩɪɢɥɨɠɟɧɢɟ ɢɦɟɟɬ ɫɫɵɥɤɭ ɧɚ
ɥɸɛɨɣ ɤɨɦɩɨɧɟɧɬ ɫɟɪɜɟɪɚ, ɬɨ ɮɭɧɤɰɢɹ ɜɟɪɧɟɬ S_FALSE, ɜ ɩɪɨɬɢɜɧɨɦ
ɫɥɭɱɚɟ – S_TRUE. ȼ ɩɨɫɥɟɞɧɟɦ ɫɥɭɱɚɟ ɦɟɯɚɧɢɡɦ ɪɟɚɥɢɡɚɰɢɢ COM ɭɞɚɥɢɬ
COM-ɫɟɪɜɟɪ ɢɡ ɩɚɦɹɬɢ.
2.3. Ɋɚɡɪɚɛɨɬɤɚ ɤɨɦɩɨɧɟɧɬɨɜ
Ʌɸɛɨɣ COM-ɫɟɪɜɟɪ (ɜɫɬɪɨɟɧɧɵɣ ɢɥɢ ɜɧɟɲɧɢɣ) ɧɟ ɢɦɟɟɬ ɤɚɤɨɝɨ-ɥɢɛɨ
ɫɦɵɫɥɚ, ɟɫɥɢ ɜ ɧɟɦ ɧɟ ɯɪɚɧɢɬɫɹ ɯɨɬɹ ɛɵ ɨɞɢɧ ɤɨɦɩɨɧɟɧɬ.
ɑɬɨɛɵ ɜ ɪɚɡɪɚɛɚɬɵɜɚɟɦɨɦ COM-ɫɟɪɜɟɪɟ ɫɨɡɞɚɬɶ ɧɨɜɵɣ ɤɨɦɩɨɧɟɧɬ,
ɧɚɞɨ ɜɵɛɪɚɬɶ ɜ ɝɥɚɜɧɨɦ ɦɟɧɸ Delphi ɩɭɧɤɬ File/New. Ɂɚɬɟɦ ɜ ɩɨɹɜɢɜɲɟɦ-
ɫɹ ɞɢɚɥɨɝɨɜɨɦ ɨɤɧɟ New Items (ɪɢɫ. 2.1) ɧɚ ɡɚɤɥɚɞɤɟ ActiveX ɜɵɛɪɚɬɶ
ɷɥɟɦɟɧɬ COM Object. ɉɨɫɥɟ ɱɟɝɨ ɨɬɤɪɨɟɬɫɹ ɨɤɧɨ ɦɚɫɬɟɪɚ COM Object
Wizard (ɪɢɫ. 2.2).
Ɋɢɫ. 2.2. Ɇɚɫɬɟɪ COM Object Wizard
ȼ ɩɨɥɟ Class Name ɜɜɨɞɢɬɫɹ ɢɦɹ ɤɥɚɫɫɚ. ɉɪɟɮɢɤɫ «T» ɤ ɧɚɡɜɚɧɢɸ
ɨɛɴɟɤɬɚ ɞɨɛɚɜɢɬɫɹ ɚɜɬɨɦɚɬɢɱɟɫɤɢ. ɇɚɡɜɚɧɢɟ ɨɛɴɟɤɬɚ ɧɟ ɞɨɥɠɧɨ ɛɵɬɶ
ɫɥɭɠɟɛɧɵɦ ɫɥɨɜɨɦ ɢ ɫɨɜɩɚɞɚɬɶ ɫ ɢɦɟɧɟɦ COM-ɫɟɪɜɟɪɚ ɢ ɩɪɢɫɨɟɞɢɧɟɧɧɨ-
ɝɨ ɦɨɞɭɥɹ.
ɉɨɥɟ Instancing ɨɩɪɟɞɟɥɹɟɬ ɦɟɬɨɞ ɫɨɡɞɚɧɢɹ ɷɤɡɟɦɩɥɹɪɚ ɤɨɦɩɨɧɟɧɬɚ
ɢ ɚɤɬɭɚɥɶɧɨ ɬɨɥɶɤɨ ɞɥɹ ɜɧɟɲɧɢɯ COM-ɫɟɪɜɟɪɨɜ:
17
Internal (ɜɧɭɬɪɟɧɧɢɣ) – ɢɫɩɨɥɶɡɭɟɬɫɹ ɬɨɥɶɤɨ ɞɥɹ ɤɨɦɩɨɧɟɧɬɨɜ, ɤɨ-
ɬɨɪɵɟ ɧɟ ɩɪɟɞɩɨɥɚɝɚɟɬɫɹ ɫɞɟɥɚɬɶ ɞɨɫɬɭɩɧɵɦɢ ɞɥɹ ɤɥɢɟɧɬɫɤɢɯ ɩɪɢɥɨɠɟ-
ɧɢɣ. Ɂɚɩɪɚɲɢɜɚɬɶ ɫɨɡɞɚɧɢɟ ɷɤɡɟɦɩɥɹɪɚ ɬɚɤɨɝɨ ɤɨɦɩɨɧɟɧɬɚ ɪɚɡɪɟɲɟɧɨ
ɬɨɥɶɤɨ ɫɨɛɫɬɜɟɧɧɨɦɭ COM-ɫɟɪɜɟɪɭ;
Single Instance (ɟɞɢɧɫɬɜɟɧɧɵɣ ɷɤɡɟɦɩɥɹɪ) – ɞɥɹ ɤɚɠɞɨɝɨ ɤɥɢɟɧɬ-
ɫɤɨɝɨ ɩɪɢɥɨɠɟɧɢɹ ɞɨɩɭɫɤɚɟɬɫɹ ɫɨɡɞɚɧɢɟ ɬɨɥɶɤɨ ɨɞɧɨɝɨ ɷɤɡɟɦɩɥɹɪɚ ɤɨɦ-
ɩɨɧɟɧɬɚ. ɉɪɢɥɨɠɟɧɢɟ, ɡɚɩɪɚɲɢɜɚɸɳɟɟ ɤɨɦɩɨɧɟɧɬ, ɛɭɞɟɬ ɪɚɛɨɬɚɬɶ ɫ ɫɨɛ-
ɫɬɜɟɧɧɨɣ ɨɬɞɟɥɶɧɨɣ ɤɨɩɢɟɣ COM-ɫɟɪɜɟɪɚ;
Multiple Instance (ɦɧɨɠɟɫɬɜɨ ɷɤɡɟɦɩɥɹɪɨɜ) – COM-ɫɟɪɜɟɪ ɫɩɨɫɨɛɟɧ
ɫɨɡɞɚɜɚɬɶ ɦɧɨɠɟɫɬɜɨ ɤɨɩɢɣ ɤɨɦɩɨɧɟɧɬɚ. ɉɪɢ ɡɚɩɪɨɫɟ ɧɨɜɨɝɨ ɷɤɡɟɦɩɥɹɪɚ
ɤɨɦɩɨɧɟɧɬɚ ɧɨɜɵɣ ɫɟɪɜɟɪ ɧɟ ɡɚɩɭɫɤɚɟɬɫɹ (ɟɫɥɢ ɨɧ ɭɠɟ ɡɚɩɭɳɟɧ ɪɚɧɟɟ), ɚ
ɫɨɡɞɚɟɬɫɹ ɧɨɜɵɣ ɷɤɡɟɦɩɥɹɪ COM-ɨɛɴɟɤɬɚ.
Threading model – ɨɩɪɟɞɟɥɹɟɬ ɬɢɩ ɩɨɞɞɟɪɠɢɜɚɟɦɨɣ ɦɨɞɟɥɢ ɩɨɬɨ-
ɤɨɜ ɡɚɞɚɱ. Ⱦɚɧɧɵɣ ɩɚɪɚɦɟɬɪ ɚɤɬɭɚɥɟɧ ɬɨɥɶɤɨ ɤ ɜɫɬɪɨɟɧɧɵɦ COM-
ɫɟɪɜɟɪɚɦ ɢ ɦɨɠɟɬ ɩɪɢɧɢɦɚɬɶ ɫɥɟɞɭɸɳɢɟ ɡɧɚɱɟɧɢɹ:
Single (ɨɞɧɨɩɨɬɨɤɨɜɚɹ) – ɜɫɟ ɡɚɹɜɤɢ ɧɚ ɞɨɫɬɭɩ ɤ ɤɨɦɩɨɧɟɧɬɭ ɜɵ-
ɫɬɪɚɢɜɚɸɬɫɹ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɨɣ Windows ɜ ɨɱɟɪɟɞɶ, ɬɚɤ ɱɬɨ ɧɟɬ ɧɟ-
ɨɛɯɨɞɢɦɨɫɬɢ ɛɟɫɩɨɤɨɢɬɶɫɹ ɨ ɬɨɦ, ɱɬɨ ɧɟɫɤɨɥɶɤɨ ɩɨɬɨɤɨɜ ɦɨɝɭɬ ɨɞɧɨɜɪɟ-
ɦɟɧɧɨ ɢɦɟɬɶ ɞɨɫɬɭɩ ɤ ɫɟɪɜɟɪɭ;
Apartment (ɫɟɤɰɢɨɧɢɪɨɜɚɧɧɚɹ) – ɤɨɦɩɨɧɟɧɬɵ ɨɛɪɚɛɚɬɵɜɚɸɬ ɡɚɩɪɨ-
ɫɵ ɬɨɥɶɤɨ ɢɡ ɬɨɝɨ ɠɟ ɩɨɬɨɤɚ, ɤɨɬɨɪɵɣ ɢɯ ɩɨɪɨɞɢɥ. Ɉɞɢɧ ɫɟɪɜɟɪ ɦɨɠɟɬ
ɷɤɫɩɨɪɬɢɪɨɜɚɬɶ ɦɧɨɠɟɫɬɜɨ COM-ɨɛɴɟɤɬɨɜ, ɩɪɢɱɟɦ ɤɚɠɞɵɣ ɢɡ ɧɢɯ ɦɨɠɟɬ
ɛɵɬɶ ɫɨɡɞɚɧ ɜ ɞɪɭɝɨɦ ɩɨɬɨɤɟ, ɩɨɷɬɨɦɭ ɬɪɟɛɭɟɬɫɹ ɫɢɧɯɪɨɧɢɡɚɰɢɹ ɞɨɫɬɭɩɚ ɤ
ɥɸɛɵɦ ɝɥɨɛɚɥɶɧɵɦ ɞɚɧɧɵɦ, ɤɨɬɨɪɵɟ ɨɩɪɟɞɟɥɟɧɵ ɜ ɫɟɪɜɟɪɟ ɩɨɫɪɟɞɫɬɜɨɦ
ɦɶɸɬɟɤɫɨɜ,
ɫɨɛɵɬɢɣ, ɤɪɢɬɢɱɟɫɤɢɯ ɫɟɤɰɢɣ ɢɬ. ɩ.
Free (ɫɜɨɛɨɞɧɚɹ) – ɦɧɨɠɟɫɬɜɨ ɩɨɬɨɤɨɜ ɦɨɠɟɬ ɛɵɬɶ ɚɤɬɢɜɧɨ ɜ ɥɸ-
ɛɨɦ ɞɚɧɧɨɦ ɤɨɦɩɨɧɟɧɬɟ ɜ ɨɞɧɨ ɢ ɬɨ ɠɟ ɜɪɟɦɹ. ȼɫɥɟɞɫɬɜɢɟ ɷɬɨɝɨ ɧɭɠɧɨ
ɩɨɡɚɛɨɬɢɬɶɫɹ ɨ ɫɢɧɯɪɨɧɢɡɚɰɢɢ ɞɨɫɬɭɩɚ ɧɟ ɬɨɥɶɤɨ ɤ ɝɥɨɛɚɥɶɧɵɦ ɞɚɧɧɵɦ,
ɧɨ ɢ ɤ ɥɨɤɚɥɶɧɵɦ;
Both (ɢ ɫɟɤɰɢɨɧɧɚɹ ɢ ɫɜɨɛɨɞɧɚɹ) – ɤɨɦɩɨɧɟɧɬ ɞɨɥɠɟɧ ɫɢɧɯɪɨɧɢɡɢ-
ɪɨɜɚɬɶ ɫɜɨɣ ɫɨɛɫɬɜɟɧɧɵɣ ɞɨɫɬɭɩ ɤ ɷɤɡɟɦɩɥɹɪɚɦ ɤɨɦɩɨɧɟɧɬɨɜ, ɧɚɫɬɪɨɟɧ-
ɧɵɯ ɧɚ ɫɟɤɰɢɨɧɢɪɨɜɚɧɧɭɸ ɦɨɞɟɥɶ, ɢ ɜɵɩɨɥɧɹɬɶ ɦɚɪɲɪɭɬɢɡɚɰɢɸ ɩɚɪɚ-
ɦɟɬɪɨɜ ɦɟɠɞɭ ɩɨɬɨɤɚɦɢ;
ȼ ɩɨɥɟ Implemented interfaces ɱɟɪɟɡ ɡɚɩɹɬɭɸ ɜɜɨɞɹɬɫɹ ɧɚɡɜɚɧɢɹ ɢɧ-
ɬɟɪɮɟɣɫɨɜ, ɤɨɬɨɪɵɟ ɛɭɞɟɬ ɩɨɞɞɟɪɠɢɜɚɬɶ ɤɨɦɩɨɧɟɧɬ.
ɉɨɥɟ Description ɩɪɟɞɧɚɡɧɚɱɟɧɨ ɞɥɹ ɜɜɨɞɚ ɡɚɦɟɱɚɧɢɣ ɢɥɢ ɫɬɪɨɤɢ-
ɨɩɢɫɚɧɢɹ ɨɛɴɟɤɬɚ.
Ʉɨɝɞɚ ɜɵɛɢɪɚɟɬɫɹ ɨɩɰɢɹ Include Type Library, ɤ ɨɩɢɫɚɧɢɸ Ʉɨɦɩɨɧɟɧ-
ɬɚ ɩɨɞɤɥɸɱɚɟɬɫɹ ɛɢɛɥɢɨɬɟɤɚ ɬɢɩɨɜ. Ȼɢɛɥɢɨɬɟɤɢ ɬɢɩɨɜ ɪɚɡɨɛɪɚɧɵ ɜ ɬɪɟɬɶ-
ɟɣ ɝɥɚɜɟ.
Ʉɨɦɩɨɧɟɧɬɵ ɜ Delphi ɨɩɢɫɵɜɚɸɬɫɹ ɬɚɤ ɠɟ, ɤɚɤ ɢ ɤɥɚɫɫɵ ɨɛɴɟɤɬɨɜ:
18
COM-������� �� ������. ���� �����-���� ���������� ����� ������ �� Internal (����������) – ������������ ������ ��� �����������, ��- ����� ��������� �������, �� ������� ������ S_FALSE, � ��������� ����� �� �������������� ������� ���������� ��� ���������� �������- ������ – S_TRUE. � ��������� ������ �������� ���������� COM ������ ���. ����������� �������� ���������� ������ ���������� ��������� COM-������ �� ������. ������ ������������ COM-�������; Single Instance (������������ ���������) – ��� ������� ������- ����� ���������� ����������� �������� ������ ������ ���������� ���- 2.3. ���������� ����������� �������. ����������, ������������� ���������, ����� �������� � ���- �������� ��������� ������ COM-�������; ����� COM-������ (���������� ��� �������) �� ����� ������-���� Multiple Instance (��������� �����������) – COM-������ �������� ������, ���� � ��� �� �������� ���� �� ���� ���������. ��������� ��������� ����� ����������. ��� ������� ������ ���������� ����� � ��������������� COM-������� ������� ����� ���������, ���������� ����� ������ �� ����������� (���� �� ��� ������� �����), � ���� ������� � ������� ���� Delphi ����� File/New. ����� � ���������- ��������� ����� ��������� COM-�������. �� ���������� ���� New Items (���. 2.1) �� �������� ActiveX ������� Threading model – ���������� ��� �������������� ������ ����- ������� COM Object. ����� ���� ��������� ���� ������� COM Object ��� �����. ������ �������� �������� ������ � ���������� COM- Wizard (���. 2.2). �������� � ����� ��������� ��������� ��������: Single (�������������) – ��� ������ �� ������ � ���������� ��- ����������� ������������ �������� Windows � �������, ��� ��� ��� ��- ����������� ������������ � ���, ��� ��������� ������� ����� �������- ����� ����� ������ � �������; Apartment (����������������) – ���������� ������������ �����- �� ������ �� ���� �� ������, ������� �� �������. ���� ������ ����� �������������� ��������� COM-��������, ������ ������ �� ��� ����� ���� ������ � ������ ������, ������� ��������� ������������� ������� � ����� ���������� ������, ������� ���������� � ������� ����������� ���������, �������, ����������� ������ � �. �. Free (���������) – ��������� ������� ����� ���� ������� � ��- ��� ������ ���������� � ���� � �� �� �����. ���������� ����� ����� ������������ � ������������� ������� �� ������ � ���������� ������, �� � � ���������; Both (� ���������� � ���������) – ��������� ������ ����������- ������ ���� ����������� ������ � ����������� �����������, ��������- ��� �� ���������������� ������, � ��������� ������������� ����- ������ ����� ��������; ���. 2.2. ������ COM Object Wizard � ���� Implemented interfaces ����� ������� �������� �������� ��- ���������, ������� ����� ������������ ���������. � ���� Class Name �������� ��� ������. ������� «T» � �������� ���� Description ������������� ��� ����� ��������� ��� ������- ������� ��������� �������������. �������� ������� �� ������ ���� �������� �������. ��������� ������ � ��������� � ������ COM-������� � �������������- ����� ���������� ����� Include Type Library, � �������� ��������- �� ������. �� ������������ ���������� �����. ���������� ����� ��������� � �����- ���� Instancing ���������� ����� �������� ���������� ���������� �� �����. � ��������� ������ ��� ������� COM-��������: ���������� � Delphi ����������� ��� ��, ��� � ������ ��������: 17 18
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »