亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pgprecipientdialog.cpp

?? vc環境下的pgp源碼
?? CPP
字號:
/*____________________________________________________________________________
	Copyright (C) 1997 Network Associates Inc. and affiliated companies.
	All rights reserved.
	
	$Id: PGPRecipientDialog.cpp,v 1.34 1999/03/10 02:54:43 heller Exp $
____________________________________________________________________________*/

#include "PGPui32.h"
#include "pgpDialogs.h"
#include "RDprecmp.h"
#include "pgpSDKUILibPriv.h"

extern HHOOK hhookKeyboard;
extern HHOOK hhookMouse;

// BuildTable
//
// This routine takes our PGPRecipientsList and inserts them
// into the correct listview.

	UINT
PopDialog(
	PGPContextRef				context,
	CPGPRecipientDialogOptions 	*options,
	PGPRecipientsList			*mRecipients)
{
	PGPError			err = kPGPError_NoErr;
	PGPRecipientKey		*curKey;
	PGPRecipientUser	*curGroup;
	PGPRecipientUser	*curUser;
	PGPBoolean	haveRecipients = FALSE;
	UINT  RetVal = ADDUSER_OK;
	PGPInt32	minimumValidity;
				
	if( options->mIgnoreMarginalValidity )
	{
		minimumValidity = (PGPInt32) kPGPValidity_Complete;
	}
	else
	{
		minimumValidity = (PGPInt32) kPGPValidity_Marginal;
	}
				
	/*
	** Check to see if the dialog needs to be displayed.
	** Show the dialog there are missing, ambiguous, invalid,
	** or no default recipients
	*/

	curKey = mRecipients->keys;
	while( IsntNull( curKey ) )
	{
		curUser = curKey->users;
		while( IsntNull( curUser ) )
		{
			if( curUser->location == 
					kPGPRecipientUserLocation_RecipientList )
			{
				haveRecipients=TRUE;

				if( curUser->multipleMatch )
					RetVal=ADDUSER_MULTIPLEMATCH;
				
				if(	curUser->validity < minimumValidity )
					RetVal=ADDUSER_KEYSNOTVALID;
			}
			
			curUser = curUser->nextUser;
		}
	
		curKey = curKey->nextKey;
	}
	
	curGroup = mRecipients->groups;
	while( IsntNull( curGroup ) )
	{
		pgpAssert( curGroup->kind == kPGPRecipientUserKind_Group );
		
		if( curGroup->location == 
				kPGPRecipientUserLocation_RecipientList )
		{
			haveRecipients = TRUE;

			if( curGroup->multipleMatch )
				RetVal=ADDUSER_MULTIPLEMATCH;
				
			if(	curGroup->validity < minimumValidity )
				RetVal=ADDUSER_KEYSNOTVALID;
		}

		curGroup = curGroup->nextUser;
	}
	
	curUser = mRecipients->missingRecipients;

	while( IsntNull( curUser ) )
	{
		pgpAssert( curUser->kind ==
				kPGPRecipientUserKind_MissingRecipient );

		if( curUser->location ==
				kPGPRecipientUserLocation_RecipientList )
		{
			RetVal=ADDUSER_KEYSNOTFOUND;
		}
				
		curUser = curUser->nextUser;
	}

	if(( ! haveRecipients ) || (IsPGPError(err)))
		RetVal = ADDUSER_NORECIPIENTSTOSEARCH; 

	return( RetVal );
}
	
	PGPError
EventHandler(
	PGPRecipientsList 	*recipients,
	PGPRecipientEvent 	*event,
	PGPUserValue 		userValue)
{
	PGPError	err 		= kPGPError_NoErr;
	DWORD		strIndex 	= 0;
	const char	*userName	= NULL;
	PRECGBL prg;
	
	(void) recipients;
	(void) userValue;
	
	prg=(PRECGBL)userValue;

	switch( event->type )
	{
		case kPGPRecipientEvent_MoveUserFailedEvent:
		{
			if( event->user->kind == kPGPRecipientUserKind_Key )
			{
				strIndex = IDS_NOKEYADKERR;
			}
			else
			{
				strIndex = IDS_NOGROUPADKERR;
			}
		
			userName = PGPGetRecipientUserNamePtr( event->user );
			break;
		}
		
		case kPGPRecipientEvent_MoveUserWarningEvent:
		{
			if( event->user->kind == kPGPRecipientUserKind_Key )
			{
				strIndex = IDS_NOKEYADKWARN;
			}
			else
			{
				strIndex = IDS_NOGROUPADKWARN;
			}
		
			userName = PGPGetRecipientUserNamePtr( event->user );
			break;
		}
		
		case kPGPRecipientEvent_MovedARRWarningEvent:
		{
			strIndex = IDS_MOVEDARRWARN;
			userName = PGPGetRecipientUserNamePtr( event->user );
			
			break;
		}
	}
	
	if( strIndex != 0 )
	{
		char MsgTxt[255];
		char DlgTxt[255+kPGPMaxUserIDSize];
		char StrRes[500];

		LoadString(gPGPsdkUILibInst, strIndex, MsgTxt, sizeof(MsgTxt));
		LoadString(gPGPsdkUILibInst, IDS_RECIPIENTWARNING, StrRes, sizeof(StrRes));

		sprintf(DlgTxt,MsgTxt,userName);

		MessageBox(prg->hwndRecDlg, DlgTxt,StrRes, 
			MB_OK|MB_ICONWARNING);
	}
	
	return( err );
}

PGPError	
pgpGetMissingRecipientKeyIDStringPlatform(PGPContextRef context,
					const PGPKeyID	*keyID, char keyIDString[256])
{
	PGPError	err;
	(void) context;
	
	err = PGPGetKeyIDString( keyID, kPGPKeyIDString_Abbreviated, keyIDString );
	if( IsntPGPError( err ) )
	{
		char	pString[255];
		char	tempStr[255];
		
		strcpy(tempStr,keyIDString);
		LoadString(gPGPsdkUILibInst, IDS_UNKNOWNKEYIDSTR, pString, sizeof(pString));
		sprintf(keyIDString,pString,tempStr);
	}
	
	return( err );
}

	PGPError
pgpRecipientDialogPlatform(
	PGPContextRef				context,
	CPGPRecipientDialogOptions 	*options)
{
	PGPError			err;
	PRECGBL				prg;
	UINT				RetVal;
	PGPBoolean			bPopDialog=TRUE;
	PGPBoolean			haveDefaultARRs;

	prg=(PRECGBL)malloc(sizeof(RECGBL));

	if(prg)
	{
		memset(prg,0x00,sizeof(RECGBL));

		prg->context=context;
		prg->tlsContext=options->mTLSContext;
		prg->ksEntries=options->mServerList;
		prg->numKSEntries=options->mServerCount;
		prg->mWindowTitle=options->mWindowTitle;
		prg->mSearchBeforeDisplay=options->mSearchBeforeDisplay;
		prg->mDialogOptions=options->mDialogOptions;
		prg->mNumDefaultRecipients=options->mNumDefaultRecipients;
		prg->mDefaultRecipients=(struct PGPRecipientSpec *)options->mDefaultRecipients;
		prg->mDisplayMarginalValidity=options->mDisplayMarginalValidity;
		prg->mIgnoreMarginalValidity=options->mIgnoreMarginalValidity;
		prg->mGroupSet=options->mGroupSet;
		prg->mClientKeySet=options->mClientKeySet;
		prg->mRecipientKeysPtr=options->mRecipientKeysPtr;
		prg->mHwndParent=options->mHwndParent;
		prg->mNewKeys=options->mNewKeys;

		err = PGPBuildRecipientsList( options->mHwndParent,
			context, options->mClientKeySet,
			options->mGroupSet, options->mNumDefaultRecipients,
			options->mDefaultRecipients, options->mServerCount,
			options->mServerList, options->mTLSContext,
			options->mSearchBeforeDisplay, options->mEnforcement,
			EventHandler, prg, &(prg->mRecipients), &haveDefaultARRs );

		RetVal=	PopDialog(context,options,&(prg->mRecipients));

		if(RetVal==ADDUSER_OK)
		{
			bPopDialog=FALSE;
		}

		if((bPopDialog)||(options->mAlwaysDisplay)||
			(haveDefaultARRs && options->mAlwaysDisplayWithARRs))
		{
			prg->AddUserRetVal=RetVal;
					
			InitRandomKeyHook(&hhookKeyboard,&hhookMouse);
			RetVal=newPGPRecipientDialog(prg);
			UninitRandomKeyHook(hhookKeyboard,hhookMouse);
		}
		else
		{
			RetVal=TRUE;
		}

		if(RetVal)
		{
			PGPGetRecipientKeys(&(prg->mRecipients),
				options->mRecipientKeysPtr, options->mNewKeys,
				options->mRecipientCount, options->mRecipientList);
		}

		PGPDisposeRecipientsList(&(prg->mRecipients));

		free(prg);
	}

	if(RetVal)
		err=kPGPError_NoErr;
	else
		err=kPGPError_UserAbort;

	return( err );
}


/*__Editor_settings____

	Local Variables:
	tab-width: 4
	End:
	vi: ts=4 sw=4
	vim: si
_____________________*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利一区在线观看| 亚洲国产精品嫩草影院| 美女网站视频久久| 精品久久久久香蕉网| 国产成人8x视频一区二区 | 亚洲天堂精品在线观看| a亚洲天堂av| 蜜桃一区二区三区四区| 日韩精品视频网站| 亚洲欧美在线视频观看| 欧美色综合天天久久综合精品| 日韩精品亚洲一区| 免费成人在线视频观看| 亚洲精品成人精品456| 91精品国模一区二区三区| 成人黄色a**站在线观看| 免费久久99精品国产| 美女任你摸久久| 国产又粗又猛又爽又黄91精品| 亚洲电影一级片| 亚洲欧美日韩国产一区二区三区| 久久色成人在线| 91精品国产综合久久精品app| 精品亚洲欧美一区| 午夜精品久久久久久| 亚洲欧美另类综合偷拍| 亚洲国产视频a| 看片网站欧美日韩| 亚洲不卡在线观看| 久久精品久久综合| 成人av第一页| 欧美精品成人一区二区三区四区| 一本色道亚洲精品aⅴ| 成人黄色电影在线| 欧美色网一区二区| 欧美mv日韩mv国产网站| 中文字幕va一区二区三区| 日韩欧美在线一区二区三区| 欧美夫妻性生活| 久久精品这里都是精品| 国产午夜精品美女毛片视频| 亚洲人成精品久久久久久| 婷婷久久综合九色国产成人| 国产成人午夜视频| 欧美日韩在线电影| 欧美性生活久久| 国产午夜精品美女毛片视频| 婷婷一区二区三区| 99精品欧美一区二区三区小说| 99精品一区二区| 日韩一区二区三区免费看| 亚洲国产综合人成综合网站| 国产麻豆视频一区| 欧美日韩高清一区| 日韩一卡二卡三卡四卡| 一区二区三区欧美久久| 亚洲va欧美va国产va天堂影院| 国产乱子伦视频一区二区三区| 成人午夜视频在线| 日本精品免费观看高清观看| 欧美日韩国产片| 亚洲日本免费电影| 国产高清精品网站| 欧美大肚乱孕交hd孕妇| 中文幕一区二区三区久久蜜桃| 亚洲精品网站在线观看| 国产成人精品免费网站| 欧美mv和日韩mv国产网站| 免费美女久久99| 在线不卡中文字幕| 午夜电影网一区| 欧美美女bb生活片| 五月天精品一区二区三区| 欧美视频一区二区三区四区| 一区二区在线看| 欧洲一区二区三区免费视频| 日韩美女视频一区二区在线观看| 亚洲午夜电影网| 欧美色区777第一页| 亚洲国产中文字幕| 欧美撒尿777hd撒尿| 亚洲第一福利视频在线| 欧美高清视频www夜色资源网| 亚洲电影视频在线| 日韩三级免费观看| 另类欧美日韩国产在线| 久久色中文字幕| 成人app在线观看| 亚洲黄色小说网站| 欧美日韩久久不卡| 男人的天堂久久精品| 久久精品欧美日韩| 91在线视频网址| 亚洲成av人片在线| 精品国产一区二区亚洲人成毛片| 亚洲欧美在线观看| 91精品福利视频| 爽好多水快深点欧美视频| 欧美一区二区三区免费观看视频| 麻豆精品一区二区| 中文av字幕一区| 欧美猛男超大videosgay| 喷白浆一区二区| 中文字幕+乱码+中文字幕一区| 91蜜桃在线观看| 国产精品免费看片| 欧美中文字幕不卡| 裸体歌舞表演一区二区| 国产亚洲精品bt天堂精选| 色视频一区二区| 久久国产日韩欧美精品| 中文字幕免费一区| 欧美精品日日鲁夜夜添| 国产成人综合自拍| 午夜婷婷国产麻豆精品| 久久久99免费| 激情综合色综合久久综合| 亚洲欧洲日韩av| 欧美一区二区高清| www.在线欧美| 精品在线播放午夜| 夜夜操天天操亚洲| 国产精品午夜电影| 欧美一区二区黄色| 欧美性xxxxxxxx| 成人小视频免费观看| 蜜桃视频在线观看一区| 一区二区三区在线观看欧美| 久久久久久免费网| 日韩一区二区在线观看| 色哟哟一区二区在线观看| 国内精品国产成人| 国产精品午夜电影| 久久综合一区二区| 欧美日韩日日夜夜| 91一区二区在线| 国产精品18久久久久久vr| 日本aⅴ亚洲精品中文乱码| 亚洲欧美日韩电影| 亚洲欧洲美洲综合色网| 久久久一区二区| 精品国产不卡一区二区三区| 欧美日韩视频第一区| 91蜜桃免费观看视频| 成人黄色片在线观看| 国产高清无密码一区二区三区| 另类欧美日韩国产在线| 蜜乳av一区二区| 青青草原综合久久大伊人精品优势| 亚洲黄色性网站| 亚洲综合色区另类av| 欧美大片国产精品| 欧美日韩精品一区二区三区| 在线观看视频一区二区| 99久久伊人精品| 91网站最新网址| 色av一区二区| 欧美亚洲国产怡红院影院| 91久久精品网| 欧美日韩综合色| 制服.丝袜.亚洲.中文.综合| 91精品午夜视频| 精品久久久久久久人人人人传媒 | 麻豆精品久久精品色综合| 视频一区中文字幕| 轻轻草成人在线| 国产主播一区二区三区| 国产精品一级片| av电影天堂一区二区在线| 91美女片黄在线观看91美女| 一本大道久久精品懂色aⅴ| 欧美在线高清视频| 欧美日韩黄色影视| 日韩三级中文字幕| 2017欧美狠狠色| 亚洲欧洲制服丝袜| 日本网站在线观看一区二区三区| 国产精品久久久久aaaa樱花| 精品国产123| 国产精品美女久久久久久久久 | 欧美精品粉嫩高潮一区二区| 日韩精品专区在线| 国产欧美一区二区精品仙草咪| 4438成人网| 久久久久九九视频| 成人免费在线播放视频| 性做久久久久久免费观看欧美| 老司机一区二区| 91极品视觉盛宴| 日韩精品一区二区三区在线观看 | 亚洲精品中文字幕在线观看| 丝瓜av网站精品一区二区| 国产剧情一区二区三区| 91色婷婷久久久久合中文| 日韩一区二区三| 中文天堂在线一区| 蜜乳av一区二区三区| 91电影在线观看| 国产精品麻豆99久久久久久| 日韩激情一区二区|