示例#1
0
	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 );
}
示例#2
0
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
}