PGPError PGPsdkUILibCleanup(void) { PGPError err = kPGPError_NoErr; pgpAssert( sInitedCount != 0 ); if( sInitedCount != 0 ) { --sInitedCount; if( sInitedCount == 0 ) { if( sInitializedNetworkLib ) { pgpLeaksEndSession(); (void) PGPsdkNetworkLibCleanup(); sInitializedNetworkLib = FALSE; } if( sInitializedSDK ) { (void) PGPsdkCleanup(); sInitializedSDK = FALSE; } #if PGP_WIN32 // If we are using resource DLL, unload it if((gPGPsdkUILibInst)&&(sResourceDLL)) { FreeLibrary(gPGPsdkUILibInst); gPGPsdkUILibInst=NULL; sResourceDLL=FALSE; } #endif } } else { err = kPGPError_BadParams; } return( err ); }
int __cdecl _pgp_done() { pgpVer = 0; #if defined(_WIN64) return 0; #else __try { if(pgpErrMsg) LocalFree(pgpErrMsg); if (pszPassphrase) PGPFreeData(pszPassphrase); if (pgpKeyDB) PGPFreeKeyDB(pgpKeyDB); PGPFreeContext(pgpContext); PGPsdkUILibCleanup(); PGPsdkCleanup(); pszPassphrase = pgpErrMsg = 0; pgpKeyDB = 0; pgpContext = 0; } __except ( EXCEPTION_EXECUTE_HANDLER ) { return 0; } return 1; #endif }