Hard Call в VB6
fixin — 09.09.2015
На VB6 у меня написана внешняя компонента для биометрии Anviz. Хотел сделать, чтобы можно было вызывать метод самой компоненты по имени.
Для этого сделал функцию Hard Call, но не нашел, как вызвать метод VB6 по имени. Поэтому тупо обошелся Select Case (под катом).
Какое-то время бился, чтобы найти способ разыменования, но не нашел.
Правда, набор функций API Anviz ограничен, так что хоть и не универсально получилось, но работает.
Лучшее - враг хорошего.

Function localHardCall(ParamVal() As Variant)
'MsgBox "ParamVal1: " & ParamVal(1)
Select Case ParamVal(1)
Case "CKT_SetDeviceAdminPassword"
localHardCall =
CKT_SetDeviceAdminPassword(ParamVal(0), ParamVal(2))
Case "CKT_SetSpeakerVolume"
localHardCall =
CKT_SetSpeakerVolume(ParamVal(0), ParamVal(2))
Case "CKT_SetRealtimeMode"
localHardCall =
CKT_SetRealtimeMode(ParamVal(0), ParamVal(2))
Case "CKT_SetRingAllow"
localHardCall =
CKT_SetRingAllow(ParamVal(0), ParamVal(2))
Case "CKT_SetDoor"
localHardCall =
CKT_SetDoor(ParamVal(0), ParamVal(2))
Case "CKT_SetWG"
localHardCall =
CKT_SetWG(ParamVal(0), ParamVal(2))
Case "CKT_SetRepeatKQ"
localHardCall =
CKT_SetRepeatKQ(ParamVal(0), ParamVal(2))
Case "CKT_SetAutoUpdate"
localHardCall =
CKT_SetAutoUpdate(ParamVal(0), ParamVal(2))
Case "CKT_SetWorkCode"
localHardCall =
CKT_SetWorkCode(ParamVal(0), ParamVal(2))
Case "CKT_SetSleepTime"
localHardCall =
CKT_SetSleepTime(ParamVal(0), ParamVal(2))
Case "CKT_SetDeviceSno"
localHardCall =
CKT_ModifyDeviceSno(ParamVal(0), ParamVal(2))
Case "CKT_SetDateTimeFormat"
localHardCall =
CKT_SetDateTimeFormat(ParamVal(0), Int(ParamVal(2) / 10),
ParamVal(2) Mod 10)
|
|
</> |
Онлайн-ТВ как часть цифровой медиасреды
Кая Каллас - жертва ЕГ?
Почему английские звуки кажутся сложными и как их освоить
Война на Украине (06.12.25): очередной крупный прорыв фронта ВСУ...
Пятничная вакханалия
За Вильяма нашего Шекспира
Персонажи дорам, которые набили оскомину
Уникальный взгляд на непростую сферу инноваций (с)
Отпуск, продолжение с неожиданным выводом.

