Dll RAPI probleme de convertion d'un code de VB
Publié : ven. 05/juin/2009 17:51
Bonjour tout le monde.
J'ai un probleme pour convertir un code que j'avais fait en VB pour l'exporte en PureBasic. Ce code permet de listé les fichiers d'un pocket PC
Le debut fonctionne sans probleme cela implique la connexion au pocket-pc. Je vous le fourni aussi cela peu, peu etre servir a quelqu'un.
Merci d'avance de toute l'aide que vous pourriez me fournir,
Cordialement,
GallyHC
J'ai un probleme pour convertir un code que j'avais fait en VB pour l'exporte en PureBasic. Ce code permet de listé les fichiers d'un pocket PC
Code : Tout sélectionner
Public Function RapiListFiles(ByVal strFileReps As String) As Boolean
' DECLARATION DES VARIABLES.
Dim FindData As CE_FIND_DATA
Dim SearchHandle As Long
Dim FindReturn As Long
Dim strResult As String
' ROUTINE DE LISTAGE DU POCKET-PC.
strFileReps = strFileReps & "*"
SearchHandle = CeFindFirstFile(StrPtr(strFileReps), FindData)
If SearchHandle <> INVALID_HANDLE_VALUE Then
Do
strResult = LCase$(UnicodeToAnsi(StrConv(FindData.cFileName, vbFromUnicode)))
Call List_affichage(strResult)
FindData.cFileName = vbNullString
FindReturn = CeFindNextFile(SearchHandle, FindData)
Loop Until FindReturn = 0
End If
End Function
Code : Tout sélectionner
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
;- DECLARATION DES VARIABLES.
#OPENLIB_0 = 1
#ONE_SECOND = 1000
#TIME_WAIT_READ = 5
#INVALID_HANDLE_VALUE = -1
Structure RAPIINIT
cbSize.l
heRapiInit.l
hrRapiInit.l
EndStructure
Structure CEOSVERSIONINFO
dwOSVersionInfoSize.l
dwMajorVersion.l
dwMinorVersion.l
dwBuildNumber.l
dwPlatformId.l
szCSDVersion.s[128]
EndStructure
Structure CE_FIND_DATA
dwFileAttributes.l
ftCreationTime.FILETIME
ftLastAccessTime.FILETIME
ftLastWriteTime.FILETIME
nFileSizeHigh.l
nFileSizeLow.l
dwOID.l
cFileName.s[256]
EndStructure
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
Procedure.b RapiConnect()
; INITIALISATION DE LA CONNEXION (RAPI.DLL).
If OpenLibrary(#OPENLIB_0, "rapi.dll")
Define Hr.l
Define dwTimeout.l
Define dwWaitRet.l
Protected pRapiInit.RAPIINIT
dwTimeout = #TIME_WAIT_READ * #ONE_SECOND
pRapiInit\cbSize = SizeOf(pRapiInit)
pRapiInit\heRapiInit = 0
pRapiInit\hrRapiInit = 0
Hr = CallFunction(#OPENLIB_0, "CeRapiInitEx", @pRapiInit)
If Hr>-1
dwWaitRet = WaitForSingleObject_(pRapiInit\heRapiInit, dwTimeout)
If dwWaitRet = 0
If pRapiInit\hrRapiInit >= 0
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
Else
ProcedureReturn #False
EndIf
Else
ProcedureReturn #False
EndIf
Else
ProcedureReturn #False
EndIf
EndProcedure
Procedure.b RapiClose()
; FERMETURE DE LA CONNEXION (RAPI.DLL).
CallFunction(#OPENLIB_0, "CeRapiUninit")
CloseLibrary(#OPENLIB_0)
EndProcedure
Procedure.s RapiGetCEOSVersionString()
; DONNE LA VERSION DU POCKET-PC.
Protected ceosver.CEOSVERSIONINFO
ceosver\dwOSVersionInfoSize = SizeOf(ceosver)
CallFunction(#OPENLIB_0, "CeGetVersionEx", @ceosver)
ProcedureReturn Str(ceosver\dwMajorVersion) + "." + Str(ceosver\dwMinorVersion) + "." + Str(ceosver\dwBuildNumber) + " " + ceosver\szCSDVersion
EndProcedure
Procedure.b RapiIsConnect()
; VERIFICATION DE LA CONNEXION.
If RapiGetCEOSVersionString()<>""
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Procedure.b RAPICopyCEFileToPC(CESourceFile.s,PCDestFile.s)
;
EndProcedure
Procedure.b RAPICopyPCFileToCE(PCSourceFile.s, CEDestFile.s)
;
EndProcedure
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
Procedure.s UnicodeToAnsi(chain.s)
;
Define i.l
Define j.l
Define result.s
j = Len(chain)
For i = 1 To j
If Asc(Mid(chain, i, 1)) > 0
result = result + Mid(chain, i, 1)
Else
Goto fin
EndIf
Next
fin:
ProcedureReturn result
EndProcedure
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
If RapiConnect() = #True
If RapiIsConnect() = #True
MessageRequester("Connexion au Pocket-PC", "VERSION: " + RapiGetCEOSVersionString(), #PB_MessageRequester_Ok)
RapiClose()
EndIf
EndIf
Cordialement,
GallyHC