Recupera il nome del provider presente nel sistema.
LONG WINAPI dmtGetProviderName (
DWORD dwIndex,
CHAR *szProviderName,
DWORD *dwProviderLen);
External_Function dmtGetProviderName "dmtGetProviderName" Dimatec.dll ;
Integer dwIndex ;
Address lpszProviderName ;
Address lpdwProviderLen ; // Puntatore a Integer
Returns Integer
Public Declare Function dmtGetProviderName Lib "Dimatec.dll" _
(ByVal dwIndex As Long, _
ByVal szProviderName As String, _
ByRef dwProviderLen As Long) _
As Long
[DllImport("Dimatec.dll")]
public static extern int dmtGetProviderName (
int dwIndex,
StringBuilder szProviderName,
ref int dwProviderLen);
dwIndex - Indice del provider
szProviderName - Stringa che conterrà in nome del provider recuperato (se NULL la funzione scriverà in dwProviderLen la lunghezza della stringa che deve essere allocata per poter contenere il nome del provider)
dwProviderLen - Lunghezza della stringa che contiene il nome del provider
DMT_OK in caso di successo, altrimenti un codice di errore
Integer ret
Integer iCount
Integer iProviders
Address lpiProviders
Integer iLenProviderName
Address lpiLenProviderName
String sProviderName
Address lpsProviderName
Send Delete_Data of oList_ElencoProvider
Move 0 to iProviders
Move (AddressOf(iProviders)) to lpiProviders
Move (dmtGetProviderCount( ;
lpiProviders)) to ret
For iCount from 0 to (iProviders - 1)
Move 0 to iLenProviderName
Move (AddressOf(iLenProviderName)) to lpiLenProviderName
// Get the length
Move (dmtGetProviderName( ;
iCount , ;
0 , ;
lpiLenProviderName)) to ret
If (ret = DMT_OK) Begin
Move (Repeat(Character(32), iLenProviderName)) to sProviderName
Move (AddressOf(sProviderName)) to lpsProviderName
// Get the name
Move (dmtGetProviderName( ;
iCount , ;
lpsProviderName , ;
lpiLenProviderName)) to ret
If (ret = DMT_OK) Begin
If (Length(sProviderName) > 0) Begin
Send Add_Item of oList_ElencoProvider Msg_None sProviderName
End
End
End
Loop
Dim iProviders As Long
Dim iCount As Long
Dim iLenProviderName As Long
Dim sProviderName As String
Dim res As Long
cmbProvider.Clear
res = dmtGetProviderCount(iProviders)
For iCount = 0 To iProviders - 1
' Get the length
res = dmtGetProviderName(iCount, vbNullString, iLenProviderName)
If (res = DMT_OK) Then
sProviderName = Space(iLenProviderName)
' Get the name
res = dmtGetProviderName(iCount, sProviderName, iLenProviderName)
If (res = DMT_OK) Then
If (Len(sProviderName) > 0) Then
cmbProvider.AddItem (Trim(sProviderName)), iCount
End If
End If
End If
Next iCount