97 lines
2.5 KiB
C++
97 lines
2.5 KiB
C++
//-----------------------------------------------------------------------------
|
|
//
|
|
// File: flddefhelp.h
|
|
// Copyright (C) 1994-1997 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
//
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// RAID: LS42 Bug 46 fixed by MikeL
|
|
// Pointer to a function to allow each column
|
|
// type to have its own validation function.
|
|
typedef BOOL (* PFNVALIDATE) (LPCTSTR, DWORD);
|
|
|
|
// RAID: LS42 Bug 46 fixed by MikeL
|
|
// Added pfnValidateFunc to allow each column
|
|
// type to have its own validation function.
|
|
//------------------------------------------------------------------------------
|
|
struct SBasicColumn
|
|
{
|
|
const WCHAR *szInternalName;
|
|
long nID;
|
|
UINT IDSName;
|
|
UINT IDSHelp;
|
|
CColumnVal::ColumnValType vt;
|
|
Operators ops;
|
|
BOOL fDisplay;
|
|
BOOL fSort;
|
|
BOOL fReadOnly;
|
|
PFNVALIDATE pfnValidateFunc;
|
|
};
|
|
|
|
|
|
struct SStringListColumn
|
|
{
|
|
SBasicColumn sBasic;
|
|
UINT IDSStringList;
|
|
};
|
|
|
|
|
|
#pragma warning(disable: 4275) // non dll-interface class 'foo' used
|
|
// as base for dll-interface class 'bar'
|
|
|
|
class LTAPIENTRY CColDefHelper : public CObject
|
|
{
|
|
public:
|
|
CColDefHelper(HINSTANCE h);
|
|
|
|
void SetBasicColumns(const SBasicColumn * pBasic, UINT nCntBasic);
|
|
void SetStringColumns(const SStringListColumn * pStrings, UINT nCntStrings);
|
|
|
|
CTableSchema * CreateSchema(const SchemaId &, UINT IDSDescription);
|
|
|
|
private:
|
|
HINSTANCE m_hInst;
|
|
const SBasicColumn * m_pBasicColumns;
|
|
const SStringListColumn *m_pStringColumns;
|
|
UINT m_uiBasicCount;
|
|
UINT m_uiStringCount;
|
|
};
|
|
|
|
|
|
#pragma warning(default : 4275)
|
|
|
|
const TCHAR COL_PICK_SEPARATOR = _T('\n');
|
|
|
|
#define BEGIN_BASIC_COLUMN_DEFS(var) \
|
|
const SBasicColumn var[] = \
|
|
{
|
|
|
|
// RAID: LS42 Bug 46 fixed by MikeL
|
|
// Added pfnValidateFunc to allow each column
|
|
// type to have its own validate function.
|
|
#define BASIC_COLUMN_DEF_ENTRY(name, nID, IDSName, IDSHelp, cvt, ops, fDisplay, fSort, fReadOnly, pfnValidateFunc) \
|
|
{name, nID, IDSName, IDSHelp, cvt, ops, fDisplay, fSort, fReadOnly, pfnValidateFunc}
|
|
|
|
#define END_BASIC_COLUMN_DEFS() \
|
|
}
|
|
|
|
#define BEGIN_STRING_LIST_COLUMN_DEFS(var) \
|
|
const SStringListColumn var[] = \
|
|
{
|
|
|
|
// RAID: LS42 Bug 46 fixed by MikeL
|
|
// Added pfnValidateFunc to allow each column
|
|
// type to have its own validate function.
|
|
#define STRING_LIST_COLUMN_ENTRY(name, nID, IDSName, IDSHelp, ops, fDisplay, fSort, fReadOnly, pfnValidateFunc, IDSList) \
|
|
{ { name, nID, IDSName, IDSHelp, CColumnVal::cvtStringList, ops, fDisplay, fSort, fReadOnly, pfnValidateFunc }, IDSList}
|
|
|
|
#define END_STRING_LIST_COLUMN_DEFS() \
|
|
}
|
|
|
|
|
|
|
|
|