внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² 1Π‘ 8.2

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π΄Π°Π΅Ρ‚ прСдставлСниС ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² систСмС Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β».
Π‘ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для систСмы Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» вСрсии 8.2, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ОБ сСмСйства Windows с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для прСдприятий ΠΌΠ°Π»ΠΎΠ³ΠΎ бизнСса. Π’Πš Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° языкС программирования C++.

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Β«1C: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β»

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π’Πš

Π’Π½Π΅ΡˆΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° систСмы Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» прСдставлСна Π² Π²ΠΈΠ΄Π΅ DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ ΠΊΠΎΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ описываСтся класс-наслСдник IComponentBase. Π’ создаваСмом классС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ пСрСопрСдСляСмыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ описаны Π½ΠΈΠΆΠ΅ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ излоТСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°.

Запуск дСмонстрационной Π’Πš

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ

ДСмонстрационная Π’Πš располоТСна Π½Π° дискС подписки ИВБ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Β«/VNCOMP82/example/NativeAPIΒ».
Для сборки дСмонстрационной Π’Πš Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Microsoft Visual Studio 2008. Π”Ρ€ΡƒΠ³ΠΈΠ΅ вСрсии Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Visual Studio.
внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это
ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ AddInNative. Π’ настройках ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ для сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° дискС ИВБ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /VNCOMP82/include.
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ сборки являСтся Ρ„Π°ΠΉΠ» /bind/AddInNative.dll. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ скомпилированная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π’Πš ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ 1Π‘.
НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ модуля управляСмого прилоТСния.

Если ΠΏΡ€ΠΈ запускС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ Π½Π΅ Π±Ρ‹Π»ΠΎ сообщСно ΠΎΠ± ошибкС, Ρ‚ΠΎ Π’Πš Π±Ρ‹Π»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π°.
Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² глобальной видимости ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ появляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π”Π΅ΠΌΠΎΠšΠΎΠΌΠΏ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² ΠΊΠΎΠ΄Π΅ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ДСмонстрация Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запуска ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это
На панСль «БообщСния» Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π”Π΅ΠΌΠΎΠšΠΎΠΌΠΏ.Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ() ΠΈ Π”Π΅ΠΌΠΎ.Комп.Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ(). ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ содСрТат Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π’Πš сообщСний β€” Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ, Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΈ Π”Π°Π½Π½Ρ‹Π΅ соотвСтствСнно.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ имя внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Π—Π°Π΄Π°Ρ‡Π°: Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅.
Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ использовался ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ AddInNativeExtension, смысл ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ Π±Ρ‹Π» пояснСн. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС AddInNativeExtension β€” это Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.
Π’ ΠΊΠΎΠ΄Π΅ Π’Πš ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ RegisterExtensionAs, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ систСмС Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ рСгистрации Π’Πš Π² систСмС. РСкомСндуСтся ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² извСстной ΠΌΠ΅Ρ€Π΅ раскрываСт ΡΡƒΡ‚ΡŒ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.
ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° RegisterExtensionAs с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ имя Π’Πš ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° SomeName. Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π’Πš Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ имя:

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ списка свойств Π’Πš

ПолноС описаниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описан Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, поставляСмой Π½Π° дискС ИВБ.
Рассмотрим Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса CAddInNative.
Π’ дСмонстрационной Π’Πš ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ 2 свойства: Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈ Π•ΡΡ‚ΡŒΠ’Π°ΠΉΠΌΠ΅Ρ€ (IsEnabled ΠΈ IsTimerPresent).
Π’ глобальной области видимости ΠΊΠΎΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π΄Π²Π° массива:

ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят русскоС ΠΈ английскоС названия свойств. Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ AddInNative.h опрСдСляСтся пСрСчислСниС:

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ Props Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

Для Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ упрощСния ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ STL C++. Π’ частности, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками WCHAR, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ wstring.
Для сохранСния значСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ВСст, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π² классС CAddInNative Π² области видимости private ΠΏΠΎΠ»Π΅:

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ строковых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» ΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ памяти Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β». Рассмотрим Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅. Для выдСлСния ΠΈ освобоТдСния памяти соотвСтствСнно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ AllocMemory ΠΈ FreeMemory, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ ImemoryManager.h. ΠŸΡ€ΠΈ нСобходимости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ систСмС Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» строковый ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ Π½Π΅Π΅ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ AllocMemory. Π•Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π³Π΄Π΅ pMemory β€” адрСс указатСля, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ адрСс Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ участка памяти,
ulCountByte β€” Ρ€Π°Π·ΠΌΠ΅Ρ€ выдСляСмого участка памяти.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ выдСлСния памяти ΠΏΠΎΠ΄ строку:

Для удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ с строковыми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ опишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ wstring_to_p. Она ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° wstring-строку. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ являСтся заполнСнная структура tVariant. Код Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π’ΠΎΠ³Π΄Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ сСкция case ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° switch ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetPropVal ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄:

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ свойства ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΏΠΎΠ»Π΅ класса CaddInNative

Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ послСднСго ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния. Для этого Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ CaddInNative::SetPropVal Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ запросС чтСния значСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ свойства Π±ΡƒΠ΄Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ last_type, Ρ‡Π΅Π³ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅.
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Для этого ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ внСшний Π²ΠΈΠ΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ ΠΊ Π²ΠΈΠ΄Ρƒ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запуска ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сообщСний:
3
Вася
ΠŸΠ΅Ρ‚Ρ
22

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ сообщСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ чтСния свойства, установлСнного Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ сообщСния содСрТат ΠΊΠΎΠ΄ Ρ‚ΠΈΠΏΠ° послСднСго установлСнного свойства. 3 соотвСтствуСт цСлочислСнному Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, 22 β€” строковому. БоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΈΡ… ΠΊΠΎΠ΄ΠΎΠ² устанавливаСтся Π² Ρ„Π°ΠΉΠ»Π΅ types.h, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π½Π° дискС ИВБ.

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ списка ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GetNProps, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»Π° количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° «ВСст»:

ВнСсСм измСнСния Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CAddInNative::GetParamDefValue:

Благодаря Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ строкС

Π² случаС отсутствия ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (VTYPE_EMPTY). Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, слСдуСт Π·Π°Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² сСкции eMethTest ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° switch Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CAddInNative::GetParamDefValue.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ «ВСст» ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ внСсти измСнСния Π² ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ HasRetVal:

И Π΄ΠΎΠ±Π°Π²ΠΈΠΌ исполняСмый ΠΊΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CallAsFunc:

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΊ Π²ΠΈΠ΄Ρƒ:

ПослС запуска ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ сообщСниС: Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠœΠΈΡ€!Β», Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

Π’Π°ΠΉΠΌΠ΅Ρ€

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ сообщСниС WM_TIMER Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ nElapse (Π² миллисСкундах). Π’ послСднСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ срабатывании Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ (имя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ):

Рассмотрим Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² дСмонстрационной Π’Πš.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ рассматриваСм процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для ОБ сСмСйства Windows, Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. Для ОБ GNU/Linux, Π² частности, рСализация Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ синтаксисом Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetTimer ΠΈ TimerProc.
Π’ исполняСмом ΠΊΠΎΠ΄Π΅ вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ SetTimer, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся функция MyTimerProc:

Π˜Π΄Π΅Π½Ρ‚Π΅Ρ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ созданного Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° помСщаСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ m_uiTimer, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² послСдствии Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.
Ѐункция MyTimerProc выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π‘ΡƒΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сводится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ExternalEvent, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ посылаСт сообщСниС систСмС Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β».
Для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π‘Ρ‚Π°Ρ€Ρ‚Π’Π°ΠΉΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:
ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetNParams Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° eMethStartTimer Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1:

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΊΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° CallAsProc ΠΊ Π²ΠΈΠ΄Ρƒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Для этого Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ управляСмого прилоТСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ напишСм ΠΊΠΎΠ΄:

ПослС запуска ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ сообщСния с ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ Π² 2 сСкунды, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.

ВзаимодСйствиС с систСмой Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β»

Для взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΉ ΠΈ систСмой Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса IAddInDefBase, описанного Π² Ρ„Π°ΠΉΠ»Π΅ AddInDefBase.h. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅:
ГСнСрация сообщСния ΠΎΠ± ошибкС

wcode, scode β€” ΠΊΠΎΠ΄Ρ‹ ошибки (список ΠΊΠΎΠ΄ΠΎΠ² ошибок с описаниСм ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° дискС ИВБ)
source β€” источник ошибки
descr β€” описаниС ошибки
ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСния систСмС Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β»

wszSource β€” источник сообщСния
wszMessage β€” тСкст сообщСния
wszData β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅
ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ сообщСния осущСствляСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Π’Π½Π΅ΡˆΠ½Π΅Π³ΠΎΠ‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡ
РСгистрация внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² систСмС Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β»

wszProfileName β€” имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.
Π­Ρ‚ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² достаточно для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ взаимодСйствия Π’Πš ΠΈ 1Π‘. Для получСния Π΄Π°Π½Π½Ρ‹Ρ… внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΉ ΠΎΡ‚ систСмы Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° отправляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ пСрСхватываСтся систСмой Β«1Π‘Β» ΠΈ, ΠΏΡ€ΠΈ нСобходимости Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… tVariant

ΠŸΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΉ ΠΈ систСмой Β«1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅Β» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… tVariant. Он описан Π² Ρ„Π°ΠΉΠ»Π΅ types.h, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° дискС с ИВБ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ИспользованиС Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² 1Π‘. Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ внСшнюю ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ внСшнюю ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ 1Π‘, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΎΠ½Π° собой прСдставляСт Π² ΠΏΠ»Π°Π½Π΅ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ.

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ 1Π‘

Ни для ΠΊΠΎΠ³ΠΎ Π½Π΅ сСкрСт, Ρ‡Ρ‚ΠΎ 1Π‘ являСтся ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с основными тСхнологиями, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π―Π²Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этого являСтся Ole, COM, web сСрвисы, ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· xml ΠΈ Ρ‚.Π΄. ИмСя Π½Π°Π²Ρ‹ΠΊΠΈ программирования ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ/ΠΈΠ»ΠΈ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с любой cms систСмой Π² сСти ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΠΉ, которая ΠΈΠΌΠ΅Π΅Ρ‚ api Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». Но ΠΈΠ½ΠΎΠ³Π΄Π° появляСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ язык 1Π‘. Π’ этом ΠΏΠ»Π°Π½Π΅ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π½Π°ΠΌ приходят внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Говоря простым языком, внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ β€” это Π² 1Π‘ стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, скомпилированныС (собранныС) для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с внСшнСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с внСшними ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π½Π°ΠΌ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, это ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ динамичСски (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ кускС ΠΊΠΎΠ΄Π° для выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°, Π½ΡƒΠΆΠ½ΠΎ лишь Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚), Π»ΠΈΠ±ΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² систСмС.

НаиболСС ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Β«ΠΆΠ΅Π»Π΅Π·Π°Β», Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Для Ρ‚Π°ΠΊΠΎΠ³ΠΎ хранСния Π½Π°ΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ ΠΌΠ°ΠΊΠ΅Ρ‚ с Ρ‚ΠΈΠΏΠΎΠΌ Β«Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅Β»:

внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это

2. Установка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ 1Π‘. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ. Π”Π°Π»Π΅Π΅ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ. Если внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ установки ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:

внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это

Для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ нашСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна 1с Ρ‡Ρ‚ΠΎ это

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, ΠΈ Ρ‡Ρ‚ΠΎ собой прСдставляСт внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° 1Π‘.

Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ вСсьма большоС. Π‘ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ΅ сканированиС. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· этого Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ возмоТности Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ лишь ΠΈΡ… Ρ†Π΅Π»Π΅ΡΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Ρ„Π°Π½Ρ‚Π°Π·ΠΈΠ΅ΠΉ спСциалиста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ… создаСт.

Π‘Ρ‚ΠΎΠΈΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΡƒΡŽ Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ ОБ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ВСхнология создания Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚


Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

БистСма ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ самых Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ. Она ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ срСдствами конфигурирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌΠΈ срСдствами Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ систСму Π½Π° особСнности ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ Ρ‚ΠΎΠΆΠ΅ врСмя, «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» являСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ систСмой. Для связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ встроСнныС срСдства Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ-Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XML, систСма ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ стандарт ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ OLE Automation, прСдоставляСт доступ Ρ‡Π΅Ρ€Π΅Π· web-сСрвисы. Однако для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ тСсноС взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ΠΌ» ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° «Π’Схнология Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚». Данная тСхнология позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ динамичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΈ тСсно Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с систСмой «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅», Ρ€Π°ΡΡˆΠΈΡ€ΡΡ Π΅Π΅ возмоТности. Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π² частности, Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠ³ΠΎ оборудования совмСстно с «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ΠΌ». Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ ΠΊ сСрвСру прилоТСния 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ, Ρ‚Π°ΠΊ ΠΈ клиСнтским прилоТСниям, Π² Ρ‚.Ρ‡. ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.

Π’ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ поставки Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½ΠΎΠ΅ руководство ΠΈ Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

Π’ Π΄Π°Π½Π½ΠΎΠΌ руководствС описана тСхнология создания Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с использованиСм Native API ΠΈ COM.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° поставки «Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚»

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ include содСрТит Π½Π°Π±ΠΎΡ€ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² для создания Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ lib содСрТит статичСскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для построСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Mozilla Firefox, Google Chrome, Safari ΠΈ Internet Explorer.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ example содСрТит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… с использованиСм COM ΠΈ Native API. Π’ этом ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ находятся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ для мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ template содСрТит шаблон для создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΏΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Native API.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ templateMobile содСрТит шаблон для создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΏΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Native API для мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ c использованиСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Native API

Π­Ρ‚Π° тСхнология позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² клиСнтском ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΈ Π½Π° сСрвСрС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅», Π² вСрсиях для Windows, Linux, Π° Ρ‚Π°ΠΊΠΆΠ΅ Windows Runtime, Android ΠΈ iOS.

Для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Windows Runtime, Android ΠΈ iOS использованиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ.

Π’Π½Π΅ΡˆΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠΈ». ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ абстрактного класса IComponentBase (Ρ„Π°ΠΉΠ» ComponentBase.h Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ поставки) ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π’Π½Π΅ΡˆΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, разработанная ΠΏΠΎ этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

const WCHAR_T* GetClassNames()

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

long GetClassObject(const WCHAR_T* clsName, IComponentBase** pIntf)

Π’ΠΈΠΏ: IComponentBase**. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ адрСс вновь созданного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создан ΠΈΠ»ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ – возвращаСтся 0.

long DestroyObject(IComponentBase** pIntf)

Π’ΠΈΠΏ: IComponentBase**. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Ρ‚Ρ‹.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ экзСмпляра Ρ€Π°Π½Π΅Π΅ созданного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° своими срСдствами ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ ΠΈΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒ. ΠŸΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ возвращаСтся 0, ΠΈΠ½Π°Ρ‡Π΅ – ΠΊΠΎΠ΄ ошибки (Runtime error).

AppCapabilities SetPlatformCapabilities(const AppCapabilities capabilities)

УстанавливаСт Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ возмоТностСй. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Если функция Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, Ρ‚ΠΎ для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ доступны возмоТности Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний, запроса ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Если функция Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° совмСстимости ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

bool Init(void* Interface)

ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, вызывая ΠΌΠ΅Ρ‚ΠΎΠ΄ Init ΠΈ пСрСдавая ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° IAddInDefBase. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ этот ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ для дальнСйшСго использования. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ true, Ссли инициализация ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΈ false ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки.

bool setMemManager(void* memManager)

Установка ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° памяти для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‡Π΅Ρ€Π΅Π· стСк, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ AllocMemory, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ памяти. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» впослСдствии освободит эту ΠΏΠ°ΠΌΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FreeMemory.

Π’ΠΠ–ΠΠž : нСльзя Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ new ΠΈΠ»ΠΈ malloc, Ρ‚.ΠΊ. это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ памяти ΠΈ ΠΊ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅. НапримСр: вСрсия 3.56 β€” число 3560.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π½Π΅Ρ‚.

«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся нСзависимо ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΌΠ΅Ρ‚ΠΎΠ΄ Init).

bool RegisterExtensionAs(WCHAR_T** wsExtName)

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ wsExtName помСщаСтся Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. ΠŸΠ°ΠΌΡΡ‚ΡŒ для строки выдСляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ AllocMemory ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° памяти. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» освобоТдаСт эту ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ FreeMemory.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство свойств Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, 0 – ΠΏΡ€ΠΈ отсутствии свойств.

long FindProp(const WCHAR_T* wsPropName);

const WCHAR_T* GetPropName(long lPropNum, long lPropAlias)

Π’ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ помСщаСтся имя свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum; Ссли свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, возвращаСтся NULL. ΠŸΠ°ΠΌΡΡ‚ΡŒ для строки выдСляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ AllocMemory ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° памяти. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» освобоТдаСт эту ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ FreeMemory.

bool GetPropVal(const long lPropNum, tVariant* pvarPropVal)

Π’ΠΈΠΏ: tVariant*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру tVariant, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pvarPropVal помСщаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum; Ссли свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт ΠΈΠ»ΠΈ нСдоступно для чтСния, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ VTYPE_EMPTY. Если Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ строка, Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° выдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ для Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ AllocMemory. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» освободит эту ΠΏΠ°ΠΌΡΡ‚ΡŒ.

bool SetPropVal(const long lPropNum, tVariant* pvarPropVal);

Π’ΠΈΠΏ: tVariant*. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° tVariant, содСрТащая Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ pvarPropVal содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum; Ссли свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, нСдоступно для записи ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ pvarPropVal Π½Π΅ совмСстим, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ false.

bool IsPropReadable(const long lPropNum)

ВозвращаСтся Ρ„Π»Π°Π³ возмоТности чтСния свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum: false β€” свойство нСдоступно для чтСния, true β€” свойство допускаСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Если свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ false.

bool IsPropWritable(const long lPropNum)

ВозвращаСтся Ρ„Π»Π°Π³ возмоТности записи свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum: false β€” свойство нСдоступно для записи, true β€” свойство допускаСт запись. Если свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ false.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€ 0. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€ 0.

long FindMethod(const WCHAR_T* wsMethodName);

const WCHAR_T* GetMethodName(const long lMethodNum, const long lMethodAlias)

ВозвращаСтся имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ; Ссли свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, возвращаСтся NULL. ΠŸΠ°ΠΌΡΡ‚ΡŒ для строки выдСляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ AllocMemory ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° памяти. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» освобоТдаСт эту ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ FreeMemory.

long GetNParams(const long lMethodNum)

ВозвращаСтся количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lMethodNum; Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², возвращаСтся 0.

bool GetParamDefValue(const long lMethodNum, const long lParamNum, tVariant* pvarParamDefValue)

Π’ΠΈΠΏ: tVariant*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру tVariant, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pvarParamDefValue помСщаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lParamNum ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lMethodNum. Π’ pvarParamDefValue помСщаСтся Ρ‚ΠΈΠΏ VTYPE_EMPTY, Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ случаС, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ VTYPE_PSTR, VTYPE_PWSTR ΠΈΠ»ΠΈ VTYPE_BLOB, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° выдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ AllocMemory ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° памяти, записываСт Ρ‚ΡƒΠ΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ сохраняСт этот адрСс Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠ»Π΅ структуры. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» освободит эту ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ FreeMemory.

bool HasRetVal(const long lMethodNum)

ВозвращаСтся Ρ„Π»Π°Π³ наличия Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lMethodNum Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния: true для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ false Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

bool CallAsProc(const long lMethodNum, tVariant* paParams, const long lSizeArray)

ВыполняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lMethodNum. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ модуля 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ прСкращаСтся. ΠŸΠ°ΠΌΡΡ‚ΡŒ для массива ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² выдСляСтся ΠΈ освобоТдаСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ΠΌ».

bool CallAsFunc(const long lMethodNum, tVariant* pvarRetValue, tVariant* paParams, const long lSizeArray)

Π’ΠΈΠΏ: tVariant*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру tVariant, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ВыполняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lMethodNum. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ модуля 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ прСкращаСтся. ΠŸΠ°ΠΌΡΡ‚ΡŒ для массива ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² выдСляСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ΠΌ». Если Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ строка ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° выдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ AllocMemory ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° памяти, записываСт Ρ‚ΡƒΠ΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ сохраняСт этот адрСс Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠ»Π΅ структуры. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» освободит эту ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ FreeMemory.

Локализация

void SetLocale(const WCHAR_T* wsLocale)

«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² соотвСтствии с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ своС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ

ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π΅ΠΌΡƒ пСрСдаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° интСрфСйс 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΈΠΆΠ΅ пСрСчислСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° сСрвСрС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

bool AddError(unsigned short wcode, const WCHAR_T* source, const WCHAR_T* descr, long scode)

ДобавляСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ сообщСниС ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка. Если Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true – информация ΠΎΠ± ошибкС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°. Если scode ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрировано ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ срСдствами встроСнного языка «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ».

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ сообщСний ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ сообщСния ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°» для COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

bool RegisterProfileAs(WCHAR_T* wsProfileName)

РСгистрируСт список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΈΠΌΠ΅Π½Π΅ΠΌ wsProfileName.

bool Read(WCHAR_T* pszPropName, tVariant* pVal, long* pErrCode, WCHAR_T** errDescriptor)

Π’ΠΈΠΏ: WCHAR_T*. Имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Π§ΠΈΡ‚Π°Π΅Ρ‚ сохранСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΈΠΌΠ΅Π½Π΅ΠΌ pszPropName. Π’ случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ чтСния, ΠΈ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ значСния errDescriptor, «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ помСстит описаниС ошибки. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ FreeMemory. Для Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° строка, ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ выдСляСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅»ΠΌ ΠΈ адрСс сохраняСтся Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠ»Π΅ структуры tVariant. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ FreeMemory.

bool Write(WCHAR_T* pszPropName, tVariant* pVar)

Π’ΠΈΠΏ: WCHAR_T*. Имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Π’ΠΈΠΏ: tVariant _t*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

БохраняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΈΠΌΠ΅Π½Π΅ΠΌ pszPropName. Π’ случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ возвращаСтся false.

bool SetEventBufferDepth( long lDepth)

УстанавливаСт Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ событий для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Если Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ количСство событий Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ большС устанавливаСмой Π΄Π»ΠΈΠ½Ρ‹, послСдниС события ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ.

ВозвращаСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ событий для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

bool ExternalEvent(WCHAR_T* wsSource, WCHAR_T* wsMessage, WCHAR_T* wsData)

ΠŸΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ событиС Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, записывая источник события, Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ события. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ события эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Π’Π½Π΅ΡˆΠ½Π΅Π³ΠΎΠ‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡ. ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ExternalEvent дальнСйшая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° события происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: событиС записываСтся Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ событий (Ссли ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ занята, событиС тСряСтся), Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ отсутствии систСмных событий ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ бСрСтся ΠΏΠ΅Ρ€Π²ΠΎΠ΅ событиС (Ссли ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ пуста) ΠΈ запускаСтся процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… событий. Π­Ρ‚ΠΎΡ‚ процСсс повторяСтся для всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π½Π΅ΡˆΠ½ΠΈΡ… событий синхронизируСтся с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ систСмных событий.

ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ событий, удаляя всС ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ события.

bool SetStatusLine(WCHAR_T* wsStatusLine)

УстанавливаСт тСкст строки состояния.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ строку состояния.

IInterface* GetInterface(Interfaces iface)

Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ интСрфСйс ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Если Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ интСрфСйс поддСрТиваСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° интСрфСйс. Π˜Π½Π°Ρ‡Π΅ β€” 0.

bool Confirm(const WCHAR_T* queryText, tVariant* retVal)

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ с тСкстом, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ queryText, ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ОК ΠΈ ΠžΡ‚ΠΌΠ΅Π½Π°.

bool Alert(const WCHAR_T* text)

Π’ΠΈΠΏ: WCHAR_T*. ВСкст сообщСния.

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ простой Π΄ΠΈΠ°Π»ΠΎΠ³ увСдомлСния с тСкстом, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ text ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ОК.

Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½ΠΈΠΆΠ΅ 8.3.3, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»Π΅ Application структуры AppInfo.

Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

БоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² tVariant ΠΈ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ

БоотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ ΠΈ COM:

Π’ΠΈΠΏΡ‹ VTYPE_INTERFACE, VTYPE_VARIANT Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:
ЧисловыС значСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ· Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌ числовым Ρ‚ΠΈΠΏΠΎΠΌ.

Π’ΠΈΠΏ VTYPE_BLOB Π½Π΅ поддСрТиваСтся Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с использованиСм Native API

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° с использованиСм этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ являСтся платформозависимой. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ для x86 ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊ ΠΈ для x86-64. Π’ процСссС использования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ Ρ‚ΠΈΠΏ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π’Π°ΠΊ ΠΆΠ΅ слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° Π½Π° сСрвСрС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ любой ОБ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π΅Π»Π°Ρ‚ΡŒ кроссплатформСнной.

«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со строками Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Unicode (WCHAR_T) с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ символа 2 Π±Π°ΠΉΡ‚Π°. Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ совпадаСт со встроСнным Ρ‚ΠΈΠΏΠΎΠΌ wchar_t для ОБ Windows, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ОБ, Π³Π΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·ΠΌΠ΅Ρ€ wchar_t, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ 4 Π±Π°ΠΉΡ‚Π°. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… этого Ρ‚ΠΈΠΏΠ°.

Если внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, это Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π½Π΅ систСмныС run-time Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ статичСски Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ (Ссли позволяСт лицСнзия Π½Π° run-time Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ вСрсии. Π’Π°ΠΊ ΠΆΠ΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ для Windows Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ манифСст.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Ρ‹ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅, Π° информация ΠΎ Π½ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° Π² «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° AddError.

Π’ случаС использования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° сСрвСрС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ, внСшниС события Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строкой статуса ΠΈ сохранСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – сформированноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡˆΡ‚Ρ€ΠΈΡ…-ΠΊΠΎΠ΄Π°. Для этого Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΠ»Π΅ pstrVal структуры tVariant, Π² strLen – Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚ΠΈΠΏ устанавливаСтся Π² VTYPE_BLOB. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для Π½ΠΈΡ… Ρ‚ΠΈΠΏ Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‹ пСрСдаСтся Π²ΠΎ внСшнюю ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π² Π²ΠΈΠ΄Π΅ структуры tm ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° VTYPE_TM. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‹ ΠΊΠ°ΠΊ Π² struct tm, Ρ‚Π°ΠΊ ΠΈ Π² Ρ‚ΠΈΠΏΠ΅ DATE Windows, ΡƒΠΊΠ°Π·Π°Π² Ρ‚ΠΈΠΏ VTYPE_DATE. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния Ρ‚ΠΈΠΏΠ° VTYPE_ARRAY ΠΈ VTYPE_BYREF Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ.

Настройки Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ для мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅»

Π’ΠΎ врСмя настройки Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ слСдуСт провСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ дСйствиС. Π’ настройках http-сСрвСра Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ MIME для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ:

Π’ΠΈΠΏ MIME: application/octet-stream

ОБ Windows Runtime

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ ОБ Windows Runtime трСбуСтся установлСнная ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Windows 8.1 с MS Visual Studio 2017 (ΠΏΠ°ΠΊΠ΅Ρ‚ Windows Phone SDK).

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠ° динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ *.dll для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ΠΎΠ² всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… процСссоров.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ находятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ \example\NativeAPIMobile\WinRT_Proj\.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ проводится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², находящихся Π² поставкС mobile.zip\Windows\vcproj.zip:

ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ appx\ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Ρ€Ρ…ΠΈΠ²Π° поставки 1cem-XXXXX.appx.

Π”Π°Π»Π΅Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² исходныС ΠΊΠΎΠ΄Ρ‹ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС срСдства MS Visual Studio.

Для Windows Runtime Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

ОБ Android

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ΄ ОБ Android ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ написаниС ΠΊΠΎΠ΄Π° Π½Π° языкС программирования c++, Ρ‚Π°ΠΊ ΠΈ использованиС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java Native Interface.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄ ОБ Android Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠ° динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ *.so для всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… процСссоров. Π’ случаС использования ΠΊΠΎΠ΄Π° Java, Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» *.apk. Π€Π°ΠΉΠ» *.apk Π½Π΅ являСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ запуска. ВпослСдствии ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² состав собранного мобильного прилоТСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° находится Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ \example\NativeAPIMobile\Android_Proj\.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ происходит автоматичСски послС обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ) Π½Π° устройствС с Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

ОБ iOS

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ iOS Π½Π΅ позволяСт использованиС нСсистСмных динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² AppStore. Π’ связи с этим Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄ ОБ iOS Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ *.dylib для Ρ†Π΅Π»Π΅ΠΉ тСстирования, подписанный сСртификатом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для статичСской Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ *.a для сборщика прилоТСния.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ проводится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, находящСгося Π² поставкС mobile.zip\iOS\prjios.zip.

Π”Π°Π»Π΅Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² исходныС ΠΊΠΎΠ΄Ρ‹ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС срСдства Xcode.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ происходит автоматичСски послС обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ) Π½Π° устройствС с Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Начиная с вСрсии ОБ iOS 10.0, стала нСдоступна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π’ этом случаС, для Ρ†Π΅Π»Π΅ΠΉ тСстирования слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» статичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ *.a.

Подпись сСртификатом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

Подпись сСртификатом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ codesign ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

БтатичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

БтатичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° *.a ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для сборки ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ прилоТСния ΠΏΡƒΡ‚Π΅ΠΌ Π²Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

Для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠΌΠ΅Π½, ΠΊΠΎΠ΄ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ находится Π² собствСнном ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½. НаимСнованиС пространства ΠΈΠΌΠ΅Π½ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ.

РСгистрация ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ производится статичСски ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ прилоТСния. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° находится Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ \example\NativeAPIMobile\iOS_Proj\.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с использованиСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ COM

ВСхнология Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с использованиСм COM ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠΈ» Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсий (7.7, 8.0 ΠΈ 8.1).

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ΄ Windows Runtime, Android ΠΈ iOS, с использованиСм Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠŸΡ€ΠΈ использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΠ’Π½Π΅ΡˆΠ½ΡŽΡŽΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ( ) ProgID COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ пСрСдаСтся Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ строкой Π²ΠΈΠ΄Π° ProgID1| ProgID2|. |ProgIDX.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ интСрфСйс IInitDone. Π­Ρ‚ΠΎΡ‚ интСрфСйс наслСдован ΠΎΡ‚ IUnknown ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

HRESULT Init(IDispatch *pBackConnection)

Π’ΠΈΠΏ: IDispatch. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° интСрфСйс 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ.

ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, вызывая ΠΌΠ΅Ρ‚ΠΎΠ΄ Init ΠΈ пСрСдавая ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° IDispatch. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ этот ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ для дальнСйшСго использования. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ интСрфСйсы 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ QueryInterface ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΌΡƒ интСрфСйса IDispatch. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ S_OK, Ссли инициализация ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΈ E_FAIL ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс IerrorLog для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. ΠŸΡ€ΠΈ этом инициализация считаСтся Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ, Ссли ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… структур EXCEPINFO ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π΅ scode, Π½Π΅ Ρ€Π°Π²Π½ΠΎΠ΅ S_OK. ВсС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π² IErrorLog Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° свойство AppDispatch Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ.

«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ S_OK. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся нСзависимо ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΌΠ΅Ρ‚ΠΎΠ΄ Init).

HRESULT GetInfo(SAFEARRAY** pInfo)

Π’ΠΈΠΏ: SAFEARRAY**. Π”Π²ΠΎΠΉΠ½ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° массив структур VARIANT. ΠŸΠ°ΠΌΡΡ‚ΡŒ для массива выдСляСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ΠΌ».

«1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅. Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии 2.0 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² элСмСнт с индСксом 0 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ V_I4 β€” Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, ΠΏΡ€ΠΈ этом ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ вСрсии записываСтся Π² тысячныС разряды, младший Π½ΠΎΠΌΠ΅Ρ€ вСрсии β€” Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. НапримСр: вСрсия 3.56 β€” число 3560. Π’ настоящСС врСмя всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ 1.0 (соотвСтствуСт числу 1000) ΠΈΠ»ΠΈ 2.0 (соотвСтствуСт 2000). ΠŸΠ°ΠΌΡΡ‚ΡŒ для pInfo выдСляСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ΠΌ». ΠœΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ S_OK.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ обязан Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот интСрфСйс. ΠŸΡ€ΠΈ Π΅Π³ΠΎ отсутствии ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°.

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ встроСнного языка

Для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ встроСнного языка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс ILanguageExtender. Π­Ρ‚ΠΎΡ‚ интСрфСйс унаслСдован ΠΎΡ‚ IUnknown ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ встроСнного языка 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ. Для использования этого Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚ (Новый Π² «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠΈ 8»), ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΉ строку Π²ΠΈΠ΄Π° «AddIn. «, Π³Π΄Π΅ возвращаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ этого интСрфСйса. Π—Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ созданный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, вызывая Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ свойства.

ВСрсия 2.0 позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° «AddIn. «, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ вСрсии 2.0 Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ GetInfo. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС допускаСтся созданиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

HRESULT RegisterExtensionAs(BSTR *pExtensionName)

Π’ΠΈΠΏ: BSTR*. НаимСнованиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ встроСнного языка 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pExtensionName помСщаСтся Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. ΠŸΠ°ΠΌΡΡ‚ΡŒ для строки выдСляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ стандартными систСмными функциями для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM—строками (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SysAllocString. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» освобоТдаСт эту ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ SysFreeString).

HRESULT GetNProps(long* plProps)

Π’ΠΈΠΏ: long*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ количСство свойств Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство свойств Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, 0 – ΠΏΡ€ΠΈ отсутствии свойств. ΠŸΠ°ΠΌΡΡ‚ΡŒ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ plProps выдСляСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ΠΌ».

HRESULT FindProp(BSTR pszPropName,long* plPropNum)

Π’ΠΈΠΏ: BSTR. НаимСнованиС свойства.

Π’ΠΈΠΏ: long*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ порядковый Π½ΠΎΠΌΠ΅Ρ€ свойства.

HRESULT GetPropName(long lPropNum,long lAliasNum,BSTR* pPropName)

Π’ΠΈΠΏ: BSTR*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ свойства.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pPropName помСщаСтся имя свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum; Ссли свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, Π² pPropName помСщаСтся пустая строка. ΠŸΠ°ΠΌΡΡ‚ΡŒ для строки выдСляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ стандартными систСмными функциями для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM—строками (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SysAllocString. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» освобоТдаСт эту ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ SysFreeString).

HRESULT GetPropVal(long lPropNum,VARIANT* pvPropVal)

Π’ΠΈΠΏ: VARIANT*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру VARIANT, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pvPropVal помСщаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum, Ссли свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт ΠΈΠ»ΠΈ нСдоступно для чтСния, пСрСмСнная Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ VT_EMPTY.

HRESULT SetPropVal(long lPropNum, VARIANT* pvPropVal)

Π’ΠΈΠΏ: VARIANT*. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° VARIANT, содСрТащая Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ pvPropVal содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum; Ссли свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, нСдоступно для записи ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ pvPropVal Π½Π΅ приводится ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌΡƒ, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ S_FALSE.

HRESULT IsPropReadable(long lPropNum, BOOL* pboolPropReadable)

Π’ΠΈΠΏ: BOOL*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Ρ„Π»Π°Π³ возмоТности чтСния свойства.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pboolPropReadable помСщаСтся Ρ„Π»Π°Π³ возмоТности чтСния свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum: FALSE(0) β€” свойство нСдоступно для чтСния, TRUE(1) β€” свойство допускаСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Если свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ S_FALSE.

HRESULT IsPropWritable(long lPropNum, BOOL* pboolPropWritable)

Π’ΠΈΠΏ: BOOL*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Ρ„Π»Π°Π³ возмоТности записи свойства.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pboolPropWritable помСщаСтся Ρ„Π»Π°Π³ возмоТности записи свойства с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lPropNum: FALSE(0) β€” свойство нСдоступно для записи, TRUE(1) β€” свойство допускаСт запись. Если свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ S_FALSE.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€ 0. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€ 0.

HRESULT GetNMethods(long* plMethods)

Π’ΠΈΠΏ: long*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ количСство ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка.

HRESULT FindMethod(BSTR bstrMethodName, long* plMethNum)

Π’ΠΈΠΏ: long*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ порядковый Π½ΠΎΠΌΠ΅Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ methodName.

HRESULT GetMethodName(long lMethodNum, long lAliasNum, BSTR* pbstrMethName)

Π’ΠΈΠΏ: BSTR*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pbstrMethName помСщаСтся имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ; Ссли свойство с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, Π² помСщаСтся пустая строка. ΠŸΠ°ΠΌΡΡ‚ΡŒ для строки выдСляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ стандартными систСмными функциями для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM—строками (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SysAllocString. «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» освобоТдаСт эту ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ SysFreeString).

HRESULT GetNParams(long lMethodNum, long* plMethParams)

Π’ΠΈΠΏ: long*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ plMethParams помСщаСтся количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lMethodNum; Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π² помСщаСтся 0. ΠŸΠ°ΠΌΡΡ‚ΡŒ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ выдСляСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅»ΠΌ.

HRESULT GetParamDefValue(long lMethodNum, long lParamNum, VARIANT* pvParamDefVal)

Π’ΠΈΠΏ: VARIANT*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру VARIANT, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pvParamDefVal помСщаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° lParamNum ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lMethodNum. Π’ pvParamDefVal помСщаСтся Ρ‚ΠΈΠΏ VT_EMPTY, Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ отсутствуСт, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΠ°ΠΌΡΡ‚ΡŒ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ выдСляСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ΠΌ».

HRESULT HasRetVal(long lMethodNum,BOOL* pboolHasRetVal)

Π’ΠΈΠΏ: BOOL*. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Ρ„Π»Π°Π³ наличия Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ pboolHasRetVal помСщаСтся Ρ„Π»Π°Π³ наличия Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lMethodNum: TRUE для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ FALSE Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. ΠŸΠ°ΠΌΡΡ‚ΡŒ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ выдСляСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅»ΠΌ.

HRESULT CallAsProc(long lMethodNum, SAFEARRAY** pVars)

Π’ΠΈΠΏ: SAFEARRAY**. Π”Π²ΠΎΠΉΠ½ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° массив структур VARIANT, содСрТащий значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ содСрТит NULL.

ВыполняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ lMethodNum. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ E_FAIL, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ модуля 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ прСкращаСтся. ΠŸΠ°ΠΌΡΡ‚ΡŒ для массива ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² выдСляСтся «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅»ΠΌ.

HRESULT CallAsFunc(long lMethodNum, VARIANT* pRetValue, SAFEARRAY** pVars)

Π’Π΅Π³ΠΈ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ name=»β€¦» ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ сборщику ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ подсистСмы.

ВсС содСрТимоС Ρ‚Π΅Π³Π° (Ρ‚Π΅Π³ΠΎΠ²) Π±Π΅Π· Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ вносится сборщиком Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Ρ‚Π΅Π³ Ρ„Π°ΠΉΠ»Π° Info.plist.

ОписаниС Ρ„Π°ΠΉΠ»Π° ANDROID_MANIFEST_EXTENSIONS.XML

Π€Π°ΠΉΠ» ANDROID_MANIFEST_EXTENSIONS.XML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сборщиком Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ОБ Android. ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² манифСстС AndroidManifest.xml, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ добавлСния ΠΏΡ€Π°Π², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния. Π€Π°ΠΉΠ» нСобязатСлСн ΠΈ Π΅Π³ΠΎ отсутствиС расцСниваСтся сборщиком ΠΊΠ°ΠΊ отсутствиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² AndroidManifest.xml.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

ПослС стандартного Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° XML слСдуСт Ρ‚Π΅Π³ с фиксированным Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ. Π’Π΅Π³ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Ρ‚Π΅Π³Ρƒ Π² Ρ„Π°ΠΉΠ»Π°Ρ… AndroidManifest.xml.

ВсС Ρ‡Ρ‚ΠΎ находится Π² Ρ‚Π΅Π³Π°Ρ… вставится Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ xpath=»β€¦» Ρ‡Π°ΡΡ‚ΡŒ AndroidManifest.xml.

Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅Π³ ΠΈ (Ρ„Π°ΠΉΠ»ΠΎΠ² AndroidManifest.xml).

ОписаниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² для uses-permission, uses-feature ΠΈ Ρ‚.ΠΏ. ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Android.

НС рСкомСндуСтся Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Ρ‚Π΅Π³ΠΈ uses-permission Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ SDK. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌ Π² случаС сборки ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с нСсколькими внСшними ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

ОписаниС Ρ„Π°ΠΉΠ»Π° WINDOWS_RT_MANIFEST_EXTENSIONS.XML

Π€Π°ΠΉΠ» WINDOWS_RT_MANIFEST_EXTENSIONS.XML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сборщиком для ОБ Windows Runtime. ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² манифСстС AppxManifest.xml, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ добавлСния ΠΏΡ€Π°Π², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния. Π€Π°ΠΉΠ» нСобязатСлСн ΠΈ Π΅Π³ΠΎ отсутствиС расцСниваСтся сборщиком ΠΊΠ°ΠΊ отсутствиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² настройках Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π’Π΅Π³ΠΈ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ xpath=»β€¦» ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ сборщику ΠΏΡƒΠ½ΠΊΡ‚ назначСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² «Name=’XXXXX'» Π² Ρ„Π°ΠΉΠ»Π΅ AppxManifest.xml.

ОписаниС Ρ‚Π΅Π³ΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° для Windows.

ΠŸΡ€Π°Π²ΠΈΠ»Π° формирования ΠΈΠΌΠ΅Π½ΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ «1C:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅»

Π’ связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ, Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС, Π² мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСсколько Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ с Ρ†Π΅Π»ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° формирования ΠΈΠΌΠ΅Π½ΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Имя внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· латинских Π±ΡƒΠΊΠ² ΠΈ/ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ использования Π·Π½Π°ΠΊΠ° подчСркивания (_). ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ символом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Π° ΠΈΠ»ΠΈ символ подчСркивания (_). Имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ рСгистру ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСтся Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ свой ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сайт, ΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя Ρ‚Π°ΠΊΠΎΠ³ΠΎ сайта, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1c.com, Ρ‚ΠΎ имя внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с этих ΠΆΠ΅ слов, выписанных Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС: com_1c. Π’ΠΎΡ‡ΠΊΠΈ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° Π·Π½Π°ΠΊ подчСркивания (_). Π”Π°Π»Π΅Π΅ Ρ‡Π΅Ρ€Π΅Π· (_) слСдуСт имя самой внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Если имя сайта ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ трСбованиям ΠΊ ΠΈΠΌΠ΅Π½ΠΈ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ внСшняя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΊΠ°ΠΊ Π² ΠΎΠΊΠΎΠ½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, толстый ΠΊΠ»ΠΈΠ΅Π½Ρ‚), Ρ‚Π°ΠΊ ΠΈ Π² консольном (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π½Π° сСрвСрС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ ΠΈΠ»ΠΈ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅), Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ оконная систСма, ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний, Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний, Π½Π΅Ρ‚ возмоТности ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…ΡƒΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ. Π’ этом случаС, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ создании Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ окруТСния для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Π’ случаС использования Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

ΠΈΠ· систСмного ΠΏΠΎΡ‚ΠΎΠΊΠ°, Ρ‚.ΠΊ. ΠΏΠΎΠΊΠ°Π· ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ «Π·Π°Π²ΠΈΡΠ°Π½ΠΈΠ΅» прилоТСния.

Для Windows Runtime Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Для iOS Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· Web-ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° со стороны ОБ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ вСрсии iOS 9.3.5 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ОписаниС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²

Π’ поставку настоящСй ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ входят ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… с использованиСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Native API ΠΈ БОМ, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для Mozilla Firefox, Google Chrome ΠΈ Internet Explorer. ΠšΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² поставку Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ шаблон, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ созданиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ «Ρ нуля».

Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ (ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, названия ΠΈ Ρ‚.Π΄.), Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс освоСния ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ.

Π’ связи со спСцификой использования, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ отличаСтся ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Π’ Π½Π΅ΠΌ рСализуСтся ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ ΡˆΠ°Π³ΠΎΠΌΠ΅Ρ€. РасполагаСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ \example\NativeAPIMobile\.

Для ΠΏΠΎΠ»Π½ΠΎΠΉ сборки ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ понадобится CMake, вСрсии Π½Π΅ Π½ΠΈΠΆΠ΅ 3.6, NSIS для сборки инсталляторов для ОБ Windows, makeself для сборки инсталляторов для ОБ GNU/Linux.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ внСшнСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ «1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅» для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°


Бвойства

ИспользованиС: Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись.

ОписаниС: Π’ΠΈΠΏ: Π‘ΡƒΠ»Π΅Π²ΠΎ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ состояниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ОписаниС: Π’ΠΈΠΏ: Π‘ΡƒΠ»Π΅Π²ΠΎ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *