clgroups.c

来自「PGP8.0源码 请认真阅读您的文件包然后写出其具体功能」· C语言 代码 · 共 102 行

C
102
字号
/*____________________________________________________________________________
	Copyright (C) 2002 PGP Corporation
	All rights reserved.

	CLgroups.c - Open/close group file

	$Id: CLgroups.c,v 1.4 2002/08/06 20:09:19 dallen Exp $
____________________________________________________________________________*/
#include "pgpPFLConfig.h"

// project header files
#include "PGPclx.h"

// external globals
extern HINSTANCE g_hInst;

//	_____________________________________
//
//	open group file and return groupfile object

PGPError PGPclExport
PGPclOpenGroupFile (
		PGPContextRef		context,
		PGPclGroupFile**	ppGroup)
{
	CHAR			szPath[MAX_PATH];
	PGPFileSpecRef	filespec;
	PGPError		err;
	PGPGroupSetRef	groupset;

	*ppGroup = 0;
	groupset = NULL;

	err = PGPclGetPath (kPGPclGroupsFile, szPath, sizeof(szPath));
	if (IsPGPError (err))
		return err;

	err = PGPNewFileSpecFromFullPath (context, szPath, &filespec);
	if(IsntPGPError (err))
	{
		err = PGPNewGroupSetFromFile (context, filespec, &groupset);
		if (IsPGPError (err))
			err = PGPNewGroupSet (context, &groupset);

		*ppGroup = (PGPclGroupFile *)PGPNewData (
				PGPPeekContextMemoryMgr (context), sizeof(PGPclGroupFile), 0);

		if (*ppGroup)
		{
			(*ppGroup)->filespec = filespec;
			(*ppGroup)->groupset = groupset;
		}
		else
		{
			err = kPGPError_OutOfMemory;
			PGPFreeGroupSet (groupset);
			PGPFreeFileSpec (filespec);
		}
	}

	return err;
}


//	_____________________________________
//
//	write group data to file

PGPError PGPclExport
PGPclSaveGroupFile (
		PGPclGroupFile*		pGroup)
{
	if (!pGroup)
		return kPGPError_BadParams;

	return (PGPSaveGroupSetToFile (pGroup->groupset, pGroup->filespec));
}


//	_____________________________________
//
//	close down group file

PGPError PGPclExport
PGPclCloseGroupFile (
		PGPclGroupFile*		pGroup)
{
	if (!pGroup)
		return kPGPError_BadParams;

	if(pGroup->groupset)
		PGPFreeGroupSet (pGroup->groupset);

	if(pGroup->filespec)
		PGPFreeFileSpec (pGroup->filespec);

	PGPFreeData (pGroup);

	return kPGPError_NoErr;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?