Announcement

Collapse
No announcement yet.

using a 3rd party activex control

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • using a 3rd party activex control

    This COM stuff isn't as easy as falling off a log, is it? I want to use an ActiveX control provided by the people I work for. It has about 70 functions for controlling a small motor via a USB port. The simplest function just throws an About Box up on the screen, so I thought I'd start there. My objects seem to create ok, but no about box displays. I just modded the MSAgent demo code. Any thoughts on what more I need to do?

    Code:
    'Attempt to use 3rd party ActiveX Control
    
    #COMPILER PBWIN 9
    #COMPILE EXE
    #DIM ALL
    
    %ID_START      = 1000
    %ID_STOP       = 1001
    %ID_EVENTLIST  = 1003
    
    GLOBAL hDlg AS LONG
    
    #INCLUDE "NstSquiggleCtrl.inc"                ' NST ActiveX control file generated by PBrow.exe
    #INCLUDE "Win32api.inc"                       ' Win32 Api include file
    
    CALLBACK FUNCTION DlgProc
      STATIC MotorFunc AS Int__DNstSquiggleCtrl
      STATIC MotorEvents AS Int__DNstSquiggleCtrlEvents
    
      SELECT CASE AS LONG CBMSG
    
        CASE %WM_INITDIALOG
          LET MotorFunc = NEWCOM $PROGID_NstSquiggleCtrlLib_NstSquiggleCtrl1
          IF ISFALSE(ISOBJECT(MotorFunc)) THEN ? "Creation of Motor Object failed" ELSE ? "MotorFunc Object Created OK"
                
          MotorEvents = CLASS "CLASS_Int__DNstSquiggleCtrlEvents"
          IF ISFALSE(ISOBJECT(MotorEvents)) THEN ? "Creation of Motor Events Object failed" ELSE ? " Motor Events Object Created OK"
          
          EVENTS FROM MotorFunc CALL MotorEvents
          
          CONTROL ENABLE CBHNDL, %ID_START
        CASE %WM_COMMAND
          SELECT CASE AS LONG CBCTL
            CASE %ID_START
              IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                OBJECT CALL MotorFunc.AboutBox      '********** NO ABOUT BOX DISPLAYS ***********
                CONTROL DISABLE CBHNDL, %ID_START
                CONTROL ENABLE  CBHNDL, %ID_STOP
              END IF
    
            CASE %ID_STOP
              IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                BEEP
                CONTROL ENABLE  CBHNDL, %ID_START
                CONTROL DISABLE CBHNDL, %ID_STOP
              END IF
          END SELECT
    
        CASE %WM_DESTROY
            IF ISTRUE(ISOBJECT(MotorEvents)) THEN
                EVENTS END MotorEvents
            END IF
    
      END SELECT
    END FUNCTION
    
    FUNCTION PBMAIN () AS LONG
      DIALOG NEW 0, "Squiggle ActiveX Test", 201, 122, 198, 115, %WS_POPUP OR %WS_BORDER OR %WS_DLGFRAME OR %WS_CAPTION OR _
        %WS_SYSMENU OR %WS_MINIMIZEBOX OR %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR %DS_3DLOOK OR _
        %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _
        %WS_EX_RIGHTSCROLLBAR, TO hDlg
      CONTROL ADD BUTTON,  hDlg, %ID_START, "About", 5, 5, 50, 15, %WS_CHILD OR %WS_VISIBLE OR %WS_DISABLED OR _
        %WS_TABSTOP OR %BS_TEXT OR %BS_PUSHBUTTON OR %BS_CENTER OR %BS_VCENTER, %WS_EX_LEFT OR %WS_EX_LTRREADING
      CONTROL ADD BUTTON,  hDlg, %ID_STOP, "Stop", 5, 25, 50, 15, %WS_CHILD OR %WS_VISIBLE OR %WS_DISABLED OR _
        %WS_TABSTOP OR %BS_TEXT OR %BS_PUSHBUTTON OR %BS_CENTER OR %BS_VCENTER, %WS_EX_LEFT OR %WS_EX_LTRREADING
      'CONTROL ADD LISTBOX, hDlg, %ID_EVENTLIST, , 70, 0, 125, 110,  %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %WS_VSCROLL, _
      '  %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR
    
      DIALOG SHOW MODAL hDlg, CALL DlgProc
    END FUNCTION

  • #2
    To use a visual AxtiveX control you need an OLE container. What you have to do depends of the container. Here is an example of how to embed the Windows Media Player ActiveX control using ATL.DLL as the container: http://www.jose.it-berater.org/smffo...p?topic=2714.0
    Forum: http://www.jose.it-berater.org/smfforum/index.php

    Comment


    • #3
      Thanks- I'll try that tonight!

      Comment


      • #4
        Hi Jose- the amount of work you've done with this stuff just boggles the mind! I see about what's going on, but can't compile the examples. I assume the two include files are created with the PBrowser (does the version of Media Player matter?), and what file do the equates like %true come from? That's where my compile fails.

        Comment


        • #5
          To compile the examples without modification you need to use my new include files instead of the ones provided by PB. You can download them at http://www.jose.it-berater.org/smffo...sg8191#msg8191

          I also have my own browser: http://www.jose.it-berater.org/index.html
          Forum: http://www.jose.it-berater.org/smfforum/index.php

          Comment


          • #6
            That fixed up the compile, but still no joy with my control. Oddly, the program does succeed in bringingup my dial-up window! This control drops into VB and C++ programs at work- a C++ and VB-centric place, but it would be really nice if I could get it to work through PB. Here's what I tried-

            Code:
            ' attempt to use activex motor controller
            
            #COMPILE EXE
            #DIM ALL
            #INCLUDE ONCE "ATL.INC"               ' from Jose file collection
            #INCLUDE ONCE "NSTSQUIGGLECTRL.INC"   ' from PBrowser
            %ID_NST = 1001
            
            ' ========================================================================================
            ' Main
            ' ========================================================================================
            FUNCTION WINMAIN (BYVAL hInstance AS DWORD, BYVAL hPrevInstance AS DWORD, BYVAL lpszCmdLine AS ASCIIZ PTR, BYVAL nCmdShow AS LONG) AS LONG
            
               LOCAL hDlg AS LONG
               AtlAxWinInit  ' // Initialize ATL - must be called before creating an AtlAxWin71 window
               DIALOG NEW 0, "Motor ActiveX Demo", , , 400, 240, %WS_OVERLAPPED OR %WS_THICKFRAME OR %WS_SYSMENU OR _
               %WS_MINIMIZEBOX OR %WS_MAXIMIZEBOX OR %WS_VISIBLE OR %DS_CENTER TO hDlg
               CONTROL ADD "AtlAxWin", hDlg, %ID_NST, "NstSquiggleCtrl.ocx", 0, 0, 0, 0, %WS_VISIBLE OR %WS_CHILD
            
               DIALOG SHOW MODAL hDlg, CALL DlgProc
            
            END FUNCTION
            ' ========================================================================================
            
            ' ========================================================================================
            ' Main Dialog procedure
            ' ========================================================================================
            CALLBACK FUNCTION DlgProc() AS LONG
            
               LOCAL MotorFunc AS Int__DNstSquiggleCtrl
            
               SELECT CASE CBMSG
            
                  CASE %WM_INITDIALOG
                     ' Get the IDispatch of the control
                     MotorFunc = AtlAxGetDispatch(GetDlgItem(CBHNDL, %ID_NST))
                     IF ISTRUE ISOBJECT(MotorFunc) THEN
                        MotorFunc.AboutBox()               'error 598, METHOD or PROPERTY name expected
                                                           'if I use OBJECT CALL  or  no function I get a dial up window!
                        MotorFunc = NOTHING
                     END IF
            
                  CASE %WM_COMMAND
                     SELECT CASE CBCTL
                        CASE %IDOK
                           IF CBCTLMSG = %BN_CLICKED THEN
                           END IF
                        CASE %IDCANCEL
                           IF CBCTLMSG = %BN_CLICKED THEN DIALOG END CBHNDL, 0
                     END SELECT
            
               END SELECT
            
            END FUNCTION
            ' ========================================================================================
            I've no doubt my problems are due to my complete lack of understanding of this stuff, but maybe it will also help if I post the PBrowser include file I'm using:
            Code:
            ' Generated by: PowerBASIC COM Browser v.2.00.0058
            ' DateTime    : 8/28/2008 at 9:59 PM
            ' ------------------------------------------------
            ' Library Name: NstSquiggleCtrlLib
            ' Library File: C:\Program Files\New Scale Technologies\OcxCtrls\NstSquiggleCtrl.ocx
            ' Description : NstSquiggleCtrl ActiveX Control module
            ' Help File : C:\Program Files\New Scale Technologies\OcxCtrls\NstSquiggleCtrl.hlp
            ' Help Context : 0
            ' GUID : {7E571154-E5EC-4AB6-A1DC-3E18C2438E51}
            ' LCID : 0
            ' Version : 1.0
            
            ' Version Dependant ProgID's
            $PROGID_NstSquiggleCtrlLib_NstSquiggleCtrl1 = "NSTSQUIGGLECTRL.NstSquiggleCtrlCtrl.1"
            
            ' Class Indentifiers
            $CLSID_NstSquiggleCtrlLib_NstSquiggleCtrl = GUID$("{8D226E4F-527B-4DDD-940B-A1D927BB8BCE}")
            $CLSID_NstSquiggleCtrlLib_Event__DNstSquiggleCtrlEvents = GUID$("{47E43D15-CC58-495E-82AD-7C0F52AE5F7C}")
            
            ' Interface Indentifiers
            $IID_NstSquiggleCtrlLib_Int__DNstSquiggleCtrl = GUID$("{6C302104-F021-419C-A3AD-0C8080D10BEE}")
            $IID_NstSquiggleCtrlLib_Int__DNstSquiggleCtrlEvents = GUID$("{CD1D39E3-B43A-4C5A-922B-BD9C1B3393EB}")
            
            ' Macros
            MACRO enumDir = LONG
            MACRO enumUnits = LONG
            MACRO enumTraj = LONG
            
            ' __MIDL___MIDL_itf_NstSquiggleCtrl_0000_0001 enumeration
            %Dir_Reverse = 0
            %Dir_Forward = 1
            
            ' __MIDL___MIDL_itf_NstSquiggleCtrl_0000_0002 enumeration
            %Units_enc = 0
            %Units_nm = 1
            %Units_um = 2
            %Units_mm = 3
            %Units_in = 4
            %Units_uRad = 5
            %Units_Rad = 6
            %Units_aSec = 7
            %Units_deg = 8
            %Units_grad = 9
            
            ' __MIDL___MIDL_itf_NstSquiggleCtrl_0000_0003 enumeration
            %Target_Absolute = 0
            %Target_Relative = 1
            
            
            ' Interface Name  : Int__DNstSquiggleCtrl
            ' Description     : Dispatch interface for NstSquiggleCtrl Control
            ' ClassID         : $CLSID_NstSquiggleCtrlLib_NstSquiggleCtrl
            INTERFACE IDBIND Int__DNstSquiggleCtrl
                MEMBER CALL AboutBox <-552> ()
                MEMBER CALL Get_PortBaudRate <2> (IN PortIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_PortBaudRate <2> (IN PortIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL Get_IsPortOpen <8> (IN PortIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_IsPortOpen <8> (IN PortIndex AS LONG<0>, IN Rhs AS INTEGER<1>)
                MEMBER CALL Get_PortAxes <9> (IN PortIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_PortAxes <9> (IN PortIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL Get_AxisPort <11> (IN AxisIndex AS LONG<0>) AS STRING
                MEMBER CALL Set_AxisPort <11> (IN AxisIndex AS LONG<0>, IN Rhs AS STRING<1>)
                MEMBER CALL Get_PosUnits <12> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_PosUnits <12> (IN AxisIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL Get_SpdUnits <13> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_SpdUnits <13> (IN AxisIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL Get_EncUnits <14> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_EncUnits <14> (IN AxisIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL Get_EncResolution <15> (IN AxisIndex AS LONG<0>) AS DOUBLE
                MEMBER CALL Set_EncResolution <15> (IN AxisIndex AS LONG<0>, IN Rhs AS DOUBLE<1>)
                MEMBER CALL Get_TangentDriveRadius <16> (IN AxisIndex AS LONG<0>) AS DOUBLE
                MEMBER CALL Set_TangentDriveRadius <16> (IN AxisIndex AS LONG<0>, IN Rhs AS DOUBLE<1>)
                MEMBER CALL Get_EncRefEnable <17> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_EncRefEnable <17> (IN AxisIndex AS LONG<0>, IN Rhs AS INTEGER<1>)
                MEMBER CALL Get_CL_Enable <18> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_CL_Enable <18> (IN AxisIndex AS LONG<0>, IN Rhs AS INTEGER<1>)
                MEMBER CALL Get_CL_Interval <19> (IN AxisIndex AS LONG<0>) AS DOUBLE
                MEMBER CALL Set_CL_Interval <19> (IN AxisIndex AS LONG<0>, IN Rhs AS DOUBLE<1>)
                MEMBER CALL Get_Position <20> (IN AxisIndex AS LONG<0>) AS DOUBLE
                MEMBER CALL Set_Position <20> (IN AxisIndex AS LONG<0>, IN Rhs AS DOUBLE<1>)
                MEMBER CALL Get_Status <21> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_Status <21> (IN AxisIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL Get_PosError <22> (IN AxisIndex AS LONG<0>) AS DOUBLE
                MEMBER CALL Set_PosError <22> (IN AxisIndex AS LONG<0>, IN Rhs AS DOUBLE<1>)
                MEMBER CALL Get_OL_SpeedRatio <23> (IN AxisIndex AS LONG<0>) AS DOUBLE
                MEMBER CALL Set_OL_SpeedRatio <23> (IN AxisIndex AS LONG<0>, IN Rhs AS DOUBLE<1>)
                MEMBER CALL Get_OL_DriveMode <24> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_OL_DriveMode <24> (IN AxisIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL QueryPosStatus <25> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL MoveAbsolute <26> (IN AxisIndex AS LONG<0>, IN PB_Target AS DOUBLE<1>) AS LONG
                MEMBER CALL MoveRelative <27> (IN Index AS LONG<0>, IN Distance AS DOUBLE<1>) AS LONG
                MEMBER CALL MoveMtrSteps <28> (IN Index AS LONG<0>, IN Dir AS LONG<1>, IN COUNT AS LONG<2>, IN Period AS DOUBLE<3>, IN _
                    DutyCycle AS DOUBLE<4>) AS LONG
                MEMBER CALL FreeRun <29> (IN AxisIndex AS LONG<0>, IN Dir AS LONG<1>, IN Duration AS DOUBLE<2>) AS LONG
                MEMBER CALL STOP <30> (IN AxisIndex AS LONG<0>, IN Decelerate AS INTEGER<1>) AS LONG
                MEMBER CALL GetCL_Speed <31> (IN AxisIndex AS LONG<0>, IN pSpeed AS VARIANT<1>, IN pAccel AS VARIANT<2>, IN pCutoff AS _
                    VARIANT<3>) AS LONG
                MEMBER CALL SetCL_Speed <32> (IN AxisIndex AS LONG<0>, IN SPEED AS DOUBLE<1>, IN PB_Accel AS DOUBLE<2>, IN Cutoff AS _
                    DOUBLE<3>) AS LONG
                MEMBER CALL GetOL_Speed <33> (IN AxisIndex AS LONG<0>, IN pPercMax AS VARIANT<1>) AS LONG
                MEMBER CALL SetOL_Speed <34> (IN AxisIndex AS LONG<0>, IN PercMax AS DOUBLE<1>) AS LONG
                MEMBER CALL CONNECT <35> () AS LONG
                MEMBER CALL SendString <37> (IN AxisIndex AS LONG<0>, IN newCmd AS STRING<1>) AS STRING
                MEMBER CALL ShowProperties <38> () AS LONG
                MEMBER CALL AddPort <39> (IN PB_Name AS STRING<0>) AS LONG
                MEMBER CALL RemovePort <40> (IN PB_Name AS STRING<0>) AS LONG
                MEMBER CALL UpdateFirmware <41> (IN AxisIndex AS LONG<0>, IN FileName AS STRING<1>, IN AutoStart AS INTEGER<2>) AS LONG
                MEMBER CALL GetCL_PID <42> (IN AxisIndex AS LONG<0>, IN pProportional AS VARIANT<1>, IN pIncremental AS VARIANT<2>, IN _
                    pDifferential AS VARIANT<3>) AS LONG
                MEMBER CALL SetCL_PID <43> (IN AxisIndex AS LONG<0>, IN Proportional AS LONG<1>, IN Incremental AS LONG<2>, IN _
                    Differential AS LONG<3>) AS LONG
                MEMBER CALL GetCL_MinDriveAmplitude <44> (IN AxisIndex AS LONG<0>, IN pValue AS VARIANT<1>) AS LONG
                MEMBER CALL SetCL_MinDriveAmplitude <45> (IN AxisIndex AS LONG<0>, IN Value AS DOUBLE<1>) AS LONG
                MEMBER CALL GetCL_SoftTravelLimits <46> (IN AxisIndex AS LONG<0>, IN pFwdLimit AS VARIANT<1>, IN pRevLimit AS VARIANT<2>, _
                    IN pLimitWindow AS VARIANT<3>) AS LONG
                MEMBER CALL SetCL_SoftTravelLimits <47> (IN AxisIndex AS LONG<0>, IN FwdLimit AS DOUBLE<1>, IN RevLimit AS DOUBLE<2>, IN _
                    LimitWindow AS DOUBLE<3>) AS LONG
                MEMBER CALL SetEEPROM_Password <48> (IN AxisIndex AS LONG<0>, IN Password AS STRING<1>) AS LONG
                MEMBER CALL GetEEPROM_String <49> (IN AxisIndex AS LONG<0>, IN Address AS LONG<1>, IN Bytes AS LONG<2>) AS STRING
                MEMBER CALL SetEEPROM_String <50> (IN AxisIndex AS LONG<0>, IN Address AS LONG<1>, IN newVal AS STRING<2>) AS LONG
                MEMBER CALL GetEEPROM_Integer <51> (IN AxisIndex AS LONG<0>, IN Address AS LONG<1>, IN Bytes AS LONG<2>) AS LONG
                MEMBER CALL SetEEPROM_Integer <52> (IN AxisIndex AS LONG<0>, IN Address AS LONG<1>, IN newVal AS LONG<2>, IN Bytes AS _
                    LONG<3>) AS LONG
                MEMBER CALL Initialize <53> () AS LONG
                MEMBER CALL ZeroEncoder <54> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL ShowEEPROM <55> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL GetBoardAddress <56> (IN AxisIndex AS LONG<0>, IN pAddress AS VARIANT<1>) AS LONG
                MEMBER CALL SetBoardAddress <57> (IN AxisIndex AS LONG<0>, IN Address AS LONG<1>) AS LONG
                MEMBER CALL GetBoardBaudRate <58> (IN AxisIndex AS LONG<0>, IN PB_Port AS LONG<1>, IN pRateType AS VARIANT<2>) AS LONG
                MEMBER CALL SetBoardBaudRate <59> (IN AxisIndex AS LONG<0>, IN PB_Port AS LONG<1>, IN RateType AS LONG<2>) AS LONG
                MEMBER CALL GetDriveSignal <60> (IN AxisIndex AS LONG<0>, IN pPeriod AS VARIANT<1>, IN pDC1 AS VARIANT<2>, IN pDC2 AS _
                    VARIANT<3>, IN pPhase AS VARIANT<4>) AS LONG
                MEMBER CALL SetDriveSignal <61> (IN AxisIndex AS LONG<0>, IN Period AS DOUBLE<1>, IN DC1 AS DOUBLE<2>, IN DC2 AS _
                    DOUBLE<3>, IN Phase AS DOUBLE<4>, IN bUpdEEPROM AS INTEGER<5>) AS LONG
                MEMBER CALL IsAxisMultiplexed <62> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL GetSelectedMultiplexedAxis <63> (IN AxisIndex AS LONG<0>, IN pSubAxis AS VARIANT<1>) AS LONG
                MEMBER CALL SetSelectedMultiplexedAxis <64> (IN AxisIndex AS LONG<0>, IN SubAxis AS LONG<1>) AS LONG
                MEMBER CALL IsAxisPresent <65> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Get_EncVendor <66> (IN AxisIndex AS LONG<0>) AS STRING
                MEMBER CALL Set_EncVendor <66> (IN AxisIndex AS LONG<0>, IN Rhs AS STRING<1>)
                MEMBER CALL Get_CL_StallEnable <67> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_CL_StallEnable <67> (IN AxisIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL Get_CL_StallTolerance <68> (IN AxisIndex AS LONG<0>) AS DOUBLE
                MEMBER CALL Set_CL_StallTolerance <68> (IN AxisIndex AS LONG<0>, IN Rhs AS DOUBLE<1>)
                MEMBER CALL ShowTravelLimits <69> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL GetPortName <70> (IN PortIndex AS LONG<0>) AS STRING
                MEMBER CALL GetAxisPortDesc <71> (IN AxisIndex AS LONG<0>) AS STRING
                MEMBER CALL Get_CL_TravelLimitEnable <72> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_CL_TravelLimitEnable <72> (IN AxisIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL Get_CL_StallIncTolerance <73> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL Set_CL_StallIncTolerance <73> (IN AxisIndex AS LONG<0>, IN Rhs AS LONG<1>)
                MEMBER CALL ShowStallTolerance <74> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL LoadTrajectoryFromFile <75> (IN AxisIndex AS LONG<0>, IN PB_Type AS LONG<1>, IN FilePath AS STRING<2>, IN _
                    StartRec AS LONG<3>, IN COLUMN AS LONG<4>, IN Delim AS LONG<5>, IN COUNT AS LONG<6>) AS LONG
                MEMBER CALL LoadTrajectoryFromArray <76> (IN AxisIndex AS LONG<0>, IN PB_Type AS LONG<1>, IN pTargets AS VARIANT<2>, IN _
                    COUNT AS LONG<3>) AS LONG
                MEMBER CALL StartTrajectory <77> (IN AxisIndex AS LONG<0>, IN StartIndex AS LONG<1>, IN COUNT AS LONG<2>, IN Interval AS _
                    DOUBLE<3>, IN Cycles AS LONG<4>, IN CycleDelay AS DOUBLE<5>, IN Flags AS LONG<6>) AS LONG
                MEMBER CALL ShowTrajectorySetup <78> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL ShowLifeTest <79> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL GetEEPROM_Password <80> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL GetLifeTestDlg <81> (IN AxisIndex AS LONG<0>) AS QUAD
                MEMBER CALL StartLifeTest <82> (IN AxisIndex AS LONG<0>, IN Minimize AS LONG<1>) AS LONG
                MEMBER CALL RunUserProgram <83> (IN ID AS LONG<0>, IN CmdStr AS STRING<1>, IN DirStr AS STRING<2>, IN Flags AS LONG<3>) _
                    AS LONG
                MEMBER CALL GetUserProgramStatus <84> (IN ID AS LONG<0>) AS LONG
                MEMBER CALL ShowHiResAdcSetup <85> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER CALL MoveMtrStepsWithLimit <86> (IN Index AS LONG<0>, IN Dir AS LONG<1>, IN COUNT AS LONG<2>, IN Period AS _
                    DOUBLE<3>, IN DutyCycle AS DOUBLE<4>, IN TravelLimit AS DOUBLE<5>) AS LONG
                MEMBER CALL QueryElapsedStatus <87> (IN Index AS LONG<0>, IN pElapsed AS VARIANT<1>) AS LONG
                MEMBER CALL ShowScanTest <88> (IN AxisIndex AS LONG<0>) AS LONG
                MEMBER GET Ports <1> () AS STRING
                MEMBER LET Ports <1> ()
                MEMBER GET OnErrorThrowException <3> () AS INTEGER
                MEMBER LET OnErrorThrowException <3> ()
                MEMBER GET LastErrorCode <4> () AS LONG
                MEMBER LET LastErrorCode <4> ()
                MEMBER GET LastErrorText <5> () AS STRING
                MEMBER LET LastErrorText <5> ()
                MEMBER GET LastErrorPort <6> () AS STRING
                MEMBER LET LastErrorPort <6> ()
                MEMBER GET PortCount <7> () AS LONG
                MEMBER LET PortCount <7> ()
                MEMBER GET AxisCount <10> () AS LONG
                MEMBER LET AxisCount <10> ()
            END INTERFACE
            
            ' Interface Name  : Int__DNstSquiggleCtrlEvents
            ' Description     : Event interface for NstSquiggleCtrl Control
            ' ClassID         : $CLSID_NstSquiggleCtrlLib_Event__DNstSquiggleCtrlEvents
            CLASS Class_Int__DNstSquiggleCtrlEvents $CLSID_NstSquiggleCtrlLib_Event__DNstSquiggleCtrlEvents AS EVENT
                INTERFACE Int__DNstSquiggleCtrlEvents $IID_NstSquiggleCtrlLib_Int__DNstSquiggleCtrlEvents 
                    INHERIT IDISPATCH
            
                END INTERFACE
            END CLASS
            Thanks,
            Conrad

            Comment


            • #7
              CONTROL ADD "AtlAxWin", hDlg, %ID_NST, "NstSquiggleCtrl.ocx", 0, 0, 0, 0, %WS_VISIBLE OR %WS_CHILD
              You must not use the name of the OCX, but the ProgID.

              Use:

              Code:
              CONTROL ADD "AtlAxWin", hDlg, %ID_NST, "NSTSQUIGGLECTRL.NstSquiggleCtrlCtrl.1", 0, 0, 0, 0, %WS_VISIBLE OR %WS_CHILD
              Forum: http://www.jose.it-berater.org/smfforum/index.php

              Comment


              • #8
                I guess that you have been confused because the example uses "WMPlayer.OCX", but it happens that this is the ProgID of the Windows Media Player control, whose file name is WMP.DLL.
                Forum: http://www.jose.it-berater.org/smfforum/index.php

                Comment


                • #9
                  Hurrah! Thank-you, that does it, and yes, I thought it was the file name. I do have to use OBJECT CALL or I get method-or-property-expected error. The first step is hardest, but now that I can get one response from the thing, the rest should come a lot easier. Thanks again.

                  Conrad

                  Comment


                  • #10
                    You have to use OBJECT CALL/GET because it has a dispatch-only interface, not a dual one. Therefore, direct interface calls can't be used with it.
                    Forum: http://www.jose.it-berater.org/smfforum/index.php

                    Comment

                    Working...
                    X