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.
 
 
 
 
 
 

106 lines
1.6 KiB

//
//
//
#ifndef SHAREMEM_H
#define SHAREMEM_H
//
// shared data definition
//
class CUIFCandMenuParent;
typedef struct _SHAREDDATA
{
DWORD dwThreadId;
HHOOK hHookKeyboard;
HHOOK hHookMouse;
HWND hWndMenu;
} SHAREDDATA;
//
// CCandUIMMFile
//
#define CANDUIMM_READONLY 0x00000000
#define CANDUIMM_READWRITE 0x00000001
class CCandUIMMFile
{
public:
CCandUIMMFile( void );
virtual ~CCandUIMMFile( void );
BOOL Open( LPSTR szName, DWORD dwFlag );
BOOL Create( LPSTR szName, DWORD dwFlag, SECURITY_ATTRIBUTES *psa, DWORD dwSize );
BOOL Close( void );
__inline BOOL IsValid( void )
{
return (GetData() != NULL);
}
__inline void *GetData( void )
{
return m_pvData;
}
private:
HANDLE m_hFile;
void *m_pvData;
};
//
// CCandUIMutex
//
class CCandUIMutex
{
public:
CCandUIMutex( void );
virtual ~CCandUIMutex( void );
BOOL Create( LPSTR szName, SECURITY_ATTRIBUTES *psa );
BOOL Close( void );
BOOL Lock( void );
BOOL Unlock( void );
private:
HANDLE m_hMutex;
};
//
// CCandUIShareMem
//
class CCandUIShareMem
{
public:
CCandUIShareMem( void );
virtual ~CCandUIShareMem( void );
BOOL Initialize( void );
BOOL Open( void );
BOOL Create( void );
BOOL Close( void );
BOOL LockData( void );
BOOL UnlockData( void );
__inline SHAREDDATA *GetData( void )
{
return (SHAREDDATA*)m_MMFile.GetData();
}
protected:
CCandUIMMFile m_MMFile;
CCandUIMutex m_Mutex;
};
#endif /* SHAREMEM_H */