Страница 1 из 1

Call Clarion Object Class Method PROCEDURE with GROUP Type Variable

Добавлено: 29 Май 2017, 22:00
Developer
Привет всем!

Clarion 10.0.12278

Шаблон CapeSoft SelfService

Код: Выделить всё

SS_SERVICE_STATUS           group, type   ! API Type
ServiceType                   SS_ULONGX
CurrentState                  SS_ULONGX
ControlsAccepted              SS_ULONGX
Win32ExitCode                 SS_ULONGX
ServiceSpecificExitCode       SS_ULONGX
CheckPoint                    SS_ULONGX
WaitHint                      SS_ULONGX
                            end

MyService            Class(),Type,DLL(SelfServiceDLLMode)
! Methods
GetServiceStatus       PROCEDURE (string p_ServiceName, *SS_SERVICE_STATUS p_ServiceStatus, long p_Silent=1),long,proc ,VIRTUAL

MyService.GetServiceStatus  PROCEDURE  (string p_ServiceName, *SS_SERVICE_STATUS p_ServiceStatus, long p_Silent=1) ! Declare Procedure


gSelfService         Class(MyService)
GetServiceStatus       PROCEDURE (string p_ServiceName, *SS_SERVICE_STATUS p_ServiceStatus, long p_Silent=1),long,proc ,VIRTUAL

gSelfService.GetServiceStatus     PROCEDURE (string p_ServiceName, *SS_SERVICE_STATUS p_ServiceStatus, long p_Silent=1)

 CODE
 gSelfService.ServiceName = clip('NTServiceCapeSoftApplication')

 gSelfService.GetServiceStatus(gSelfService.ServiceName,SS_SERVICE_STATUS.CurrentState ,1)
gSelfService.GetServiceStatus(gSelfService.ServiceName,SS_SERVICE_STATUS.CurrentState ,1) - No matching prototype available :(
gSelfService.GetServiceStatus(gSelfService.ServiceName,SS_SERVICE_STATUS ,1) Cannot use TYPEd structure in this way :(
Вопрос: как правильно оформить обращение к объекту gSelfService.GetServiceStatus для получения всех значений переменной
SS_SERVICE_STATUS - состояния службы Windows?

Call Clarion Object Class Method PROCEDURE with GROUP Type Variable

Добавлено: 29 Май 2017, 22:09
Дед Пахом
Ну так SS_SERVICE_STATUS объявлена как тип, а надо передать переменную.

Call Clarion Object Class Method PROCEDURE with GROUP Type Variable

Добавлено: 29 Май 2017, 22:12
Developer
Михаил - спасибо за отклик - приведи конкретный пример - пожалуйста :wink:

Call Clarion Object Class Method PROCEDURE with GROUP Type Variable

Добавлено: 29 Май 2017, 22:21
Дед Пахом
s LIKE(SS_SERVICE_STATUS)

Call Clarion Object Class Method PROCEDURE with GROUP Type Variable

Добавлено: 29 Май 2017, 22:33
Developer
Михаил спасибо! - получилось :D