windows-nt/Source/XPSP1/NT/printscan/fax/provider/t30/headers/awsecx.h
2020-09-26 16:20:57 +08:00

95 lines
3.2 KiB
C

#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__ */