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.
 
 
 
 
 
 

51 lines
2.2 KiB

//+-------------------------------------------------------------------------
// Notify.h
//--------------------------------------------------------------------------
#ifndef __OENOTIFY_H
#define __OENOTIFY_H
#include <notify.h>
//+-------------------------------------------------------------------------
// CNotify
//--------------------------------------------------------------------------
class CNotify : public INotify
{
public:
//+---------------------------------------------------------------------
// Construction
//----------------------------------------------------------------------
CNotify(void);
~CNotify(void);
//+---------------------------------------------------------------------
// Construction
//----------------------------------------------------------------------
STDMETHODIMP QueryInterface(REFIID riid, LPVOID *ppv);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//+---------------------------------------------------------------------
// Construction
//----------------------------------------------------------------------
STDMETHODIMP Initialize(LPCSTR pszName);
STDMETHODIMP Register(HWND hwndNotify, HWND hwndThunk, BOOL fExternal);
STDMETHODIMP Unregister(HWND hwndNotify);
STDMETHODIMP Lock(HWND hwnd);
STDMETHODIMP Unlock(void);
STDMETHODIMP NotificationNeeded(void);
STDMETHODIMP DoNotification(UINT uWndMsg, WPARAM wParam, LPARAM lParam, DWORD dwFlags);
private:
//+---------------------------------------------------------------------
// Private Data
//----------------------------------------------------------------------
LONG m_cRef; // Reference Count
HANDLE m_hMutex; // Handle to the memory mapped file mutex
HANDLE m_hFileMap; // Handle to the memory mapped file
LPNOTIFYWINDOWTABLE m_pTable; // Pointer into memory mapped file view
BOOL m_fLocked; // This object is currently in m_hMutex
HWND m_hwndLock; // hwnd that called ::Lock
};
#endif // __NOTIFY_H