dmtCreate

Restituisce un handle ad un nuovo oggetto DiMaTek che contiene un riferimento a tutti i dati necessari al corretto funzionamento della libreria.

 

Questa funzione deve essere chiamata almeno una volta all'inizio del blocco di codice in cui si intenda usare la libreria, in quanto la maggior parte delle funzioni esportate dalla libreria DiMaTek hanno bisogno dell'handle da essa restituito.

 

E' possibile aprire più sessioni criptografiche fino ad un massimo di 99 eseguendo dmtCreate ogni volta, è compito del programmatore memorizzare gli handle di tutte le sessioni; è importante liberare l'handle dell'oggetto DiMaTek quando non più necessario utilizzando la funzione dmtRelease.

 

Se il valore restituito da dmtCreate è inferiore a 0, significa che c'è stato un errore (puoi verificare nel valore restituito il tipo di errore). Nessuna  funzione della libreria potrà essere utilizzata se dmtCreate fallisce.

 

Dichiarazione - C

HDMTOBJ WINAPI dmtCreate (

char *szContainerName,

char *szStoreLocation = "MY",

char *szDllOptional = "",

dword fUseEnhancedProvider =0,

bool fLowLevelCSPFunctionenabled= False);

 

Dichiarazione - Visual Basic

Public Declare Function dmtCreate Lib "Dimatec.dll" _

(ByVal szContainerName, _

Optional ByVal szStoreLocation As String = "MY" ,_

Optional ByVal szOptionalDll As String = vbNullString, _

Optional ByVal  fUseEnhancedProvider as long =0,

Optional ByVal fLowLevelCSPFunctionenabledAs Boolean = False) As Long

 

Dichiarazione - Visual Dataflex

External_Function dmtCreate "dmtCreate" Dimatec.dll ;

string szContainerName ;

string szStoreLocation ;

string szDllOptional ;

integer fUseEnhancedProvider ;

integer fLowLevelCSPFunctionenabledAs ;

returns integer

 

Dichiarazione - C Sharp

[DllImport("Dimatec.dll")]

public static extern int dmtCreate (

            string szContainerName,

            string szStoreLocation /*= "MY"*/,

            string szDllOptional /*= ""*/,

            int fUseEnhancedProvider ,

            bool  fLowLevelCSPFunctionenabledAs)

Parametri di input:
Valore di ritorno:

Un handle valido ad un oggetto DiMaTek in caso di successo, altrimenti un codice di errore.

 

 

Note:

Se il parametro szOptionalDll è NULL vengono by passati i controlli su lettore e Smartcard. L'handle creato però può essere usato solo con funzioni che non necessitano del colloquio con la smart-card.

 

   


Esempi di utilizzo

 

Nei seguenti esempi vengono illustrati due differenti modi di inizializzare la libreria DiMaTek:

Collegamento alla libreria "SI_PKCS11.dll" (o ad un'altra libreria fornita da un CSP) del CSP

 Nessuna libreria di CSP collegata

 Questo tipo di inizializzazione viene utilizzato quando verrà caricato uno store di tipo pfx con la funzione dmtLoadCertStoreFile

 

 

Visual Dataflex

Move "0" to szContainerName

Move "MY" to szStoreLocation

Move "C:\WINDOWS\system32\inpkisc.dll" to szDllOptional

Move (dmtCreate( ;

      szContainerName , ;

      szStoreLocation , ;

      szDllOptional ,

      2 ; // su win7

      False )) to hDmt

 


 

Move "0" to szContainerName

Move "" to szStoreLocation

Move "" to szDllOptional

Move (dmtCreate( ;

      szContainerName , ;

      szStoreLocation , ;

      szDllOptional ,

       3 ;  // x xp

      False )) to hDmt

Visual Basic

Public g_hDmt As Long

g_hDmt = dmtCreate(0, "MY", "C:\WINDOWS\system32\SI_PKCS11.dll", 0, False)

 


 

Public g_hDmt As Long

g_hDmt = dmtCreate(0, "", "", 0, False)

 

C Sharp

CDIMATECLIBRARY.ghDimatecObj = CDIMATECLIBRARY.dmtCreate(

                    "",

                    "MY",

                    "C:\WINDOWS\system32\SI_PKCS11.dll", 2

                    false);

 


 

CDIMATECLIBRARY.ghDimatecObj = CDIMATECLIBRARY.dmtCreate(

                    "",

                    "",

                    "",

                    2,

                    false);