49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
#pragma once
|
|
|
|
class __declspec(uuid("4065c728-35e0-4f47-ab1a-f1bc2346501b"))
|
|
IViewRow : public IUnknown
|
|
{
|
|
public:
|
|
virtual HRESULT get_Value( /*in*/ int iWhichColumn, /*out,retval*/ BSTR* pbstColumnValue ) = 0;
|
|
virtual HRESULT get_Count( /*out,retval*/ int* piColumnCount ) = 0;
|
|
};
|
|
|
|
|
|
class __declspec(uuid("b0f49322-2f03-490c-b6a0-55d7f1efe719"))
|
|
IWriteableViewRow : public IViewRow
|
|
{
|
|
public:
|
|
virtual HRESULT set_Value( /*in*/ int iWhichColumn, /*in*/ BSTR bstColumnValue ) = 0;
|
|
virtual HRESULT set_Count( /*in*/ int iColumnCount, /*in*/ BOOL bClipExtraColumns ) = 0;
|
|
};
|
|
|
|
|
|
class CRowObject : public IWriteableViewRow
|
|
{
|
|
CRITICAL_SECTION m_csColumnDataLock;
|
|
int m_iColumnCount, m_iMaxColumns;
|
|
_bstr_t *m_pbstColumnData;
|
|
LONG m_lRefCount;
|
|
|
|
HRESULT EnsureColumnSize( int iColumnsRequired );
|
|
HRESULT Lock();
|
|
HRESULT UnLock();
|
|
|
|
public:
|
|
|
|
CRowObject();
|
|
~CRowObject();
|
|
|
|
virtual ULONG STDMETHODCALLTYPE AddRef();
|
|
virtual ULONG STDMETHODCALLTYPE Release();
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface( REFIID riid, void** ppvObject );
|
|
|
|
virtual HRESULT get_Value( /*in*/ int iWhichColumn, /*out,retval*/ BSTR* pbstColumnValue );
|
|
virtual HRESULT set_Value( /*in*/ int iWhichColumn, /*out,retval*/ BSTR pbstColumnValue );
|
|
virtual HRESULT get_Count( /*out,retval*/ int* piColumnCount );
|
|
virtual HRESULT set_Count( /*out,retval*/ int piColumnCount, BOOL bClipExtras );
|
|
|
|
};
|
|
|
|
|