You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.4 KiB
75 lines
2.4 KiB
#ifndef _INC_SIGS_H
|
|
#define _INC_SIGS_H
|
|
|
|
#include <imnact.h>
|
|
|
|
#define SIG_ID 1
|
|
#define SIG_NAME 2
|
|
#define SIG_FILE 3
|
|
#define SIG_TEXT 4
|
|
#define SIG_TYPE 5
|
|
|
|
#define MAXSIGTEXT 1024
|
|
#define MAXSIGNAME 32
|
|
#define MAXSIGID CCHMAX_SIGNATURE
|
|
|
|
typedef struct tagSIGBUCKET
|
|
{
|
|
char szID[MAXSIGID];
|
|
IOptionBucket *pBckt;
|
|
} SIGBUCKET;
|
|
|
|
class CSignatureManager
|
|
{
|
|
public:
|
|
// ----------------------------------------------------------------------------
|
|
// Construction
|
|
// ----------------------------------------------------------------------------
|
|
CSignatureManager(HKEY hkey, LPCSTR pszRegKeyRoot);
|
|
~CSignatureManager(void);
|
|
|
|
ULONG AddRef(void);
|
|
ULONG Release(void);
|
|
|
|
// -------------------------------------------------------------------
|
|
// CSignatureManager Members
|
|
// -------------------------------------------------------------------
|
|
HRESULT GetSignature(LPCSTR szID, IOptionBucket **ppBckt);
|
|
HRESULT GetSignatureCount(int *pcSig);
|
|
HRESULT EnumSignatures(int index, IOptionBucket **ppBckt);
|
|
|
|
HRESULT CreateSignature(IOptionBucket **ppBckt);
|
|
HRESULT DeleteSignature(LPCSTR szID);
|
|
|
|
HRESULT GetDefaultSignature(LPSTR pszID, DWORD cchSize);
|
|
HRESULT SetDefaultSignature(LPCSTR pszID);
|
|
|
|
private:
|
|
LONG m_cRef;
|
|
BOOL m_fInit;
|
|
|
|
HKEY m_hkey;
|
|
char m_szRegRoot[MAX_PATH];
|
|
|
|
char m_szDefSigID[MAXSIGID];
|
|
SIGBUCKET *m_pBckt;
|
|
int m_cBckt;
|
|
int m_cBcktBuf;
|
|
|
|
HRESULT Initialize(void);
|
|
HRESULT GetBucket(SIGBUCKET *pSigBckt);
|
|
};
|
|
|
|
extern CSignatureManager *g_pSigMgr;
|
|
|
|
HRESULT InitSignatureManager(HKEY hkey, LPCSTR szRegRoot);
|
|
HRESULT DeinitSignatureManager(void);
|
|
|
|
INT_PTR CALLBACK SigDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
|
|
HRESULT FillSignatureMenu(HMENU hmenu, LPCSTR szAcct);
|
|
HRESULT GetSigFromCmd(int id, char * pszID, DWORD cchSize);
|
|
HRESULT InitSigPopupMenu(HMENU hmenu, LPCSTR szAcct);
|
|
void DeinitSigPopupMenu(HWND hwnd);
|
|
|
|
#endif // _INC_SIGS_H
|