2
FreeBasic
.bas
Dialog_Exemple_EXE-DLL 
/'    ' début de bloc commentaire
Dialog Exemple,  pour EXE/DLL  (Compilation conditionnelle)
compile avec: "fbc" - s gui InputBox.rc InputBox.bas
Ou avec ce RC inclus ici penser pour la dll de rajouter -x "nomEXE" - m xxx  pour forcer DllMain hors de CSED_FB

'/    ' fin de bloc commentaire




/'
_BEGIN_RC_  'début de bloc Rc   placer un '  devant _BEGIN_RC_     , pour ne pas prendre en compte
		#define IDD_DLG1 1000
		#define IDC_BTN2 1002
		#define IDC_EDT1 1003
		#define IDC_BTN1 1001
		#define IDC_STC1 1004
		#define Icon1 500
 
		IDD_DLG1 DIALOGEX 6,5,194,107
		CAPTION "test70 - pour voir !"
		FONT 9,"MS Sans Serif",2000,0,0
		STYLE 0x10CC0800
		BEGIN
			CONTROL "Annuler",IDC_BTN2,"Button",0x50010000,99,69,63,18
			CONTROL "Entrée vos saisie ici ...!",IDC_EDT1,"Edit",0x50010000,39,42,117,15,0x00000200
			CONTROL "Ok",IDC_BTN1,"Button",0x50010000,27,69,63,18
			CONTROL "Mon texte de vérification",IDC_STC1,"Static",0x50000201,12,12,174,24
		END

		Icon1 ICON DISCARDABLE "E:/Autoit_Portable/App/Aut2Exe/Icons/epub.ico"
_END_RC_  'fin de bloc Rc     placer un '  devant _END_RC_  , pour ne pas prendre en compte
'/
'fin de bloc Rc
rem

#Define COMPIL_NAME test34.exe      ' définition du nom exe/dll 
'													placer un '  devant pour ne pas prendre en compte

#Define COMPIL_RC inputBox1.rc       ' fichier de ressource à compiler ( si non inclus comme dessus)
'													placer un '  devant pour ne pas prendre en compte



#Include Once "windows.bi"




#define IDD_DLG1 1000
#define IDC_BTN2 1002
#define IDC_EDT1 1003
#define IDC_BTN1 1001
#define IDC_STC1 1004
#define Icon1 500





Dim Shared hIn1    AS hModule
Dim Shared hIcon1  AS hIcon

Dim Shared AS String retour
Dim Shared AS String Titre
Dim Shared AS String Valeur
Dim Shared AS String Info


Declare Function DlgProc(ByVal hI1 As hWnd, ByVal uI1 As Uinteger, ByVal wP1 As wParam, ByVal lP1 As lParam) As Integer

'  début compilation conditionnelle exe
#if __FB_OUT_EXE__
Declare Function WinMain(ByVal hI1 As hInstance, _
      ByVal hP1 As hInstance, _
      ByRef CLine As String, _
      ByVal CShow As Integer) As Integer


' définition de la function initiale
End WinMain(GetModuleHandle(null), null, Command(), SW_NORMAL)
' sinon démarrage sans function

'''
''' Program start
'''
Function WinMain(ByVal hInstExe As hInstance, _
         ByVal hPrevInstance As hInstance, _
         ByRef lpCmdLine As String, _
         ByVal iCmdShow As Integer) As Integer
   
 
   Titre = "Quel Titre ?"
   Valeur = "Quelle Valeur ?"
   Info = "Quelle Info ?"
   
   'hIn1 = GetModuleHandle(NULL)            '' initialisation sans function winmain
	hIn1 = hInstExe								  '' initialisation avec function winmain
   '' Create the Dialog
   'DialogBoxParam(hIn1, Cast(ZString Ptr, IDD_DLG1), NULL, @DlgProc, NULL)
   DialogBoxParam(hIn1, Cast(ZString Ptr, IDD_DLG1), 0, @DlgProc, 0)  'equivalent ci-dessus
	''
   '' Program has ended
   Return True
   'ExitProcess(0)
	
End Function
''' Program end
#endif
'  fin compilation conditionnelle exe


Function DlgProc(ByVal hWin As hWnd, ByVal uMsg As Uinteger, _
         ByVal wParam1 As wParam, _
         ByVal lParam1 As lParam) As Integer
   Dim AS Integer id
   Dim AS Integer Event1

   dim nBuffer              AS string = space(50)
   
   Select Case uMsg
      Case WM_INITDIALOG
         'SetWindowText hWin, Titre
         SetWindowText GetDlgItem(hWin, IDC_EDT1), Valeur
         SetWindowText GetDlgItem(hWin, IDC_STC1), Info
         
         hIcon1 = LoadIcon(hIn1, Cast(ZString Ptr, Icon1))
         SendMessage(hWin, WM_SETICON, NULL, Cast(lParam, hIcon1))
      Case WM_CLOSE
         EndDialog(hWin, 0)
         '
      Case WM_COMMAND
         id = LoWord(wParam1)
         Event1 = HiWord(wParam1)
         Select Case id
            Case IDC_BTN1
               GetWindowText GetDlgItem(hWin, IDC_EDT1), nBuffer, 50
               'MessageBox(hWin, nBuffer, "Test de bouton 1", MB_ICONINFORMATION)
               retour = nBuffer
               EndDialog(hWin, 0)
            Case IDC_BTN2
               'MessageBox(hWin, "Fermeture du programme", "Bouton OK", MB_ICONSTOP)
               retour = "Annul"
               EndDialog(hWin, 0)
               '
         End Select
         
      Case Else
         Return FALSE
         '
   End Select
   Return TRUE
   
End Function


'  début compilation conditionnelle dll
#if __FB_OUT_DLL__

Function FF3_DLL Alias "FF3_Dll"(ByVal Titre1 as String, _
         ByVal Valeur1 as String, ByVal Info1 as String) As Zstring Ptr Export
   retour = "Quit"
   Titre = Titre1
   Valeur = Valeur1
   Info = Info1
   DialogBoxParam(hIn1, Cast(ZString Ptr, IDD_DLG1), NULL, @DlgProc, NULL)
   Titre = retour
   Function = StrPtr(Titre)
End Function


Function DllMain Alias "DllMain"(ByVal hinstDLL As hInstance, _
         ByVal fdwReason As integer, _
         Byval lpvReserved As lPvoid) As integer Export
 
   Select Case fdwReason
      Case DLL_PROCESS_ATTACH
         hIn1 = hinstDLL
         'MessageBox(0,"Initialisation","Dll",MB_ICONINFORMATION)
         
         Return TRUE
         
      Case DLL_PROCESS_DETACH
         Return TRUE
   End Select
   
   Function = 1
End Function
#endif
'  fin compilation conditionnelle dll






