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)
|
|
</> |
Инспектор ПДН и школа давят на ребенка: законно ли это и как защитить сына в 2026 году?
Передовитые эльфийские манагеры держат покерфейс, разоряя турбированных хомяков
А день заметно прибавился!
Властелин ветров
семь
Пятница 13 
