#ifndef __AWSECX_H__ #define __AWSECX_H__ #ifdef __cplusplus extern "C" { #endif #define MINKEYBUFSIZE 1024 // dictated by comments in awsec.h #define SECTYPE_NONE 0 #define SECTYPE_KEY 1 #define SECTYPE_PASSWORD 2 #define CB_QUERYREPLACE 0 #define CB_INFORMDUPLICATE 1 typedef BOOL (CALLBACK QUERYREPLACEKEYCB)(HWND hWndParent, LPTSTR pKeyOwner, UINT context) ; typedef WORD (CALLBACK *RESOLVEGETKEYCB)(LPMAPISESSION pSession, LPARAM lParamfpx, WORD context, LPBYTE pKey, LPWORD pcbKey); typedef struct { LPBYTE pKey ; WORD cbKey; LPTSTR pName; LPENTRYID pEntryID; LONG cbEntryID; } SECKEYREC, *LPSECKEYREC ; BOOL GetPABStrings(LPMAPISESSION pSession, LPTSTR *ppFName, LPTSTR *ppEAddress); BOOL GetLoginName(LPMAPISESSION pSession, LPTSTR *ppLoginName); BOOL GetLoginNameXP (LPTSTR lpszFriendly, LPTSTR lpszEmail, LPTSTR *ppLoginName); WORD GetCurrentUserAddress(LPMAPISESSION pSession, LPTSTR *ppAddress, LPWORD pNChars); BOOL SetNoneSecurityProps(LPMAPIPROP pMsg, LPTSTR pPwdEncrypt, BOOL bDigSig, DWORD dwhSecurity); BOOL SetKeySecurityProps(LPMAPIPROP pMsg, LPTSTR pPwdEncrypt, BOOL bDigSig, DWORD dwhSecurity); BOOL SetPwdSecurityProps(LPMAPIPROP pMsg, LPTSTR pPwdEncrypt, LPTSTR pPassword, BOOL bDigSig, DWORD dwhSecurity); BOOL GetSecurityProps(LPMAPIPROP pMsg, LPTSTR pPwdDecrypt, LPWORD pSecType, LPBOOL pDigSig, LPTSTR *ppSecPwd, LPTSTR *ppSimplePwd); BOOL SetResolveGetKeyCB(DWORD hSec, RESOLVEGETKEYCB fpxResolve, LPARAM lParamfpx); BOOL SetMapiSession(DWORD hSec, LPMAPISESSION pSession); BOOL SetAddressBook(DWORD hSec, LPADRBOOK lpAB); WORD ImportPrivateKeysEx(LPSTR userid, LPSOSSESSION lpSess, ReadCB FAR *readCB, DWORD readHand, LPSTR password); WORD AddPublicKeysEx(LPSOSSESSION lpSess, LPSECKEYREC pKeys, int iNumKeys, LPMAPISESSION pSession, QUERYREPLACEKEYCB fpxCB, HWND hWndParent); WORD DelPublicKeysEx(LPSOSSESSION lpSess, LPSECKEYREC pKeys, int iNumKeys, LPMAPISESSION pSession); WORD GetPublicKeyEx(LPSOSSESSION lpSess, LPTSTR pOwner, BYTE FAR *key, LPWORD pcbKey); WORD GetUsersPublicKeyEx(LPSOSSESSION lpSess, BYTE FAR *key, LPWORD pcbKey); // Convenient utilities. BOOL GetFaxABEntryID(LPADRBOOK pAB, LPENTRYID *ppEntryID, LPULONG pcbEntryID); BOOL MakeTargetName(LPTSTR pFName, LPTSTR pEAddress, LPTSTR *ppTargetName); BOOL AddKeyEntryToPAB(LPADRBOOK pAB, LPABCONT pPAB, LPTSTR pFName, LPTSTR pEAddress, LPBYTE pKey, WORD cbKey, LPSPropValue *ppRetEntryID); // Additional return codes. #define SEC_INVSECHANDLE 20 // security handle has become invalid. #define SEC_LOSTKEYS 21 // this operation has caused loss of keys. #define SEC_REGFAILURE 22 // registry failure keeps operation from succeeding. #define SEC_BUFTOOSMALL 23 // supplied buffer was to small to hold return. #define SEC_NOMATCHINGOWNER 24 // Could not find key owner matching the target. #define SEC_DUPLICATEOWNERS 25 // More could not resolve key ownership. #define SEC_MAPIERROR 26 // Unexpected mapi error returned. // Programmer error: #define SEC_NOMAPISESSION 50 // Mapi Session not set, opperation requires one #define SEC_FAILURE 100 #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __AWSECX_H__ */