Announcement

Collapse

Forum Guidelines

This forum is for finished source code that is working properly. If you have questions about this or any other source code, please post it in one of the Discussion Forums, not here.
See more
See less

SDK Window/Control Class Wrapper Library

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

  • jcfuller
    replied
    Here is a server version of my SDK Window/Control Wrapper. Instead of a VB Run time you've got a PB run time . This is all an experiment to see how everything works.
    I'm not releasing the dll source just yet; it really needs a lot of work and I'm not sure I really want to go this route.
    Source for the main file,tlb,exe, dll in zip.

    James
    Attached Files

    Leave a comment:


  • jcfuller
    replied
    Originally posted by Fred Harris View Post
    Hello James!

    I wasn't sure whether the example was supposed to be compilable or not. In any case my compiler stuck on

    #INCLUDE "PBLIB95.BAS"

    I believe I have Jose's includes in place and referenced?

    Fred
    No it's just example code for now showing the syntax.

    James

    Leave a comment:


  • Fred Harris
    replied
    Compilable?

    Hello James!

    I wasn't sure whether the example was supposed to be compilable or not. In any case my compiler stuck on

    #INCLUDE "PBLIB95.BAS"

    I believe I have Jose's includes in place and referenced?

    Fred

    Leave a comment:


  • jcfuller
    started a topic SDK Window/Control Class Wrapper Library

    SDK Window/Control Class Wrapper Library

    This is just a preview of a SDK Window/Control Class Wrapper Library. The zip does not
    include any source at present as there is still a lot of work to be done on the library.
    I show here the approach I am taking. At this time I decided on processing all messages
    out of any Class/Interface. I can do this because I have a GLOBAL! Oh no!!!!
    Yes one GLOBAL -> goApp with which I can bore down and get at most all I want.
    If encapsulated processing is need a Class/Interface can be created and instantiated
    in and called from the CALLBACK function.

    James

    Code:
    '=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
    'SED_PBWIN
    '=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
    #COMPILE EXE
    #DIM ALL
    #TOOLS OFF
    '------------------------------------------------------------------------------
    'José Include files
    #INCLUDE ONCE "Windows.Inc"
    #INCLUDE ONCE "CommCtrl.inc"
    '------------------------------------------------------------------------------
    'Conditional Compile Equates for PBLIB95.BAS"
        %USE_MakeFont2 = 1
        %USE_VSpaceControls = 1
        %USE_CenterWindow = 1
        %USE_VCenterCtrlOnDialog = 1
        %USE_RECTWIDTH = 1
        %USE_RECTHEIGHT = 1
    #INCLUDE  "PBLIB95.BAS"
    '------------------------------------------------------------------------------
    'Conditional Compile Equates for PBClassLib02.Bas"
        %USE_DisplayOpenFileClass = 1
    '    %USE_DisplayBrowseClass = 1
    '    %USE_PcreClass = 1
        %Use_cControlClass = 1
        %Use_cRaGridClass = 1
        %Use_cWindowClass = 1
        %Use_cAppClass = 1
    #INCLUDE ONCE "PBClassLib02.Bas"
    '==============================================================================
    %GETFILEBUT = 101
    %DATABUT = 105
    '==============================================================================
    'For now I need One GLOBAL
    GLOBAL goApp AS iSdkWinApp
    '==============================================================================
    CLASS cSdkWinApp
        INSTANCE oMainWin AS iWindow
        INSTANCE hInst AS LONG
        INSTANCE hWin AS DWORD
        INSTANCE oOkBut,oStatus,oCancelBut,oPanel_01,oPanel_02,oFileBut,oDataBut AS iControl
        INSTANCE oPanel_03, oPanel_04,oPanel_05,oPanel_06,oLBox_01,oCombo,oGrid AS iControl
        INSTANCE oPanel_07,oPanel_08 AS iControl
        INSTANCE oEdit_01,oEdit_02,oMemo_01 AS iControl
        INSTANCE oOption() AS iControl
        INSTANCE oCheck() AS iControl
        INSTANCE oRAGrid AS iRAGrid
        INSTANCE oGridCol AS iGridCol
    
        INTERFACE iSdkWinApp : INHERIT cApp,iApp
            PropGet(hInst,LONG)
            PropSet(hInst,LONG)
            METHOD Run() AS LONG
                REDIM hBtns(1 TO 3) AS DWORD
                LOCAL hFont AS LONG
                REDIM oOption(1 TO 4)
                REDIM oCheck(1 TO 4)
                LOCAL i,j,RetVal AS LONG
                LOCAL hGrid AS DWORD
                oMainWin = CLASS "cWindow"
                IF ISNOTHING(oMainWin) THEN RET_M(-1)
                oMainWin.CallBackProc = CODEPTR(MainWinCallBack)
                oMainWin.BackColor = GetSysColor(%COLOR_BTNFACE)
                oMainWin.Style = %WS_OVERLAPPEDWINDOW
                oMainWin.Width = 740
                oMainWin.Height = 600
                hWin = oMainWin.CreateWin
                IF hWin = 0 THEN RET_M(-2)
                CenterWindow hWin
                hFont = MakeFont2("Tahoma",11,%FW_NORMAL)
                'hFont2 =
    'Ok Command Button
                oOkBut = CLASS "cControl"
                IF ISNOTHING(oOkBut) THEN RET_M(-3)
                oOkBut.Class = "BUTTON"
                oOkBut.Name = "Ok Button"
                oOkBut.Id = %IDOK
                oOkBut.Text = "OK"
                oOkBut.Parent = hWin
                oOkBut.Top = 500
                oOkBut.Width = 80
                oOkBut.Height = 30
                oOkBut.Font = hFont
                oOkBut.CreateControl
                hBtns(1) = oOkBut.Id
    'Get Grid Cell Data Button
                oDataBut = CLASS "cControl"
                IF ISNOTHING(oDataBut) THEN RET_M(-3)
                oDataBut.Class = "BUTTON"
                oDataBut.Name = "oDataBut"
                oDataBut.Id = %DATABUT
                oDataBut.Text = "Grid Data"
                oDataBut.Parent = hWin
                oDataBut.Top = 500
                oDataBut.Width = 80
                oDataBut.Height = 30
                oDataBut.Font = hFont
                oDataBut.CreateControl
                hBtns(2) = oDataBut.Id
    'Cancel Command Button
                oCancelBut = CLASS "cControl"
                IF ISNOTHING(oCancelBut) THEN RET_M(-3)
                oCancelBut.Class = "BUTTON"
                oCancelBut.Name = "Cancel Button"
                oCancelBut.Id = %IDCANCEL
                oCancelBut.Text = "Cancel"
                oCancelBut.Parent = hWin
                oCancelBut.Top = 500
                oCancelBut.Left = 100
                oCancelBut.Height = 30
                oCancelBut.Width = 80
                oCancelBut.Font = hFont
                oCancelBut.CreateControl
                hBtns(3) = oCancelBut.Id
    'Even space buttons Vertically
                VSpaceControls hWin,hBtns()
    'Outer Raised Panel
                oPanel_01 = CLASS "cControl"
                IF ISNOTHING(oPanel_01) THEN RET_M(-3)
                oPanel_01.Class = "RPANEL"
                oPanel_01.Name = "oPanel_01"
                oPanel_01.Id = 300
                oPanel_01.Text = " Select A File"
                oPanel_01.Left = 16
                oPanel_01.Top = 16
                oPanel_01.Width = 695
                oPanel_01.Height = 55
                oPanel_01.Parent = hWin
                oPanel_01.ForeColor = &H8E6B23
                oPanel_01.CreateControl
    'Inner sunken panel
                oPanel_02 = CLASS "cControl"
                IF ISNOTHING(oPanel_02) THEN RET_M(-3)
                oPanel_02.Class = "SPANEL"
                oPanel_02.Name = "oPanel_02"
                oPanel_02.Id = 301
                oPanel_02.Text = ""
                oPanel_02.Left = 32
                oPanel_02.Top = 36
                oPanel_02.Width = 630
                oPanel_02.Height = 22
                oPanel_02.Parent = hWin
                oPanel_02.ForeColor = &HC00000
                oPanel_02.Font = hFont
                oPanel_02.CreateControl
    'Another Raised Panel
                oPanel_03 = CLASS "cControl"
                IF ISNOTHING(oPanel_03) THEN RET_M(-3)
                oPanel_03.Class = "RPANEL"
                oPanel_03.Name = "oPanel_03"
                oPanel_03.TextAlign = "CENTER"
                oPanel_03.Id = 302
                oPanel_03.Text = "Your Options"
                oPanel_03.Left = 16
                oPanel_03.Top = 100
                oPanel_03.Width = 150
                oPanel_03.Height = 150
                oPanel_03.Parent = hWin
                oPanel_03.ForeColor = &H8E6B23
                oPanel_03.CreateControl
    'Check Boxes Raised Panel
                oPanel_04 = CLASS "cControl"
                IF ISNOTHING(oPanel_04) THEN RET_M(-3)
                oPanel_04.Class = "RPANEL"
                oPanel_04.Name = "oPanel_04"
                oPanel_04.TextAlign = "CENTER"
                oPanel_04.Id = 302
                oPanel_04.Text = "Check Boxes"
                oPanel_04.Left = 200
                oPanel_04.Top = 100
                oPanel_04.Width = 150
                oPanel_04.Height = 150
                oPanel_04.Parent = hWin
                oPanel_04.ForeColor = &H8E6B23
                oPanel_04.CreateControl
    'List Box Raised Panel
                oPanel_05 = CLASS "cControl"
                IF ISNOTHING(oPanel_05) THEN RET_M(-3)
                oPanel_05.Class = "RPANEL"
                oPanel_05.Name = "oPanel_05"
                oPanel_05.TextAlign = "CENTER"
                oPanel_05.Id = 302
                oPanel_05.Text = "List Box"
                oPanel_05.Left = 380
                oPanel_05.Top = 100
                oPanel_05.Width = 150
                oPanel_05.Height = 150
                oPanel_05.Parent = hWin
                oPanel_05.ForeColor = &H8E6B23
                oPanel_05.CreateControl
    'Combo Box Raised Panel
                oPanel_06 = CLASS "cControl"
                IF ISNOTHING(oPanel_06) THEN RET_M(-3)
                oPanel_06.Class = "RPANEL"
                oPanel_06.Name = "oPanel_6"
                oPanel_06.TextAlign = "CENTER"
                oPanel_06.Id = 302
                oPanel_06.Text = "Combo Box"
                oPanel_06.Left = 566
                oPanel_06.Top = 100
                oPanel_06.Width = 150
                oPanel_06.Height = 150
                oPanel_06.Parent = hWin
                oPanel_06.ForeColor = &H8E6B23
                oPanel_06.CreateControl
    'Edit Control Raised Panel            
                oPanel_07 = CLASS "cControl"
                IF ISNOTHING(oPanel_07) THEN RET_M(-3)
                oPanel_07.Class = "RPANEL"
                oPanel_07.Name = "oPanel_07"
                oPanel_07.TextAlign = "CENTER"
                oPanel_07.Id = 302
                oPanel_07.Text = "Edit Fields"
                oPanel_07.Left = 16
                oPanel_07.Top = 300
                oPanel_07.Width = 150
                oPanel_07.Height = 150
                oPanel_07.Parent = hWin
                oPanel_07.ForeColor = &H8E6B23
                oPanel_07.CreateControl
    'Edit Control
                oEdit_01 = CLASS "cControl"
                IF ISNOTHING(oEdit_01) THEN RET_M(-3)
                oEdit_01.Class = "EDIT"
                oEdit_01.Name = "oEdit_01"
                oEdit_01.Id = 200
                oEdit_01.Text = "James Fuller"
                oEdit_01.Left = 35
                oEdit_01.Top = 350
                oEdit_01.Height = 25
                oEdit_01.Width = 110
                oEdit_01.Parent = hWin
                oEdit_01.Font = hFont
                oEdit_01.CreateControl
    'Edit Control
                oEdit_02 = CLASS "cControl"
                IF ISNOTHING(oEdit_02) THEN RET_M(-3)
                oEdit_02.Class = "EDIT"
                oEdit_02.Name = "oEdit_02"
                oEdit_02.Id = 201
                oEdit_02.Text = "James Fuller"
                oEdit_02.Left = 35
                oEdit_02.Top = 400
                oEdit_02.Height = 25
                oEdit_02.Width = 110
                oEdit_02.Parent = hWin
                oEdit_02.Font = hFont
                oEdit_02.BackColor = &HC00000
                oEdit_02.ForeColor = &HFFFFFF
                oEdit_02.CreateControl
    'Panel for MEMO
                oPanel_08 = CLASS "cControl"
                IF ISNOTHING(oPanel_08) THEN RET_M(-3)
                oPanel_08.Class = "RPANEL"
                oPanel_08.Name = "oPanel_6"
                oPanel_08.TextAlign = "CENTER"
                oPanel_08.Id = 302
                oPanel_08.Text = "Memo "
                oPanel_08.Left = 566
                oPanel_08.Top = 300
                oPanel_08.Width = 150
                oPanel_08.Height = 150
                oPanel_08.Parent = hWin
                oPanel_08.ForeColor = &H8E6B23
                oPanel_08.CreateControl
    
    'Multi lined edit control
                oMemo_01 = CLASS "cControl"
                IF ISNOTHING(oMemo_01) THEN RET_M(-3)
                oMemo_01.Class = "MEMO"
                oMemo_01.Name = "Memo_01"
                oMemo_01.Id = 900
                oMemo_01.Text = "Multi Line Memo Control"+$CRLF+ "with enough text to activate the scroll bar"
                oMemo_01.Left = 586
                oMemo_01.Top = 320
                oMemo_01.Height = 100
                oMemo_01.Width = 110
                oMemo_01.Parent = hWin
                oMemo_01.Font = hFont
                oMemo_01.CreateControl
    
                
    'Option Buttons
                j = 130
                FOR i = 1 TO 4
                    oOption(i) = CLASS "cControl"
                    IF ISNOTHING(oOption(i)) THEN RET_M(-3)
                    oOption(i).Class = "OPTION"
                    oOption(i).Id = 210 + i
                    oOption(i).Parent = hWin
                    oOption(i).Left = 50
                    oOption(i).Width = 100
                    oOption(i).Text = "Option"+FORMAT$(i)
                    oOption(i).Top = j
                    oOption(i).Font = hFont
                    oOption(i).ForeColor = &H8E6B23
                    oOption(i).CreateControl
                    j+=25
                NEXT i
    'Check Boxes
                j = 130
                FOR i = 1 TO 4
                    oCheck(i) = CLASS "cControl"
                    IF ISNOTHING(oCheck(i)) THEN RET_M(-3)
                    oCheck(i).Class = "CHECKBOX"
                    oCheck(i).Id = 210 + i
                    oCheck(i).Parent = hWin
                    oCheck(i).Left = 234
                    oCheck(i).Width = 100
                    oCheck(i).Text = "Check"+FORMAT$(i)
                    oCheck(i).Top = j
                    oCheck(i).Font = hFont
                    oCheck(i).ForeColor = &H8E6B23
                    oCheck(i).CreateControl
                    j+=25
                NEXT i
    'List Box
                oLBox_01 = CLASS "cControl"
                IF ISNOTHING(oLBox_01) THEN RET_M(-3)
                oLBox_01.Class = "LISTBOX"
                oLBox_01.Name = "LBox1"
                oLBox_01.Id = 301
                oLBox_01.Left = 410
                oLBox_01.Top = 125
                oLBox_01.Width = 100
                oLBox_01.Height = 120
                oLBox_01.Font = hFont
                oLBox_01.ForeColor = &HC00000
                oLBox_01.Style = %LBS_NOTIFY OR %LBS_STANDARD    OR %WS_TABSTOP OR %WS_VISIBLE OR %WS_CHILD
                oLBox_01.List = "Item One,Item Two,Item Three,Item Four,Item Five,Item Six,Item Seven,Item Eight"
                oLBox_01.Parent = hWin
                oLBox_01.CreateControl
    'Combo
                oCombo = CLASS "cControl"
                IF ISNOTHING(oCombo) THEN RET_M(-3)
                oCombo.Class = "COMBOBOX"
                oCombo.Name = "Combo"
                oCombo.id = 302
                oCombo.Left = 580
                oCombo.Top = 125
                oCombo.Width = 120
                oCombo.Height = 100
                oCombo.Font = hFont
                oCombo.ForeColor = &H00C0C0
                oCombo.Style = %CBS_DROPDOWN OR %WS_VSCROLL     OR %WS_TABSTOP OR %WS_VISIBLE OR %WS_CHILD
                oCombo.List = "One,Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Eleven,Twelve"
                oCombo.Parent = hWin
                oCombo.CreateControl
    'GetFile Name Button
                oFileBut = CLASS "cControl"
                IF ISNOTHING(oFileBut) THEN RET_M(-3)
                oFileBut.Class = "BUTTON"
                oFileBut.Name = "Ok Button"
                oFileBut.Id = %GETFILEBUT
                oFileBut.Text = "..."
                oFileBut.Parent = hWin
                oFileBut.Top = 36
                oFileBut.Left = 670
                oFileBut.Width = 30
                oFileBut.Height = 20
                oFileBut.Font = hFont
                oFileBut.CreateControl
    'Status Bar
                oStatus = CLASS "cControl"
                IF ISNOTHING(oStatus) THEN RET_M(-3)
                oStatus.Id = 800
                oStatus.StatusParts = "50;30;10;10" 'in %; should total 100%
                oStatus.Class = "STATUSBAR"
                oStatus.Style = &H50000003
                oStatus.Parent = hWin
                oStatus.Text = "Status Bar"
                oStatus.CreateControl
    'iControl RAGrid
                oGrid = CLASS "cControl"
                IF ISNOTHING(oGrid) THEN RET_M(-4)
                oGrid.Class = "RAGrid"
                oGrid.Id = 700
                oGrid.Parent = hWin
                oGrid.Top = 300
                oGrid.Left = 250
                oGrid.Width = 380
                oGrid.Height = 140
                oGrid.Style = &H5001000D OR %WS_BORDER
                hGrid = oGrid.CreateControl
    'Contained RAGrid Class Created in iControl
                oRAGrid = oGrid.oRAGrid
                oRAGrid.BackColor  = &HC0FFFF
                oRAGrid.GridColor = &H808080
                oRAGrid.TextColor = &H800000
                oRAGrid.HeaderHeight = 50
    'Add Columns
    'This is the Col data UDT turned into a Class
                oGridCol = CLASS "cGridCol"
                IF ISNOTHING(oGridCol) THEN RET_M(-5)
    'Add Col 0
                oGridCol.Width = 100
                oGridCol.HeaderText = $CR+"Name"
                oGridCol.HeaderAlign = %GA_ALIGN_CENTER
                oGridCol.ColAlign = %GA_ALIGN_LEFT
                oGridCol.ColDataType = %TYPE_EDITTEXT
                oGridCol.TextMax = 31
                oRAGrid.AddColumn(oGridCol)
    'Add Col 1
                oGridCol.HeaderText = $CR+"Address"
                oRAGrid.AddColumn(oGridCol)
    'Add Col 2
                oGridCol.HeaderText = $CR+"Points"
                oGridCol.ColDataType = %TYPE_EDITLONG
                oGridCol.HeaderAlign = %GA_ALIGN_CENTER
                oGridCol.ColAlign = %GA_ALIGN_RIGHT
                oGridCol.TextMax = 4
                oRAGrid.AddColumn(oGridCol)
    'Add Col 3
                oGridCol.HeaderText = $CR+"Button"
                oGridCol.Width = 60
                oGridCol.HeaderAlign = %GA_ALIGN_CENTER
                oGridCol.ColAlign = %GA_ALIGN_LEFT
                oGridCol.ColDataType = %TYPE_COMBOBOX
                oGridCol.TextMax = %MAX_PATH
                oGridCol.FormatStr = ""
                oRAGrid.AddColumn(oGridCol)
    'Add Row Data
                RetVal = oRAGrid.AddComboData(3,",one,two")
                RetVal = oRAGrid.AddRowData("Name#1,Address#1,1000")
                RetVal = oRAGrid.AddRowData("Name#2,Address#2,2000")
                RetVal = oRAGrid.AddRowData("Name#3,Address#3,3000")
                RetVal = oRAGrid.AddRowData("Name#4,Address#4,4000")
                RetVal = oRAGrid.AddRowData("Name#5,Address#5,4000")
                RetVal = oRAGrid.AddRowData("Name#6,Address#6,4000")
                RetVal = oRAGrid.AddRowData("Name#7,Address#7,4000")
    
    
                VCenterCtrlOnDialog hGrid,hWin
                ShowWindow hWin,%SW_SHOW
    
                RET_M(MYBASE.MsgLoop)
            END METHOD
            PropGet(oPanel_02,iControl)
            PropGet(oRAGrid,iRAGrid)
        END INTERFACE
    END CLASS
    '------------------------------------------------------------------------------
    CALLBACK FUNCTION MainWinCallBack() AS LONG
        LOCAL lpCtlInfo AS CtlInfoType PTR
        LOCAL oCtl AS iControl
        LOCAL oDop AS iDisplayOpenFile
        LOCAL sFile,sCellData AS STRING
    
    
    
        SELECT CASE CB.MSG
            CASE %WM_CLOSE
                DestroyWindow CB.HNDL
            CASE %WM_DESTROY
                EnumChildWindows CB.HNDL,CODEPTR(EnumChildProc),%RemoveProps
                RemoveProp CB.HNDL,$ObjInfo
                PostQuitMessage 0
            CASE %WM_CTLCOLORSTATIC,%WM_CTLCOLORBTN,%WM_CTLCOLOREDIT,%WM_CTLCOLORLISTBOX
                lpCtlInfo = GetProp(CB.LPARAM,$ObjInfo)
                IF lpCtlInfo THEN
                    POKE DWORD,VARPTR(oCtl),@lpCtlInfo.ObjPtr
                    IF ISNOTHING(oCtl) THEN    RET_F(0)
                    oCtl.AddRef
                    IF oCtl.hBkBrush THEN
                        SetBkMode CB.WPARAM,%OPAQUE
                        SetBkColor CB.WPARAM,oCtl.BackColor
                        SetTextColor CB.WPARAM,oCtl.ForeColor
                        RET_F(oCtl.hBkBrush)
                    END IF
                END IF
            CASE %WM_COMMAND
                IF CB.CTLMSG = %BN_CLICKED THEN
                    SELECT CASE CONST CB.CTL
                        CASE %IDCANCEL,%IDOK
                            SendMessage CB.HNDL,%WM_CLOSE,0,0
                        CASE %GETFILEBUT
                            oDop = CLASS "cDisplayOpenFile"
                            IF ISNOTHING(oDop) THEN EXIT SELECT
                            sFile = oDop.GetName
                            IF LEN(sFile) THEN
                                SetWindowText goApp.oPanel_02.Handle,""
                                SetWindowText goApp.oPanel_02.Handle,BYVAL STRPTR(sFile)
                            END IF
                        CASE %DATABUT
                            sCellData = goApp.oRAGrid.GetCurrentCellStringData()
                            ?sCellData
                    END SELECT
                END IF
        END SELECT
        FUNCTION = DefWindowProc(CB.HNDL, CB.MSG, CB.WPARAM, CB.LPARAM)
    END FUNCTION
    '------------------------------------------------------------------------------
    FUNCTION EnumChildProc(BYVAL hChild AS DWORD,BYVAL lParam AS LONG)AS LONG
        'Remove Props
        IF lParam = %RemoveProps THEN
            RemoveProp  hChild,$ObjInfo
        END IF
    END FUNCTION
    '------------------------------------------------------------------------------
    '==============================================================================
    FUNCTION WINMAIN (BYVAL hInstance     AS LONG, _
                      BYVAL hPrevInstance AS LONG, _
                      BYVAL lpCmdLine     AS ASCIIZ PTR, _
                      BYVAL iCmdShow      AS LONG) AS LONG
    
    
    
    TRACE NEW "SDK05_TRACE.TXT"
        LOCAL iccx AS INIT_COMMON_CONTROLSEX
        LOCAL hRaGrid AS DWORD
    
        iccx.dwsize = SIZEOF(iccx)
        iccx.dwicc = %ICC_BAR_CLASSES
        InitCommonControlsEx iccx
    'Load RAGrid
        hRaGrid = LoadLibrary("RAGrid.dll")
        IF hRAGrid = 0 THEN RET_F(0)
    'On No a GLOBAL
        goApp = CLASS "cSdkWinApp"
        goApp.hInst = hInstance
        goApp.Run
    
        FreeLibrary hRaGrid
    
    TRACE CLOSE
    END FUNCTION
    Attached Files
Working...
X