Leaked source code of windows server 2003
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

#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