mirror of https://github.com/tongzx/nt5src
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.
59 lines
1.7 KiB
59 lines
1.7 KiB
// PROP.H : The internal property class
|
|
|
|
#ifndef __PROP_H__
|
|
#define __PROP_H__
|
|
|
|
class CIntProperty
|
|
{
|
|
public:
|
|
CIntProperty();
|
|
~CIntProperty();
|
|
|
|
// Access functions
|
|
STDMETHODIMP SetProp(DWORD dwData) {
|
|
m_dwData = dwData;
|
|
m_cbSize = sizeof(DWORD);
|
|
m_dwType = TYPE_VALUE;
|
|
return S_OK; }
|
|
|
|
STDMETHODIMP SetProp(LPCWSTR lpszwString);
|
|
STDMETHODIMP SetProp(LPVOID lpvData, DWORD cbBufSize);
|
|
|
|
|
|
STDMETHODIMP SetPropID(DWORD dwID) { m_dwPropID = dwID;
|
|
return S_OK; }
|
|
STDMETHODIMP SetPersistState(BOOL fPersist) { m_fPersist = fPersist;
|
|
return S_OK; }
|
|
|
|
STDMETHODIMP SetType(DWORD dwType) { m_dwType = dwType;
|
|
return S_OK; }
|
|
|
|
DWORD GetPropID() { return m_dwPropID; }
|
|
DWORD GetSize() { return m_cbSize; }
|
|
DWORD GetType() { return m_dwType; }
|
|
STDMETHODIMP GetProp(DWORD& dwData) { dwData = m_dwData;
|
|
return S_OK; }
|
|
STDMETHODIMP GetProp(LPWSTR& lpszwString) { lpszwString = m_lpszwString;
|
|
return S_OK; }
|
|
STDMETHODIMP GetProp(LPVOID& lpvData) { lpvData = m_lpvData;
|
|
return S_OK; }
|
|
BOOL GetPersistState() { return m_fPersist; }
|
|
|
|
private:
|
|
DWORD m_dwPropID;
|
|
DWORD m_cbSize;
|
|
DWORD m_dwType;
|
|
union
|
|
{
|
|
DWORD m_dwData;
|
|
LPVOID m_lpvData;
|
|
LPWSTR m_lpszwString;
|
|
};
|
|
BOOL m_fPersist;
|
|
|
|
static int m_cRefCount;
|
|
static LPVOID m_pMemPool;
|
|
};
|
|
|
|
|
|
#endif
|