I guess I don't understand and its been a long time since I've used FF3 or PB.
Anyway I have a program in PB9 that uses PROCESSENTRY32. That works fine . In PB9 I do not have to define the type structure or add the functions declares (see PB9 code below.
The same code in FF3 wont compile giving an Undefined Type error. Both programs include win32API.inc
What am I missing???
PB9:
#PBFORMS CREATED V1.50
#COMPILE EXE
#DIM ALL
'------------------------------------------------------------------------------
' ** Includes **
'------------------------------------------------------------------------------
#PBFORMS BEGIN INCLUDES
%USEMACROS = 1
#IF NOT %DEF(%WINAPI)
#INCLUDE "WIN32API.INC"
#ENDIF
#IF NOT %DEF(%COMMCTRL_INC)
#INCLUDE "COMMCTRL.INC"
#ENDIF
#INCLUDE "PBForms.INC"
#PBFORMS END INCLUDES
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
' ** Constants **
'------------------------------------------------------------------------------
#PBFORMS BEGIN CONSTANTS
%IDD_DIALOG1 = 101
%IDC_FRAME1 = 1001
%IDC_FRAME2 = 1003
%IDC_AppList = 1002
%IDC_Acitve_list = 1004
%IDC_Add_B = 1005
%IDC_Remove_B = 1006
%IDC_Test_B = 1007
%IDC_Run_B = 1008
%IDC_Exit_B = 1009
%IDC_CHECK_beep = 1010
%IDC_Check_minimize = 1011
%IDC_Add_Program_B = 1013
%IDC_CHECK2 = 1014
%IDC_CHECK_Batt = 1012
%IDC_BUTTON1 = 1015 '*
%IDC_Status_bar = 1016
%IDC_FRAME3 = 1017
%IDC_Refresh_B = 1018
#PBFORMS END CONSTANTS
'------------------------------------------------------------------------------
#INCLUDE "pb_proc.bas"
'------------------------------------------------------------------------------
' ** Declarations **
'------------------------------------------------------------------------------
DECLARE CALLBACK FUNCTION ShowDIALOG1Proc()
DECLARE FUNCTION SampleListBox(BYVAL hDlg AS DWORD, BYVAL lID AS LONG, BYVAL _
lCount AS LONG) AS LONG
DECLARE FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG
#PBFORMS DECLARATIONS
'------------------------------------------------------------------------------
'************ Local Vars *****************
GLOBAL S_batt AS STRING
GLOBAL S_usb AS STRING
GLOBAL S_active_app AS STRING
'******** Local Declarations ************
DECLARE SUB GetAvtiveApps()
DECLARE SUB Add_to_list()
'------------------------------------------------------------------------------
' ** Main Application Entry Point **
'------------------------------------------------------------------------------
FUNCTION PBMAIN()
PBFormsInitComCtls (%ICC_WIN95_CLASSES OR %ICC_DATE_CLASSES OR _
%ICC_INTERNET_CLASSES)
ShowDIALOG1 %HWND_DESKTOP
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
' ** CallBacks **
'------------------------------------------------------------------------------
CALLBACK FUNCTION ShowDIALOG1Proc()
SELECT CASE AS LONG CBMSG
CASE %WM_INITDIALOG
' Initialization handler
CASE %WM_SIZE
' Dialog has been resized
CONTROL SEND CBHNDL, %IDC_Status_bar, CBMSG, CBWPARAM, CBLPARAM
CASE %WM_NCACTIVATE
STATIC hWndSaveFocus AS DWORD
IF ISFALSE CBWPARAM THEN
' Save control focus
hWndSaveFocus = GetFocus()
ELSEIF hWndSaveFocus THEN
' Restore control focus
SetFocus(hWndSaveFocus)
hWndSaveFocus = 0
END IF
CASE %WM_COMMAND
' Process control notifications
SELECT CASE AS LONG CBCTL
' /* Inserted by PB/Forms 01-29-2008 09:10:32
CASE %IDC_Refresh_B
IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
GetAvtiveApps
END IF
' */
CASE %IDC_FRAME1
CASE %IDC_AppList
CASE %IDC_FRAME2
CASE %IDC_Acitve_list
CASE %IDC_Add_B
IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
Add_to_list
END IF
CASE %IDC_Remove_B
IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
MSGBOX "%IDC_Remove_B=" + FORMAT$(%IDC_Remove_B), _
%MB_TASKMODAL
END IF
CASE %IDC_Test_B
' IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
' MSGBOX "%IDC_Test_B=" + FORMAT$(%IDC_Test_B), _
' %MB_TASKMODAL
' END IF
CASE %IDC_Run_B
IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
MSGBOX "%IDC_Run_B=" + FORMAT$(%IDC_Run_B), _
%MB_TASKMODAL
END IF
CASE %IDC_Exit_B
IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
DIALOG END CBHNDL
END IF
CASE %IDC_CHECK_beep
CASE %IDC_Check_minimize
CASE %IDC_CHECK_Batt
CASE %IDC_Add_Program_B
IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
END IF
CASE %IDC_CHECK2
CASE %IDC_Status_bar
CASE %IDC_FRAME3
END SELECT
END SELECT
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
' ** Dialogs **
'------------------------------------------------------------------------------
FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG
LOCAL lRslt AS LONG
#PBFORMS BEGIN DIALOG %IDD_DIALOG1->->
GLOBAL hDlg AS DWORD
LOCAL hFont1 AS DWORD
DIALOG NEW hParent, "Not Busted", 224, 87, 463, 222, %WS_POPUP OR _
%WS_BORDER OR %WS_DLGFRAME 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_WINDOWEDGE OR _
%WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _
%WS_EX_RIGHTSCROLLBAR, TO hDlg
CONTROL ADD FRAME, hDlg, %IDC_FRAME1, "Applications List", 115, 10, _
120, 190, %WS_CHILD OR %WS_VISIBLE OR %WS_BORDER OR %BS_TEXT OR _
%BS_LEFT OR %BS_TOP OR %BS_GROUPBOX, %WS_EX_LEFT OR _
%WS_EX_LTRREADING
CONTROL ADD LISTBOX, hDlg, %IDC_AppList, , 125, 30, 100, 160
CONTROL ADD FRAME, hDlg, %IDC_FRAME2, "Running Applications", 310, _
10, 120, 190, %WS_CHILD OR %WS_VISIBLE OR %WS_BORDER OR %BS_TEXT OR _
%BS_LEFT OR %BS_TOP OR %BS_GROUPBOX, %WS_EX_LEFT OR _
%WS_EX_LTRREADING
CONTROL ADD LISTBOX, hDlg, %IDC_Acitve_list, , 320, 30, 100, 160
CONTROL ADD BUTTON, hDlg, %IDC_Add_B, "<< Add", 245, 60, 50, 15
CONTROL ADD BUTTON, hDlg, %IDC_Remove_B, "Remove", 245, 80, 50, 15
CONTROL ADD BUTTON, hDlg, %IDC_Test_B, "Test", 245, 120, 50, 15
CONTROL ADD BUTTON, hDlg, %IDC_Run_B, "Run", 245, 140, 50, 15
CONTROL ADD BUTTON, hDlg, %IDC_Exit_B, "Exit", 245, 160, 50, 15
CONTROL ADD CHECK3STATE, hDlg, %IDC_CHECK_beep, "Beep", 20, 60, 70, 10, _
%WS_CHILD OR %WS_VISIBLE OR %WS_BORDER OR %WS_TABSTOP OR %BS_TEXT OR _
%BS_AUTO3STATE OR %BS_CENTER OR %BS_VCENTER, %WS_EX_LEFT OR _
%WS_EX_LTRREADING
CONTROL ADD CHECK3STATE, hDlg, %IDC_Check_minimize, "Minimize", 20, 75, _
70, 10, %WS_CHILD OR %WS_VISIBLE OR %WS_BORDER OR %WS_TABSTOP OR _
%BS_TEXT OR %BS_AUTO3STATE OR %BS_CENTER OR %BS_VCENTER, %WS_EX_LEFT _
OR %WS_EX_LTRREADING
CONTROL ADD CHECK3STATE, hDlg, %IDC_CHECK_Batt, "Low Battery Alert", 20, _
90, 70, 10, %WS_CHILD OR %WS_VISIBLE OR %WS_BORDER OR %WS_TABSTOP OR _
%BS_TEXT OR %BS_AUTO3STATE OR %BS_CENTER OR %BS_VCENTER, %WS_EX_LEFT _
OR %WS_EX_LTRREADING
CONTROL ADD BUTTON, hDlg, %IDC_Add_Program_B, "Add Program", 245, _
40, 50, 15
CONTROL ADD CHECK3STATE, hDlg, %IDC_CHECK2, "spare2", 20, 105, 70, 10, _
%WS_CHILD OR %WS_VISIBLE OR %WS_BORDER OR %WS_TABSTOP OR %BS_TEXT OR _
%BS_AUTO3STATE OR %BS_CENTER OR %BS_VCENTER, %WS_EX_LEFT OR _
%WS_EX_LTRREADING
CONTROL ADD "msctls_statusbar32", hDlg, %IDC_Status_bar, "Status : " + _
"USB - Disconnected Battery - Empty Active Program - " + _
"None", -1, 209, 464, 14, %WS_CHILD OR %WS_VISIBLE OR %WS_BORDER, _
%WS_EX_TRANSPARENT OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _
%WS_EX_RIGHTSCROLLBAR
CONTROL ADD FRAME, hDlg, %IDC_FRAME3, "Options", 5, 35, 100, 100, _
%WS_CHILD OR %WS_VISIBLE OR %WS_BORDER OR %BS_TEXT OR %BS_LEFT OR _
%BS_TOP OR %BS_GROUPBOX, %WS_EX_LEFT OR %WS_EX_LTRREADING
CONTROL ADD BUTTON, hDlg, %IDC_Refresh_B, "Refresh >>", 245, 100, _
50, 15
hFont1 = PBFormsMakeFont("MS Sans Serif", 8, 700, %FALSE, %FALSE, %FALSE, _
%ANSI_CHARSET)
CONTROL SEND hDlg, %IDC_Run_B, %WM_SETFONT, hFont1, 0
#PBFORMS END DIALOG
'SampleListBox hDlg, %IDC_AppList, 30
'SampleListBox hDlg, %IDC_Acitve_list, 30
GetAvtiveApps
DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt
#PBFORMS BEGIN CLEANUP %IDD_DIALOG1
DeleteObject hFont1
#PBFORMS END CLEANUP
FUNCTION = lRslt
END FUNCTION
'------------------------------------------------------------------------------
SUB GetAvtiveApps()
LOCAL rslt AS LONG
LOCAL i AS LONG
DIM Larray() AS PROCESSENTRY32
REDIM Larray(0)
rslt = procGetList(Larray())
LISTBOX RESET hDlg, %IDC_Acitve_list
FOR i = 0 TO UBOUND(Larray())
LISTBOX ADD hDlg, %IDC_Acitve_list, TRIM$(larray(i).szExeFile)
NEXT i
END SUB
SUB Add_to_list()
LOCAL txt AS STRING
LISTBOX GET TEXT hDlg, %IDC_Acitve_list TO txt
LISTBOX ADD hDlg, %IDC_applist, txt
END SUB
FF3:
Sub GetAvtiveApps()
Local rslt As Long
Local i As Long
Dim Larray() As PROCESSENTRY32
ReDim Larray(0)
rslt = procGetList(Larray())
ListBox Reset HWND_MAIN,HWND_MAIN_PROGLIST
For i = 0 To UBound(Larray())
FF_ListBox_AddString( HWND_MAIN_PROGLIST,Trim$(larray(i).szExeFile) )
' ListBox Add hDlg, %IDC_Acitve_list, Trim$(larray(i).szExeFile)
Next i
End Sub
Thank You
Ok I did find the problem. I missed #INCLUDE "pb_proc.bas" in the PB9 program.
I added that to the FF_AppStart and now I get
COMPILER FILE NOT FOUND / ACCESSABLE error
Do I have to do something different to include the file.
Thank you. Sorry for the dumb questions,
Doug
Ok, Ok I'm just stupid........my mind is way out to lunch. Just had to add it as a module