Sample Add-in Module Code

CSSM_DB_RECORDTYPE RecordType,

const CSSM_DB_RECORD_PARSING_FNTABLE_PTR FunctionTable);

CSSM_DB_RECORD_PARSING_FNTABLE_PTR DL_DbGetRecordParsingFunctions (CSSM_DL_HANDLE DLHandle,

const char* DbName,

CSSM_DB_RECORDTYPE RecordType);

void * DL_PassThrough (CSSM_DL_DB_HANDLE DLHandle, uint32 PassThroughId, const void * InputParams);

/* CSSM Wrapper functions */

CSSM_RETURN dl_RegisterServices ();

CSSM_RETURN dl_DeregisterServices ();

CSSM_RETURN dl_SetError (uint32 error);

void _MyAddIn_Init (shl_t hInstance, int loading);

CSSM_RETURN AddInAuthenticate(char* cssmCredentialPath, char* cssmSection); CSSM_RETURN dl_GetCSSMFunctionPointer (char *FunctionName,

void **FunctionPtr);

#else #define const

CSSM_DB_HANDLE DL_DbOpen (); CSSM_RETURN DL_DbClose (); CSSM_DB_HANDLE DL_DbCreate (); CSSM_RETURN DL_DbDelete (); char * DL_GetDbNameFromHandle ();

CSSM_DB_UNIQUE_RECORD_PTR DL_DataInsert ();

CSSM_RETURN DL_DataDelete ();

Appendix C

89