Sample Add-in Module Code

DLFunctionTable.Authenticate

= DL_Authenticate;

DLFunctionTable.DbOpen

= DL_DbOpen;

DLFunctionTable.DbClose

= DL_DbClose;

DLFunctionTable.DbCreate

= DL_DbCreate;

DLFunctionTable.DbDelete

= DL_DbDelete;

DLFunctionTable.DbImport

= DL_DbImport;

DLFunctionTable.DbExport

= DL_DbExport;

DLFunctionTable.DbSetRecordParsingFunctions =

DL_DbSetRecordParsingFunctions;

 

DLFunctionTable.DbGetRecordParsingFunctions =

DL_DbGetRecordParsingFunctions;

 

DLFunctionTable.GetDbNameFromHandle = DL_GetDbNameFromHandle;

DLFunctionTable.DataInsert

= DL_DataInsert;

DLFunctionTable.DataDelete

= DL_DataDelete;

DLFunctionTable.DataGetFirst

= DL_DataGetFirst;

DLFunctionTable.DataGetNext

= DL_DataGetNext;

DLFunctionTable.DataAbortQuery = DL_DataAbortQuery;

DLFunctionTable.FreeUniqueRecord = DL_FreeUniqueRecord;

DLFunctionTable.PassThrough = DL_PassThrough;

/* Register with CSSM and retrieve memory management function pointers */

return ((REGISTER_FUNC_PTR)cssmRegister)(&my_addin_guid, &DLRegInfo, &DLMemoryFunctions, NULL);

}

CSSM_RETURN dl_DeregisterServices ()

{ return ((DE_REGISTER_FUNC_PTR)cssmDeregister)(&my_addin_guid); }

/*-----------------------------------------------------------------------------

* Name: DL_Initialize

Appendix C

95